diff --git a/src/main/java/dk/camelot64/kickc/model/operators/OperatorLogicNot.java b/src/main/java/dk/camelot64/kickc/model/operators/OperatorLogicNot.java index 10356cb2c..9b7f39a56 100644 --- a/src/main/java/dk/camelot64/kickc/model/operators/OperatorLogicNot.java +++ b/src/main/java/dk/camelot64/kickc/model/operators/OperatorLogicNot.java @@ -23,7 +23,7 @@ public class OperatorLogicNot extends OperatorUnary { @Override public SymbolType inferType(SymbolTypeSimple operandType) { - return SymbolType.BOOLEAN; + return operandType; } } diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass2AssertTypeMatch.java b/src/main/java/dk/camelot64/kickc/passes/Pass2AssertTypeMatch.java index 0ce4917a3..ea2611f26 100644 --- a/src/main/java/dk/camelot64/kickc/passes/Pass2AssertTypeMatch.java +++ b/src/main/java/dk/camelot64/kickc/passes/Pass2AssertTypeMatch.java @@ -1,11 +1,13 @@ package dk.camelot64.kickc.passes; import dk.camelot64.kickc.model.*; +import dk.camelot64.kickc.model.statements.StatementConditionalJump; import dk.camelot64.kickc.model.values.LValue; import dk.camelot64.kickc.model.statements.Statement; import dk.camelot64.kickc.model.statements.StatementAssignment; import dk.camelot64.kickc.model.types.SymbolType; import dk.camelot64.kickc.model.types.SymbolTypeInference; +import dk.camelot64.kickc.model.values.RValue; /** * Asserts that types match in all assignments and calculations @@ -23,7 +25,20 @@ public class Pass2AssertTypeMatch extends Pass2SsaAssertion { if(statement instanceof StatementAssignment) { checkAssignment((StatementAssignment) statement); } - // TODO: Implement checking for calls / conditional jumps / ... + if(statement instanceof StatementConditionalJump) { + StatementConditionalJump conditionalJump = (StatementConditionalJump) statement; + if(conditionalJump.getOperator()==null) { + RValue rValue = conditionalJump.getrValue2(); + SymbolType rValueType = SymbolTypeInference.inferType(getScope(), rValue); + if(!SymbolTypeInference.typeMatch(SymbolType.BOOLEAN, rValueType)) { + getLog().append("ERROR! Type mismatch non-boolean condition from (" + rValueType.getTypeName() + "). In " + statement.toString(getProgram(), false)); + throw new CompileError("ERROR! Type mismatch non-boolean condition from (" + rValueType.getTypeName() + "). In " + statement.toString(getProgram(), false), statement.getSource()); + } + } else { + // Conditions with operators always result in booleans? + } + } + // TODO: Implement checking for calls / ... } } diff --git a/src/test/java/dk/camelot64/kickc/test/TestPrograms.java b/src/test/java/dk/camelot64/kickc/test/TestPrograms.java index 3560ca138..4d3193f05 100644 --- a/src/test/java/dk/camelot64/kickc/test/TestPrograms.java +++ b/src/test/java/dk/camelot64/kickc/test/TestPrograms.java @@ -1137,6 +1137,11 @@ public class TestPrograms { assertError("no-returninterrupt", "Interrupts cannot return anything."); } + @Test + public void testConditionTypeMismatch() throws IOException, URISyntaxException { + assertError("condition-type-mismatch", "Type mismatch non-boolean condition"); + } + private void assertError(String kcFile, String expectError) throws IOException, URISyntaxException { try { compileAndCompare(kcFile); diff --git a/src/test/kc/complex/tetris/tetris-data.kc b/src/test/kc/complex/tetris/tetris-data.kc index 82c7436ef..321f507e1 100644 --- a/src/test/kc/complex/tetris/tetris-data.kc +++ b/src/test/kc/complex/tetris/tetris-data.kc @@ -49,7 +49,7 @@ dword score_bcd = 0; word lines_bcd = 0; // Current level BCD-format byte level_bcd = 0; -// Current level in normal numeric format +// Current level in hexadecimal format byte level = 0; // Is the game over? byte game_over = 0; diff --git a/src/test/kc/complex/tetris/tetris-render.kc b/src/test/kc/complex/tetris/tetris-render.kc index 792710caf..fbc643cc4 100644 --- a/src/test/kc/complex/tetris/tetris-render.kc +++ b/src/test/kc/complex/tetris/tetris-render.kc @@ -154,19 +154,18 @@ void render_playfield() { } // Render the current moving piece at position (current_xpos, current_ypos) +// Ignores cases where parts of the tetromino is outside the playfield (sides/bottom) since the movement collision routine prevents this. void render_moving() { byte i = 0; byte ypos2 = current_ypos<<1; for(byte l:0..3) { - if(ypos2>2 && ypos2<2*PLAYFIELD_LINES) { + if(ypos2>2) { byte* screen_line = screen_lines_1[render_screen_render+ypos2]; byte xpos = current_xpos; for(byte c:0..3) { byte current_cell = current_piece_gfx[i++]; if(current_cell!=0) { - if(xpos(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@13 - to:render_moving::@7 -render_moving::@7: scope:[render_moving] from render_moving::@1 render_moving::@13 + [104] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@2 + to:render_moving::@6 +render_moving::@6: scope:[render_moving] from render_moving::@1 [105] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 to:render_moving::@3 -render_moving::@3: scope:[render_moving] from render_moving::@5 render_moving::@7 - [106] (byte) render_moving::i#8 ← phi( render_moving::@5/(byte) render_moving::i#10 render_moving::@7/(byte) render_moving::i#1 ) +render_moving::@3: scope:[render_moving] from render_moving::@5 render_moving::@6 + [106] (byte) render_moving::i#8 ← phi( render_moving::@5/(byte) render_moving::i#2 render_moving::@6/(byte) render_moving::i#1 ) [107] (byte) render_moving::ypos2#1 ← (byte) render_moving::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [108] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 [109] if((byte) render_moving::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@1 @@ -257,907 +257,901 @@ render_moving::@3: scope:[render_moving] from render_moving::@5 render_moving:: render_moving::@return: scope:[render_moving] from render_moving::@3 [110] return to:@return -render_moving::@13: scope:[render_moving] from render_moving::@1 - [111] if((byte) render_moving::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_moving::@2 - to:render_moving::@7 -render_moving::@2: scope:[render_moving] from render_moving::@13 - [112] (byte~) render_moving::$5 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 - [113] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$5) - [114] (byte) render_moving::xpos#0 ← (byte) current_xpos#57 +render_moving::@2: scope:[render_moving] from render_moving::@1 + [111] (byte~) render_moving::$2 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 + [112] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$2) + [113] (byte) render_moving::xpos#0 ← (byte) current_xpos#57 to:render_moving::@4 render_moving::@4: scope:[render_moving] from render_moving::@2 render_moving::@5 - [115] (byte) render_moving::c#2 ← phi( render_moving::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_moving::@5/(byte) render_moving::c#1 ) - [115] (byte) render_moving::xpos#2 ← phi( render_moving::@2/(byte) render_moving::xpos#0 render_moving::@5/(byte) render_moving::xpos#1 ) - [115] (byte) render_moving::i#4 ← phi( render_moving::@2/(byte) render_moving::i#3 render_moving::@5/(byte) render_moving::i#10 ) - [116] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_moving::i#4) - [117] (byte) render_moving::i#10 ← ++ (byte) render_moving::i#4 - [118] if((byte) render_moving::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_moving::@5 - to:render_moving::@9 -render_moving::@9: scope:[render_moving] from render_moving::@4 - [119] if((byte) render_moving::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_moving::@5 - to:render_moving::@10 -render_moving::@10: scope:[render_moving] from render_moving::@9 - [120] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#76 + [114] (byte) render_moving::c#2 ← phi( render_moving::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_moving::@5/(byte) render_moving::c#1 ) + [114] (byte) render_moving::xpos#2 ← phi( render_moving::@2/(byte) render_moving::xpos#0 render_moving::@5/(byte) render_moving::xpos#1 ) + [114] (byte) render_moving::i#4 ← phi( render_moving::@2/(byte) render_moving::i#3 render_moving::@5/(byte) render_moving::i#2 ) + [115] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#62 + (byte) render_moving::i#4) + [116] (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 + [117] if((byte) render_moving::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_moving::@5 + to:render_moving::@8 +render_moving::@8: scope:[render_moving] from render_moving::@4 + [118] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#64 to:render_moving::@5 -render_moving::@5: scope:[render_moving] from render_moving::@10 render_moving::@4 render_moving::@9 - [121] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 - [122] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 - [123] if((byte) render_moving::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@4 +render_moving::@5: scope:[render_moving] from render_moving::@4 render_moving::@8 + [119] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 + [120] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 + [121] if((byte) render_moving::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@4 to:render_moving::@3 render_playfield: scope:[render_playfield] from main::@23 main::@30 - [124] (byte) render_screen_render#21 ← phi( main::@23/(byte~) render_screen_render#67 main::@30/(byte/signed byte/word/signed word/dword/signed dword) 64 ) + [122] (byte) render_screen_render#21 ← phi( main::@23/(byte~) render_screen_render#65 main::@30/(byte/signed byte/word/signed word/dword/signed dword) 64 ) to:render_playfield::@1 render_playfield::@1: scope:[render_playfield] from render_playfield render_playfield::@3 - [125] (byte) render_playfield::i#3 ← phi( render_playfield/(const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::i#1 ) - [125] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::l#1 ) - [126] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [127] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 - [128] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) + [123] (byte) render_playfield::i#3 ← phi( render_playfield/(const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::i#1 ) + [123] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::l#1 ) + [124] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [125] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 + [126] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) to:render_playfield::@2 render_playfield::@2: scope:[render_playfield] from render_playfield::@1 render_playfield::@2 - [129] (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 ) - [129] (byte*) render_playfield::screen_line#2 ← phi( render_playfield::@1/(byte*) render_playfield::screen_line#0 render_playfield::@2/(byte*) render_playfield::screen_line#1 ) - [129] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) - [130] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) - [131] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 - [132] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 - [133] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 - [134] 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 + [127] (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 ) + [127] (byte*) render_playfield::screen_line#2 ← phi( render_playfield::@1/(byte*) render_playfield::screen_line#0 render_playfield::@2/(byte*) render_playfield::screen_line#1 ) + [127] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) + [128] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) + [129] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 + [130] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 + [131] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 + [132] 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 - [135] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 - [136] 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 + [133] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 + [134] 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 - [137] return + [135] return to:@return play_movement: scope:[play_movement] from main::@7 - [138] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 - [139] call play_move_down - [140] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 + [136] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 + [137] call play_move_down + [138] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 to:play_movement::@5 play_movement::@5: scope:[play_movement] from play_movement - [141] (byte~) play_movement::$0 ← (byte) play_move_down::return#0 - [142] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 - [143] if((byte) game_over#14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movement::@1 + [139] (byte~) play_movement::$0 ← (byte) play_move_down::return#0 + [140] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 + [141] if((byte) game_over#14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movement::@1 to:play_movement::@return play_movement::@return: scope:[play_movement] from play_movement::@5 play_movement::@7 - [144] (byte) current_xpos#17 ← phi( play_movement::@5/(byte) current_xpos#20 play_movement::@7/(byte) current_xpos#24 ) - [144] (byte*) current_piece_gfx#16 ← phi( play_movement::@5/(byte*) current_piece_gfx#18 play_movement::@7/(byte*) current_piece_gfx#19 ) - [144] (byte) current_orientation#16 ← phi( play_movement::@5/(byte) current_orientation#19 play_movement::@7/(byte) current_orientation#24 ) - [144] (byte) play_movement::return#2 ← phi( play_movement::@5/(byte) play_movement::render#1 play_movement::@7/(byte) play_movement::return#0 ) - [145] return + [142] (byte) current_xpos#17 ← phi( play_movement::@5/(byte) current_xpos#20 play_movement::@7/(byte) current_xpos#24 ) + [142] (byte*) current_piece_gfx#16 ← phi( play_movement::@5/(byte*) current_piece_gfx#18 play_movement::@7/(byte*) current_piece_gfx#19 ) + [142] (byte) current_orientation#16 ← phi( play_movement::@5/(byte) current_orientation#19 play_movement::@7/(byte) current_orientation#24 ) + [142] (byte) play_movement::return#2 ← phi( play_movement::@5/(byte) play_movement::render#1 play_movement::@7/(byte) play_movement::return#0 ) + [143] return to:@return play_movement::@1: scope:[play_movement] from play_movement::@5 - [146] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 - [147] call play_move_leftright - [148] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 + [144] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 + [145] call play_move_leftright + [146] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 to:play_movement::@6 play_movement::@6: scope:[play_movement] from play_movement::@1 - [149] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 - [150] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 - [151] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 - [152] call play_move_rotate - [153] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 + [147] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 + [148] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 + [149] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 + [150] call play_move_rotate + [151] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 to:play_movement::@7 play_movement::@7: scope:[play_movement] from play_movement::@6 - [154] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 - [155] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 + [152] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 + [153] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 to:play_movement::@return play_move_rotate: scope:[play_move_rotate] from play_movement::@6 - [156] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 + [154] 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 - [157] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 + [155] 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 - [158] (byte*) current_piece_gfx#19 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#6 play_move_rotate::@14/(byte*) current_piece_gfx#18 play_move_rotate::@6/(byte*) current_piece_gfx#18 ) - [158] (byte) current_orientation#24 ← phi( play_move_rotate::@11/(byte) current_orientation#7 play_move_rotate::@14/(byte) current_orientation#19 play_move_rotate::@6/(byte) current_orientation#19 ) - [158] (byte) play_move_rotate::return#2 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [159] return + [156] (byte*) current_piece_gfx#19 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#6 play_move_rotate::@14/(byte*) current_piece_gfx#18 play_move_rotate::@6/(byte*) current_piece_gfx#18 ) + [156] (byte) current_orientation#24 ← phi( play_move_rotate::@11/(byte) current_orientation#7 play_move_rotate::@14/(byte) current_orientation#19 play_move_rotate::@6/(byte) current_orientation#19 ) + [156] (byte) play_move_rotate::return#2 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [157] return to:@return play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6 - [160] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#19 + (byte/signed byte/word/signed word/dword/signed dword) 16 - [161] (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 + [158] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#19 + (byte/signed byte/word/signed word/dword/signed dword) 16 + [159] (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 - [162] (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 ) - [163] (byte) play_collision::xpos#3 ← (byte) current_xpos#24 - [164] (byte) play_collision::ypos#3 ← (byte) current_ypos#17 - [165] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 - [166] (byte*~) current_piece#93 ← (byte*) current_piece#14 - [167] call play_collision - [168] (byte) play_collision::return#14 ← (byte) play_collision::return#15 + [160] (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 ) + [161] (byte) play_collision::xpos#3 ← (byte) current_xpos#24 + [162] (byte) play_collision::ypos#3 ← (byte) current_ypos#17 + [163] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 + [164] (byte*~) current_piece#93 ← (byte*) current_piece#14 + [165] call play_collision + [166] (byte) play_collision::return#14 ← (byte) play_collision::return#15 to:play_move_rotate::@14 play_move_rotate::@14: scope:[play_move_rotate] from play_move_rotate::@4 - [169] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#14 - [170] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return + [167] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#14 + [168] 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 - [171] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 - [172] (byte*) current_piece_gfx#6 ← (byte*) current_piece#14 + (byte) current_orientation#7 + [169] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 + [170] (byte*) current_piece_gfx#6 ← (byte*) current_piece#14 + (byte) current_orientation#7 to:play_move_rotate::@return play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate - [173] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#19 - (byte/signed byte/word/signed word/dword/signed dword) 16 - [174] (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 + [171] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#19 - (byte/signed byte/word/signed word/dword/signed dword) 16 + [172] (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 play_spawn_current::@3 - [175] (byte) play_collision::xpos#6 ← 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 play_spawn_current::@3/(byte) play_collision::xpos#4 ) - [175] (byte) play_collision::ypos#5 ← 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 play_spawn_current::@3/(byte) play_collision::ypos#4 ) - [175] (byte) play_collision::orientation#5 ← 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 play_spawn_current::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [175] (byte*) current_piece#16 ← phi( play_move_down::@12/(byte*~) current_piece#90 play_move_leftright::@1/(byte*~) current_piece#91 play_move_leftright::@7/(byte*~) current_piece#92 play_move_rotate::@4/(byte*~) current_piece#93 play_spawn_current::@3/(byte*~) current_piece#94 ) - [176] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#16 + (byte) play_collision::orientation#5 - [177] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [173] (byte) play_collision::xpos#6 ← 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 play_spawn_current::@3/(byte) play_collision::xpos#4 ) + [173] (byte) play_collision::ypos#5 ← 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 play_spawn_current::@3/(byte) play_collision::ypos#4 ) + [173] (byte) play_collision::orientation#5 ← 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 play_spawn_current::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [173] (byte*) current_piece#16 ← phi( play_move_down::@12/(byte*~) current_piece#90 play_move_leftright::@1/(byte*~) current_piece#91 play_move_leftright::@7/(byte*~) current_piece#92 play_move_rotate::@4/(byte*~) current_piece#93 play_spawn_current::@3/(byte*~) current_piece#94 ) + [174] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#16 + (byte) play_collision::orientation#5 + [175] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (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 - [178] (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 ) - [178] (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 ) - [178] (byte) play_collision::ypos2#2 ← phi( play_collision/(byte) play_collision::ypos2#0 play_collision::@20/(byte) play_collision::ypos2#1 ) - [179] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) - [180] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#6 + [176] (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 ) + [176] (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 ) + [176] (byte) play_collision::ypos2#2 ← phi( play_collision/(byte) play_collision::ypos2#0 play_collision::@20/(byte) play_collision::ypos2#1 ) + [177] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) + [178] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#6 to:play_collision::@2 play_collision::@2: scope:[play_collision] from play_collision::@1 play_collision::@21 - [181] (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 ) - [181] (byte) play_collision::col#2 ← phi( play_collision::@1/(byte~) play_collision::col#9 play_collision::@21/(byte) play_collision::col#1 ) - [181] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@21/(byte~) play_collision::i#13 ) - [182] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 - [183] 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 + [179] (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 ) + [179] (byte) play_collision::col#2 ← phi( play_collision::@1/(byte~) play_collision::col#9 play_collision::@21/(byte) play_collision::col#1 ) + [179] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@21/(byte~) play_collision::i#13 ) + [180] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 + [181] 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 - [184] 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 + [182] 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 - [185] (byte) play_collision::return#15 ← 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 ) - [186] return + [183] (byte) play_collision::return#15 ← 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 ) + [184] return to:@return play_collision::@4: scope:[play_collision] from play_collision::@8 - [187] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 - [188] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 + [185] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 + [186] 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 - [189] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 + [187] 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 - [190] 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 + [188] 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 - [191] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 - [192] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 - [193] if((byte) play_collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@21 + [189] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 + [190] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 + [191] 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 - [194] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [195] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 - [196] if((byte) play_collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@20 + [192] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [193] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 + [194] 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 - [197] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 + [195] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 to:play_collision::@1 play_collision::@21: scope:[play_collision] from play_collision::@3 - [198] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 + [196] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 to:play_collision::@2 play_move_leftright: scope:[play_move_leftright] from play_movement::@1 - [199] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 + [197] 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 - [200] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return + [198] 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 - [201] (byte) play_collision::xpos#2 ← (byte) current_xpos#20 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [202] (byte) play_collision::ypos#2 ← (byte) current_ypos#17 - [203] (byte) play_collision::orientation#2 ← (byte) current_orientation#19 - [204] (byte*~) current_piece#92 ← (byte*) current_piece#14 - [205] call play_collision - [206] (byte) play_collision::return#13 ← (byte) play_collision::return#15 + [199] (byte) play_collision::xpos#2 ← (byte) current_xpos#20 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [200] (byte) play_collision::ypos#2 ← (byte) current_ypos#17 + [201] (byte) play_collision::orientation#2 ← (byte) current_orientation#19 + [202] (byte*~) current_piece#92 ← (byte*) current_piece#14 + [203] call play_collision + [204] (byte) play_collision::return#13 ← (byte) play_collision::return#15 to:play_move_leftright::@15 play_move_leftright::@15: scope:[play_move_leftright] from play_move_leftright::@7 - [207] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 - [208] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [205] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 + [206] 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 - [209] (byte) current_xpos#5 ← ++ (byte) current_xpos#20 + [207] (byte) current_xpos#5 ← ++ (byte) current_xpos#20 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 - [210] (byte) current_xpos#24 ← phi( play_move_leftright::@11/(byte) current_xpos#7 play_move_leftright::@15/(byte) current_xpos#20 play_move_leftright::@8/(byte) current_xpos#5 play_move_leftright::@14/(byte) current_xpos#20 play_move_leftright::@6/(byte) current_xpos#20 ) - [210] (byte) play_move_leftright::return#2 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [211] return + [208] (byte) current_xpos#24 ← phi( play_move_leftright::@11/(byte) current_xpos#7 play_move_leftright::@15/(byte) current_xpos#20 play_move_leftright::@8/(byte) current_xpos#5 play_move_leftright::@14/(byte) current_xpos#20 play_move_leftright::@6/(byte) current_xpos#20 ) + [208] (byte) play_move_leftright::return#2 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [209] return to:@return play_move_leftright::@1: scope:[play_move_leftright] from play_move_leftright - [212] (byte) play_collision::xpos#1 ← (byte) current_xpos#20 - (byte/signed byte/word/signed word/dword/signed dword) 1 - [213] (byte) play_collision::ypos#1 ← (byte) current_ypos#17 - [214] (byte) play_collision::orientation#1 ← (byte) current_orientation#19 - [215] (byte*~) current_piece#91 ← (byte*) current_piece#14 - [216] call play_collision - [217] (byte) play_collision::return#1 ← (byte) play_collision::return#15 + [210] (byte) play_collision::xpos#1 ← (byte) current_xpos#20 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [211] (byte) play_collision::ypos#1 ← (byte) current_ypos#17 + [212] (byte) play_collision::orientation#1 ← (byte) current_orientation#19 + [213] (byte*~) current_piece#91 ← (byte*) current_piece#14 + [214] call play_collision + [215] (byte) play_collision::return#1 ← (byte) play_collision::return#15 to:play_move_leftright::@14 play_move_leftright::@14: scope:[play_move_leftright] from play_move_leftright::@1 - [218] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 - [219] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [216] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + [217] 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 - [220] (byte) current_xpos#7 ← -- (byte) current_xpos#20 + [218] (byte) current_xpos#7 ← -- (byte) current_xpos#20 to:play_move_leftright::@return play_move_down: scope:[play_move_down] from play_movement - [221] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 - [222] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 + [219] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 + [220] 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 - [223] phi() + [221] phi() to:play_move_down::@1 play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down::@8 - [224] (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 ) - [225] call keyboard_event_pressed - [226] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + [222] (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 ) + [223] call keyboard_event_pressed + [224] (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 - [227] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 - [228] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 + [225] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + [226] 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 - [229] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast#0) goto play_move_down::@2 + [227] if((byte) current_movedown_counter#12<(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 - [230] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 + [228] (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 - [231] (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 ) - [232] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@4 + [229] (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 ) + [230] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@4 to:play_move_down::@11 play_move_down::@11: scope:[play_move_down] from play_move_down::@2 - [233] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 + [231] (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 - [234] (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 ) - [235] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return + [232] (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 ) + [233] 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 - [236] (byte) play_collision::ypos#0 ← (byte) current_ypos#25 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [237] (byte) play_collision::xpos#0 ← (byte) current_xpos#115 - [238] (byte) play_collision::orientation#0 ← (byte) current_orientation#12 - [239] (byte*~) current_piece#90 ← (byte*) current_piece#20 - [240] call play_collision - [241] (byte) play_collision::return#0 ← (byte) play_collision::return#15 + [234] (byte) play_collision::ypos#0 ← (byte) current_ypos#25 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [235] (byte) play_collision::xpos#0 ← (byte) current_xpos#113 + [236] (byte) play_collision::orientation#0 ← (byte) current_orientation#12 + [237] (byte*~) current_piece#90 ← (byte*) current_piece#20 + [238] call play_collision + [239] (byte) play_collision::return#0 ← (byte) play_collision::return#15 to:play_move_down::@18 play_move_down::@18: scope:[play_move_down] from play_move_down::@12 - [242] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 - [243] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 + [240] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + [241] 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 - [244] phi() - [245] call play_lock_current + [242] phi() + [243] call play_lock_current to:play_move_down::@19 play_move_down::@19: scope:[play_move_down] from play_move_down::@13 - [246] phi() - [247] call play_remove_lines - [248] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 + [244] phi() + [245] call play_remove_lines + [246] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 to:play_move_down::@20 play_move_down::@20: scope:[play_move_down] from play_move_down::@19 - [249] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 - [250] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 - [251] call play_update_score + [247] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 + [248] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 + [249] call play_update_score to:play_move_down::@21 play_move_down::@21: scope:[play_move_down] from play_move_down::@20 - [252] phi() - [253] call play_spawn_current - [254] (byte*~) current_piece#95 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + [250] phi() + [251] call play_spawn_current + [252] (byte*~) current_piece#95 ← (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::@21 play_move_down::@6 - [255] (byte) game_over#26 ← phi( play_move_down::@21/(byte) game_over#15 play_move_down::@6/(byte) game_over#19 ) - [255] (byte) current_xpos#41 ← phi( play_move_down::@21/(byte) current_xpos#28 play_move_down::@6/(byte) current_xpos#115 ) - [255] (byte*) current_piece_gfx#33 ← phi( play_move_down::@21/(byte*) current_piece_gfx#21 play_move_down::@6/(byte*) current_piece_gfx#105 ) - [255] (byte) current_orientation#36 ← phi( play_move_down::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#12 ) - [255] (byte) current_piece_char#27 ← phi( play_move_down::@21/(byte) current_piece_char#16 play_move_down::@6/(byte) current_piece_char#19 ) - [255] (byte*) current_piece#27 ← phi( play_move_down::@21/(byte*~) current_piece#95 play_move_down::@6/(byte*) current_piece#20 ) - [255] (byte) level_bcd#32 ← phi( play_move_down::@21/(byte) level_bcd#19 play_move_down::@6/(byte) level_bcd#11 ) - [255] (byte) current_movedown_slow#38 ← phi( play_move_down::@21/(byte) current_movedown_slow#23 play_move_down::@6/(byte) current_movedown_slow#14 ) - [255] (byte) level#31 ← phi( play_move_down::@21/(byte) level#18 play_move_down::@6/(byte) level#10 ) - [255] (dword) score_bcd#27 ← phi( play_move_down::@21/(dword) score_bcd#16 play_move_down::@6/(dword) score_bcd#18 ) - [255] (word) lines_bcd#27 ← phi( play_move_down::@21/(word) lines_bcd#17 play_move_down::@6/(word) lines_bcd#19 ) - [255] (byte) current_ypos#36 ← phi( play_move_down::@21/(byte) current_ypos#22 play_move_down::@6/(byte) current_ypos#2 ) + [253] (byte) game_over#26 ← phi( play_move_down::@21/(byte) game_over#15 play_move_down::@6/(byte) game_over#19 ) + [253] (byte) current_xpos#41 ← phi( play_move_down::@21/(byte) current_xpos#28 play_move_down::@6/(byte) current_xpos#113 ) + [253] (byte*) current_piece_gfx#33 ← phi( play_move_down::@21/(byte*) current_piece_gfx#21 play_move_down::@6/(byte*) current_piece_gfx#103 ) + [253] (byte) current_orientation#36 ← phi( play_move_down::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#12 ) + [253] (byte) current_piece_char#27 ← phi( play_move_down::@21/(byte) current_piece_char#16 play_move_down::@6/(byte) current_piece_char#19 ) + [253] (byte*) current_piece#27 ← phi( play_move_down::@21/(byte*~) current_piece#95 play_move_down::@6/(byte*) current_piece#20 ) + [253] (byte) level_bcd#32 ← phi( play_move_down::@21/(byte) level_bcd#19 play_move_down::@6/(byte) level_bcd#11 ) + [253] (byte) current_movedown_slow#38 ← phi( play_move_down::@21/(byte) current_movedown_slow#23 play_move_down::@6/(byte) current_movedown_slow#14 ) + [253] (byte) level#31 ← phi( play_move_down::@21/(byte) level#18 play_move_down::@6/(byte) level#10 ) + [253] (dword) score_bcd#27 ← phi( play_move_down::@21/(dword) score_bcd#16 play_move_down::@6/(dword) score_bcd#18 ) + [253] (word) lines_bcd#27 ← phi( play_move_down::@21/(word) lines_bcd#17 play_move_down::@6/(word) lines_bcd#19 ) + [253] (byte) current_ypos#36 ← phi( play_move_down::@21/(byte) current_ypos#22 play_move_down::@6/(byte) current_ypos#2 ) to:play_move_down::@return play_move_down::@return: scope:[play_move_down] from play_move_down::@4 play_move_down::@7 - [256] (byte) game_over#14 ← phi( play_move_down::@4/(byte) game_over#19 play_move_down::@7/(byte) game_over#26 ) - [256] (byte) current_xpos#20 ← phi( play_move_down::@4/(byte) current_xpos#115 play_move_down::@7/(byte) current_xpos#41 ) - [256] (byte*) current_piece_gfx#18 ← phi( play_move_down::@4/(byte*) current_piece_gfx#105 play_move_down::@7/(byte*) current_piece_gfx#33 ) - [256] (byte) current_orientation#19 ← phi( play_move_down::@4/(byte) current_orientation#12 play_move_down::@7/(byte) current_orientation#36 ) - [256] (byte) current_piece_char#14 ← phi( play_move_down::@4/(byte) current_piece_char#19 play_move_down::@7/(byte) current_piece_char#27 ) - [256] (byte*) current_piece#14 ← phi( play_move_down::@4/(byte*) current_piece#20 play_move_down::@7/(byte*) current_piece#27 ) - [256] (byte) level_bcd#17 ← phi( play_move_down::@4/(byte) level_bcd#11 play_move_down::@7/(byte) level_bcd#32 ) - [256] (byte) current_movedown_slow#21 ← phi( play_move_down::@4/(byte) current_movedown_slow#14 play_move_down::@7/(byte) current_movedown_slow#38 ) - [256] (byte) level#16 ← phi( play_move_down::@4/(byte) level#10 play_move_down::@7/(byte) level#31 ) - [256] (dword) score_bcd#14 ← phi( play_move_down::@4/(dword) score_bcd#18 play_move_down::@7/(dword) score_bcd#27 ) - [256] (word) lines_bcd#15 ← phi( play_move_down::@4/(word) lines_bcd#19 play_move_down::@7/(word) lines_bcd#27 ) - [256] (byte) current_ypos#17 ← phi( play_move_down::@4/(byte) current_ypos#25 play_move_down::@7/(byte) current_ypos#36 ) - [256] (byte) current_movedown_counter#14 ← phi( play_move_down::@4/(byte) current_movedown_counter#12 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [256] (byte) play_move_down::return#3 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [257] return + [254] (byte) game_over#14 ← phi( play_move_down::@4/(byte) game_over#19 play_move_down::@7/(byte) game_over#26 ) + [254] (byte) current_xpos#20 ← phi( play_move_down::@4/(byte) current_xpos#113 play_move_down::@7/(byte) current_xpos#41 ) + [254] (byte*) current_piece_gfx#18 ← phi( play_move_down::@4/(byte*) current_piece_gfx#103 play_move_down::@7/(byte*) current_piece_gfx#33 ) + [254] (byte) current_orientation#19 ← phi( play_move_down::@4/(byte) current_orientation#12 play_move_down::@7/(byte) current_orientation#36 ) + [254] (byte) current_piece_char#14 ← phi( play_move_down::@4/(byte) current_piece_char#19 play_move_down::@7/(byte) current_piece_char#27 ) + [254] (byte*) current_piece#14 ← phi( play_move_down::@4/(byte*) current_piece#20 play_move_down::@7/(byte*) current_piece#27 ) + [254] (byte) level_bcd#17 ← phi( play_move_down::@4/(byte) level_bcd#11 play_move_down::@7/(byte) level_bcd#32 ) + [254] (byte) current_movedown_slow#21 ← phi( play_move_down::@4/(byte) current_movedown_slow#14 play_move_down::@7/(byte) current_movedown_slow#38 ) + [254] (byte) level#16 ← phi( play_move_down::@4/(byte) level#10 play_move_down::@7/(byte) level#31 ) + [254] (dword) score_bcd#14 ← phi( play_move_down::@4/(dword) score_bcd#18 play_move_down::@7/(dword) score_bcd#27 ) + [254] (word) lines_bcd#15 ← phi( play_move_down::@4/(word) lines_bcd#19 play_move_down::@7/(word) lines_bcd#27 ) + [254] (byte) current_ypos#17 ← phi( play_move_down::@4/(byte) current_ypos#25 play_move_down::@7/(byte) current_ypos#36 ) + [254] (byte) current_movedown_counter#14 ← phi( play_move_down::@4/(byte) current_movedown_counter#12 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [254] (byte) play_move_down::return#3 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [255] return to:@return play_move_down::@6: scope:[play_move_down] from play_move_down::@18 - [258] (byte) current_ypos#2 ← ++ (byte) current_ypos#25 + [256] (byte) current_ypos#2 ← ++ (byte) current_ypos#25 to:play_move_down::@7 play_spawn_current: scope:[play_spawn_current] from main::@29 play_move_down::@21 - [259] (byte) game_over#70 ← phi( main::@29/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@21/(byte) game_over#19 ) + [257] (byte) game_over#70 ← phi( main::@29/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@21/(byte) game_over#19 ) to:play_spawn_current::@1 play_spawn_current::@1: scope:[play_spawn_current] from play_spawn_current play_spawn_current::@9 - [260] (byte) play_spawn_current::piece_idx#2 ← phi( play_spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 7 play_spawn_current::@9/(byte) play_spawn_current::piece_idx#1 ) - [261] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 + [258] (byte) play_spawn_current::piece_idx#2 ← phi( play_spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 7 play_spawn_current::@9/(byte) play_spawn_current::piece_idx#1 ) + [259] 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 - [262] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [263] (byte) current_piece_char#16 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) - [264] (byte*) current_piece_gfx#21 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 - [265] (byte) current_xpos#28 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) - [266] (byte) current_ypos#22 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) - [267] (byte) play_collision::xpos#4 ← (byte) current_xpos#28 - [268] (byte) play_collision::ypos#4 ← (byte) current_ypos#22 - [269] (byte*~) current_piece#94 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) - [270] call play_collision - [271] (byte) play_collision::return#10 ← (byte) play_collision::return#15 + [260] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [261] (byte) current_piece_char#16 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) + [262] (byte*) current_piece_gfx#21 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 + [263] (byte) current_xpos#28 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) + [264] (byte) current_ypos#22 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) + [265] (byte) play_collision::xpos#4 ← (byte) current_xpos#28 + [266] (byte) play_collision::ypos#4 ← (byte) current_ypos#22 + [267] (byte*~) current_piece#94 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + [268] call play_collision + [269] (byte) play_collision::return#10 ← (byte) play_collision::return#15 to:play_spawn_current::@10 play_spawn_current::@10: scope:[play_spawn_current] from play_spawn_current::@3 - [272] (byte~) play_spawn_current::$5 ← (byte) play_collision::return#10 - [273] if((byte~) play_spawn_current::$5!=(const byte) COLLISION_PLAYFIELD#0) goto play_spawn_current::@11 + [270] (byte~) play_spawn_current::$5 ← (byte) play_collision::return#10 + [271] if((byte~) play_spawn_current::$5!=(const byte) COLLISION_PLAYFIELD#0) goto play_spawn_current::@11 to:play_spawn_current::@return play_spawn_current::@return: scope:[play_spawn_current] from play_spawn_current::@10 play_spawn_current::@11 - [274] (byte) game_over#15 ← phi( play_spawn_current::@11/(byte) game_over#70 play_spawn_current::@10/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [275] return + [272] (byte) game_over#15 ← phi( play_spawn_current::@11/(byte) game_over#70 play_spawn_current::@10/(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [273] return to:@return play_spawn_current::@11: scope:[play_spawn_current] from play_spawn_current::@10 - [276] phi() + [274] phi() to:play_spawn_current::@return play_spawn_current::@2: scope:[play_spawn_current] from play_spawn_current::@1 - [277] phi() - [278] call sid_rnd - [279] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + [275] phi() + [276] call sid_rnd + [277] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 to:play_spawn_current::@9 play_spawn_current::@9: scope:[play_spawn_current] from play_spawn_current::@2 - [280] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 - [281] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [278] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 + [279] (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 - [282] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) + [280] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) to:sid_rnd::@return sid_rnd::@return: scope:[sid_rnd] from sid_rnd - [283] return + [281] return to:@return play_update_score: scope:[play_update_score] from play_move_down::@20 - [284] if((byte) play_update_score::removed#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_update_score::@return + [282] if((byte) play_update_score::removed#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_update_score::@return to:play_update_score::@3 play_update_score::@3: scope:[play_update_score] from play_update_score - [285] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 - [286] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 - [287] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 - [288] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) + [283] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 + [284] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 + [285] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 + [286] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) asm { sed } - [290] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 - [291] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 + [288] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 + [289] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 asm { cld } - [293] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 - [294] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 - [295] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return + [291] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 + [292] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 + [293] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return to:play_update_score::@4 play_update_score::@4: scope:[play_update_score] from play_update_score::@3 - [296] phi() - [297] call play_increase_level + [294] phi() + [295] call play_increase_level to:play_update_score::@return play_update_score::@return: scope:[play_update_score] from play_update_score play_update_score::@3 play_update_score::@4 - [298] (byte) level_bcd#19 ← phi( play_update_score/(byte) level_bcd#11 play_update_score::@3/(byte) level_bcd#11 play_update_score::@4/(byte) level_bcd#64 ) - [298] (byte) current_movedown_slow#23 ← phi( play_update_score/(byte) current_movedown_slow#14 play_update_score::@3/(byte) current_movedown_slow#14 play_update_score::@4/(byte) current_movedown_slow#69 ) - [298] (byte) level#18 ← phi( play_update_score/(byte) level#10 play_update_score::@3/(byte) level#10 play_update_score::@4/(byte) level#20 ) - [298] (dword) score_bcd#16 ← phi( play_update_score/(dword) score_bcd#18 play_update_score::@3/(dword) score_bcd#30 play_update_score::@4/(dword) score_bcd#30 ) - [298] (word) lines_bcd#17 ← phi( play_update_score/(word) lines_bcd#19 play_update_score::@3/(word) lines_bcd#30 play_update_score::@4/(word) lines_bcd#30 ) - [299] return + [296] (byte) level_bcd#19 ← phi( play_update_score/(byte) level_bcd#11 play_update_score::@3/(byte) level_bcd#11 play_update_score::@4/(byte) level_bcd#64 ) + [296] (byte) current_movedown_slow#23 ← phi( play_update_score/(byte) current_movedown_slow#14 play_update_score::@3/(byte) current_movedown_slow#14 play_update_score::@4/(byte) current_movedown_slow#69 ) + [296] (byte) level#18 ← phi( play_update_score/(byte) level#10 play_update_score::@3/(byte) level#10 play_update_score::@4/(byte) level#20 ) + [296] (dword) score_bcd#16 ← phi( play_update_score/(dword) score_bcd#18 play_update_score::@3/(dword) score_bcd#30 play_update_score::@4/(dword) score_bcd#30 ) + [296] (word) lines_bcd#17 ← phi( play_update_score/(word) lines_bcd#19 play_update_score::@3/(word) lines_bcd#30 play_update_score::@4/(word) lines_bcd#30 ) + [297] return to:@return play_increase_level: scope:[play_increase_level] from play_update_score::@4 - [300] (byte) level#20 ← ++ (byte) level#10 - [301] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 + [298] (byte) level#20 ← ++ (byte) level#10 + [299] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 to:play_increase_level::@5 play_increase_level::@5: scope:[play_increase_level] from play_increase_level - [302] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) + [300] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) to:play_increase_level::@2 play_increase_level::@2: scope:[play_increase_level] from play_increase_level play_increase_level::@5 - [303] (byte) current_movedown_slow#69 ← phi( play_increase_level/(byte/signed byte/word/signed word/dword/signed dword) 1 play_increase_level::@5/(byte) current_movedown_slow#10 ) - [304] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 - [305] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 - [306] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 + [301] (byte) current_movedown_slow#69 ← phi( play_increase_level/(byte/signed byte/word/signed word/dword/signed dword) 1 play_increase_level::@5/(byte) current_movedown_slow#10 ) + [302] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 + [303] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [304] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 to:play_increase_level::@7 play_increase_level::@7: scope:[play_increase_level] from play_increase_level::@2 - [307] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 + [305] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 to:play_increase_level::@3 play_increase_level::@3: scope:[play_increase_level] from play_increase_level::@2 play_increase_level::@7 - [308] (byte) level_bcd#64 ← phi( play_increase_level::@2/(byte) level_bcd#21 play_increase_level::@7/(byte) level_bcd#8 ) + [306] (byte) level_bcd#64 ← phi( play_increase_level::@2/(byte) level_bcd#21 play_increase_level::@7/(byte) level_bcd#8 ) asm { sed } to:play_increase_level::@4 play_increase_level::@4: scope:[play_increase_level] from play_increase_level::@3 play_increase_level::@4 - [310] (byte) play_increase_level::b#2 ← phi( play_increase_level::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 play_increase_level::@4/(byte) play_increase_level::b#1 ) - [311] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 - [312] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) - [313] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 - [314] if((byte) play_increase_level::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_increase_level::@4 + [308] (byte) play_increase_level::b#2 ← phi( play_increase_level::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 play_increase_level::@4/(byte) play_increase_level::b#1 ) + [309] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 + [310] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) + [311] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 + [312] if((byte) play_increase_level::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_increase_level::@4 to:play_increase_level::@8 play_increase_level::@8: scope:[play_increase_level] from play_increase_level::@4 asm { cld } to:play_increase_level::@return play_increase_level::@return: scope:[play_increase_level] from play_increase_level::@8 - [316] return + [314] return to:@return play_remove_lines: scope:[play_remove_lines] from play_move_down::@19 - [317] phi() + [315] phi() to:play_remove_lines::@1 play_remove_lines::@1: scope:[play_remove_lines] from play_remove_lines play_remove_lines::@4 - [318] (byte) play_remove_lines::removed#11 ← phi( play_remove_lines/(byte/signed byte/word/signed word/dword/signed dword) 0 play_remove_lines::@4/(byte) play_remove_lines::removed#7 ) - [318] (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 ) - [318] (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 ) - [318] (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 ) + [316] (byte) play_remove_lines::removed#11 ← phi( play_remove_lines/(byte/signed byte/word/signed word/dword/signed dword) 0 play_remove_lines::@4/(byte) play_remove_lines::removed#7 ) + [316] (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 ) + [316] (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 ) + [316] (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 - [319] (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 ) - [319] (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 ) - [319] (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 ) - [319] (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 ) - [320] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) - [321] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 - [322] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@18 + [317] (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 ) + [317] (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 ) + [317] (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 ) + [317] (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 ) + [318] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) + [319] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 + [320] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@18 to:play_remove_lines::@3 play_remove_lines::@3: scope:[play_remove_lines] from play_remove_lines::@18 play_remove_lines::@2 - [323] (byte) play_remove_lines::full#2 ← phi( play_remove_lines::@18/(byte) play_remove_lines::full#4 play_remove_lines::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [324] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 - [325] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 - [326] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 - [327] 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 + [321] (byte) play_remove_lines::full#2 ← phi( play_remove_lines::@18/(byte) play_remove_lines::full#4 play_remove_lines::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [322] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 + [323] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 + [324] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 + [325] 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 - [328] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 + [326] 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 - [329] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 - [330] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 + [327] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 + [328] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 to:play_remove_lines::@4 play_remove_lines::@4: scope:[play_remove_lines] from play_remove_lines::@10 play_remove_lines::@9 - [331] (byte) play_remove_lines::removed#7 ← phi( play_remove_lines::@10/(byte) play_remove_lines::removed#1 play_remove_lines::@9/(byte) play_remove_lines::removed#11 ) - [331] (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 ) - [332] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 - [333] 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 + [329] (byte) play_remove_lines::removed#7 ← phi( play_remove_lines::@10/(byte) play_remove_lines::removed#1 play_remove_lines::@9/(byte) play_remove_lines::removed#11 ) + [329] (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 ) + [330] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 + [331] 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 - [334] (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 ) - [335] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 + [332] (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 ) + [333] 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 - [336] return + [334] return to:@return play_remove_lines::@6: scope:[play_remove_lines] from play_remove_lines::@5 - [337] *((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 - [338] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 + [335] *((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 + [336] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 to:play_remove_lines::@5 play_remove_lines::@18: scope:[play_remove_lines] from play_remove_lines::@2 - [339] phi() + [337] phi() to:play_remove_lines::@3 play_lock_current: scope:[play_lock_current] from play_move_down::@13 - [340] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#25 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [338] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#25 << (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 - [341] (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 ) - [341] (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 ) - [341] (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 ) - [342] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) - [343] (byte) play_lock_current::col#0 ← (byte) current_xpos#115 + [339] (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 ) + [339] (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 ) + [339] (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 ) + [340] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) + [341] (byte) play_lock_current::col#0 ← (byte) current_xpos#113 to:play_lock_current::@2 play_lock_current::@2: scope:[play_lock_current] from play_lock_current::@1 play_lock_current::@8 - [344] (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 ) - [344] (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 ) - [344] (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 ) - [345] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 - [346] if(*((byte*) current_piece_gfx#105 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 + [342] (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 ) + [342] (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 ) + [342] (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 ) + [343] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 + [344] if(*((byte*) current_piece_gfx#103 + (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 - [347] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#19 + [345] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#19 to:play_lock_current::@3 play_lock_current::@3: scope:[play_lock_current] from play_lock_current::@2 play_lock_current::@4 - [348] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 - [349] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 - [350] if((byte) play_lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@8 + [346] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 + [347] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 + [348] 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 - [351] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [352] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 - [353] if((byte) play_lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@7 + [349] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [350] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 + [351] 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 - [354] return + [352] return to:@return play_lock_current::@7: scope:[play_lock_current] from play_lock_current::@5 - [355] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 + [353] (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 - [356] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 + [354] (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 - [357] (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 ) - [358] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 - [359] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) - [360] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 - [361] (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) + [355] (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 ) + [356] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 + [357] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) + [358] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [359] (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 - [362] return + [360] return to:@return keyboard_event_get: scope:[keyboard_event_get] from main::@34 - [363] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return + [361] 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 - [364] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 - [365] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) + [362] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 + [363] (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 - [366] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) - [366] (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 ) - [367] return + [364] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) + [364] (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 ) + [365] return to:@return keyboard_event_scan: scope:[keyboard_event_scan] from main::@33 - [368] phi() + [366] phi() to:keyboard_event_scan::@1 keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@3 - [369] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) - [369] (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 ) - [369] (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 ) - [370] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 - [371] call keyboard_matrix_read - [372] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + [367] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) + [367] (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 ) + [367] (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 ) + [368] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 + [369] call keyboard_matrix_read + [370] (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 - [373] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 - [374] 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 + [371] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 + [372] 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 - [375] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 + [373] (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 - [376] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) - [376] (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 ) - [377] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 - [378] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 + [374] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) + [374] (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 ) + [375] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 + [376] 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 - [379] phi() - [380] call keyboard_event_pressed - [381] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + [377] phi() + [378] call keyboard_event_pressed + [379] (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 - [382] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 - [383] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 + [380] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + [381] 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 - [384] phi() + [382] phi() to:keyboard_event_scan::@9 keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@21 keyboard_event_scan::@26 - [385] (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 ) - [386] call keyboard_event_pressed - [387] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + [383] (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 ) + [384] call keyboard_event_pressed + [385] (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 - [388] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 - [389] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 + [386] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + [387] 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 - [390] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 + [388] (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 - [391] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) - [392] call keyboard_event_pressed - [393] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + [389] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) + [390] call keyboard_event_pressed + [391] (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 - [394] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 - [395] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 + [392] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + [393] 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 - [396] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 + [394] (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 - [397] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) - [398] call keyboard_event_pressed - [399] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + [395] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) + [396] call keyboard_event_pressed + [397] (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 - [400] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 - [401] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return + [398] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + [399] 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 - [402] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 + [400] (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 - [403] return + [401] return to:@return keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@25 keyboard_event_scan::@5 - [404] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) - [404] (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 ) - [404] (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 ) - [405] (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) - [406] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) - [407] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 + [402] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) + [402] (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 ) + [402] (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 ) + [403] (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) + [404] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) + [405] 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 - [408] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 + [406] 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 - [409] (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) - [410] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 + [407] (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) + [408] 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 - [411] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 - [412] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 + [409] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 + [410] (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 - [413] (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 ) - [414] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 - [415] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 - [416] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 + [411] (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 ) + [412] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 + [413] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 + [414] 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 - [417] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 + [415] *((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 - [418] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 - [419] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 - [420] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 + [416] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 + [417] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 + [418] (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 - [421] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) - [422] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) + [419] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) + [420] (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 - [423] return + [421] return to:@return render_show: scope:[render_show] from main::@6 - [424] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 + [422] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 to:render_show::toD0182 render_show::toD0182: scope:[render_show] from render_show - [425] phi() + [423] phi() to:render_show::@2 render_show::@2: scope:[render_show] from render_show::toD0181 render_show::toD0182 - [426] (byte) render_show::d018val#3 ← phi( render_show::toD0181/(const byte) render_show::toD0181_return#0 render_show::toD0182/(const byte) render_show::toD0182_return#0 ) - [427] *((const byte*) D018#0) ← (byte) render_show::d018val#3 - [428] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 + [424] (byte) render_show::d018val#3 ← phi( render_show::toD0181/(const byte) render_show::toD0181_return#0 render_show::toD0182/(const byte) render_show::toD0182_return#0 ) + [425] *((const byte*) D018#0) ← (byte) render_show::d018val#3 + [426] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 to:render_show::@return render_show::@return: scope:[render_show] from render_show::@2 - [429] return + [427] return to:@return render_show::toD0181: scope:[render_show] from render_show - [430] phi() + [428] phi() to:render_show::@2 play_init: scope:[play_init] from main::@28 - [431] phi() + [429] phi() to:play_init::@1 play_init::@1: scope:[play_init] from play_init play_init::@1 - [432] (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 ) - [432] (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 ) - [432] (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 ) - [433] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [434] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 - [435] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 - [436] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 - [437] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 - [438] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 - [439] 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 + [430] (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 ) + [430] (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 ) + [430] (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 ) + [431] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [432] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 + [433] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 + [434] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 + [435] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 + [436] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 + [437] 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::@3 play_init::@3: scope:[play_init] from play_init::@1 - [440] *((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 - [441] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0) + [438] *((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 + [439] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0) to:play_init::@2 play_init::@2: scope:[play_init] from play_init::@2 play_init::@3 - [442] (byte) play_init::b#2 ← phi( play_init::@2/(byte) play_init::b#1 play_init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [443] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 - [444] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) - [445] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 - [446] if((byte) play_init::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_init::@2 + [440] (byte) play_init::b#2 ← phi( play_init::@2/(byte) play_init::b#1 play_init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [441] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 + [442] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) + [443] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 + [444] if((byte) play_init::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_init::@2 to:play_init::@return play_init::@return: scope:[play_init] from play_init::@2 - [447] return + [445] return to:@return sprites_irq_init: scope:[sprites_irq_init] from main::@27 asm { sei } - [449] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 + [447] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 asm { ldaCIA1_INTERRUPT } - [451] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 - [452] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 - [453] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [454] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 - [455] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 - [456] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 - [457] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() + [449] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 + [450] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 + [451] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 + [452] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 + [453] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 + [454] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 + [455] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() asm { cli } to:sprites_irq_init::@return sprites_irq_init::@return: scope:[sprites_irq_init] from sprites_irq_init - [459] return + [457] return to:@return sprites_init: scope:[sprites_init] from main::@26 - [460] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 - [461] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [462] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) - [463] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) + [458] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + [459] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [460] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) + [461] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) to:sprites_init::@1 sprites_init::@1: scope:[sprites_init] from sprites_init sprites_init::@1 - [464] (byte) sprites_init::xpos#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 sprites_init::@1/(byte) sprites_init::xpos#1 ) - [464] (byte) sprites_init::s#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 0 sprites_init::@1/(byte) sprites_init::s#1 ) - [465] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [466] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 - [467] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 - [468] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 - [469] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 - [470] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 + [462] (byte) sprites_init::xpos#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 sprites_init::@1/(byte) sprites_init::xpos#1 ) + [462] (byte) sprites_init::s#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 0 sprites_init::@1/(byte) sprites_init::s#1 ) + [463] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [464] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 + [465] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 + [466] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 + [467] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 + [468] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 to:sprites_init::@return sprites_init::@return: scope:[sprites_init] from sprites_init::@1 - [471] return + [469] return to:@return render_init: scope:[render_init] from main::@25 - [472] phi() + [470] phi() to:render_init::vicSelectGfxBank1 render_init::vicSelectGfxBank1: scope:[render_init] from render_init - [473] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [471] *((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 - [474] phi() + [472] phi() to:render_init::vicSelectGfxBank1_@1 render_init::vicSelectGfxBank1_@1: scope:[render_init] from render_init::vicSelectGfxBank1_toDd001 - [475] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 + [473] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 to:render_init::@3 render_init::@3: scope:[render_init] from render_init::vicSelectGfxBank1_@1 - [476] *((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 - [477] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 - [478] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 - [479] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 - [480] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 - [481] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 - [482] call render_screen_original + [474] *((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 + [475] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 + [476] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 + [477] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 + [478] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 + [479] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 + [480] call render_screen_original to:render_init::@4 render_init::@4: scope:[render_init] from render_init::@3 - [483] phi() - [484] call render_screen_original + [481] phi() + [482] call render_screen_original to:render_init::@1 render_init::@1: scope:[render_init] from render_init::@1 render_init::@4 - [485] (byte*) render_init::li_2#2 ← phi( render_init::@1/(byte*) render_init::li_2#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) - [485] (byte*) render_init::li_1#2 ← phi( render_init::@1/(byte*) render_init::li_1#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) - [485] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [486] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [487] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 - [488] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [489] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 - [490] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [491] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [492] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 - [493] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 + [483] (byte*) render_init::li_2#2 ← phi( render_init::@1/(byte*) render_init::li_2#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) + [483] (byte*) render_init::li_1#2 ← phi( render_init::@1/(byte*) render_init::li_1#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) + [483] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [484] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [485] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 + [486] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [487] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 + [488] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [489] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [490] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 + [491] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 to:render_init::@return render_init::@return: scope:[render_init] from render_init::@1 - [494] return + [492] return to:@return render_screen_original: scope:[render_screen_original] from render_init::@3 render_init::@4 - [495] (byte*) render_screen_original::screen#9 ← phi( render_init::@3/(const byte*) PLAYFIELD_SCREEN_1#0 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0 ) + [493] (byte*) render_screen_original::screen#9 ← phi( render_init::@3/(const byte*) PLAYFIELD_SCREEN_1#0 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0 ) to:render_screen_original::@1 render_screen_original::@1: scope:[render_screen_original] from render_screen_original render_screen_original::@7 - [496] (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 ) - [496] (byte*) render_screen_original::ocols#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::ocols#1 ) - [496] (byte*) render_screen_original::oscr#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::oscr#1 ) - [496] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS#0 render_screen_original::@7/(byte*) render_screen_original::cols#3 ) - [496] (byte*) render_screen_original::screen#8 ← phi( render_screen_original/(byte*) render_screen_original::screen#9 render_screen_original::@7/(byte*) render_screen_original::screen#10 ) + [494] (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 ) + [494] (byte*) render_screen_original::ocols#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::ocols#1 ) + [494] (byte*) render_screen_original::oscr#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::oscr#1 ) + [494] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS#0 render_screen_original::@7/(byte*) render_screen_original::cols#3 ) + [494] (byte*) render_screen_original::screen#8 ← phi( render_screen_original/(byte*) render_screen_original::screen#9 render_screen_original::@7/(byte*) render_screen_original::screen#10 ) to:render_screen_original::@2 render_screen_original::@2: scope:[render_screen_original] from render_screen_original::@1 render_screen_original::@2 - [497] (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 ) - [497] (byte*) render_screen_original::cols#4 ← phi( render_screen_original::@1/(byte*) render_screen_original::cols#7 render_screen_original::@2/(byte*) render_screen_original::cols#1 ) - [497] (byte*) render_screen_original::screen#5 ← phi( render_screen_original::@1/(byte*) render_screen_original::screen#8 render_screen_original::@2/(byte*) render_screen_original::screen#2 ) - [498] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 - [499] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 - [500] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 - [501] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 - [502] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 - [503] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 + [495] (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 ) + [495] (byte*) render_screen_original::cols#4 ← phi( render_screen_original::@1/(byte*) render_screen_original::cols#7 render_screen_original::@2/(byte*) render_screen_original::cols#1 ) + [495] (byte*) render_screen_original::screen#5 ← phi( render_screen_original::@1/(byte*) render_screen_original::screen#8 render_screen_original::@2/(byte*) render_screen_original::screen#2 ) + [496] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 + [497] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 + [498] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 + [499] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 + [500] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 + [501] 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 - [504] (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 ) - [504] (byte*) render_screen_original::cols#5 ← phi( render_screen_original::@2/(byte*) render_screen_original::cols#1 render_screen_original::@3/(byte*) render_screen_original::cols#2 ) - [504] (byte*) render_screen_original::ocols#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::ocols#4 render_screen_original::@3/(byte*) render_screen_original::ocols#1 ) - [504] (byte*) render_screen_original::screen#6 ← phi( render_screen_original::@2/(byte*) render_screen_original::screen#2 render_screen_original::@3/(byte*) render_screen_original::screen#3 ) - [504] (byte*) render_screen_original::oscr#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::oscr#4 render_screen_original::@3/(byte*) render_screen_original::oscr#1 ) - [505] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) - [506] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 - [507] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 - [508] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) - [509] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 - [510] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 - [511] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 - [512] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 + [502] (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 ) + [502] (byte*) render_screen_original::cols#5 ← phi( render_screen_original::@2/(byte*) render_screen_original::cols#1 render_screen_original::@3/(byte*) render_screen_original::cols#2 ) + [502] (byte*) render_screen_original::ocols#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::ocols#4 render_screen_original::@3/(byte*) render_screen_original::ocols#1 ) + [502] (byte*) render_screen_original::screen#6 ← phi( render_screen_original::@2/(byte*) render_screen_original::screen#2 render_screen_original::@3/(byte*) render_screen_original::screen#3 ) + [502] (byte*) render_screen_original::oscr#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::oscr#4 render_screen_original::@3/(byte*) render_screen_original::oscr#1 ) + [503] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) + [504] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 + [505] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 + [506] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) + [507] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 + [508] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 + [509] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 + [510] 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 - [513] (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 ) - [513] (byte*) render_screen_original::cols#6 ← phi( render_screen_original::@3/(byte*) render_screen_original::cols#2 render_screen_original::@4/(byte*) render_screen_original::cols#3 ) - [513] (byte*) render_screen_original::screen#7 ← phi( render_screen_original::@3/(byte*) render_screen_original::screen#3 render_screen_original::@4/(byte*) render_screen_original::screen#10 ) - [514] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 - [515] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 - [516] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 - [517] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 - [518] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 - [519] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 + [511] (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 ) + [511] (byte*) render_screen_original::cols#6 ← phi( render_screen_original::@3/(byte*) render_screen_original::cols#2 render_screen_original::@4/(byte*) render_screen_original::cols#3 ) + [511] (byte*) render_screen_original::screen#7 ← phi( render_screen_original::@3/(byte*) render_screen_original::screen#3 render_screen_original::@4/(byte*) render_screen_original::screen#10 ) + [512] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 + [513] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 + [514] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 + [515] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 + [516] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 + [517] 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 - [520] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 - [521] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 + [518] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 + [519] 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 - [522] return + [520] return to:@return sid_rnd_init: scope:[sid_rnd_init] from main - [523] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 - [524] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 + [521] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 + [522] *((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 - [525] return + [523] return to:@return sprites_irq: scope:[sprites_irq] from asm { cld } - [527] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 - [528] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 - [529] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 - [530] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 - [531] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 - [532] (byte/signed word/word/dword/signed dword~) sprites_irq::$0 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [533] (byte) sprites_irq::raster_sprite_gfx_modify#0 ← (byte/signed word/word/dword/signed dword~) sprites_irq::$0 + [525] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 + [526] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 + [527] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 + [528] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 + [529] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 + [530] (byte/signed word/word/dword/signed dword~) sprites_irq::$0 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [531] (byte) sprites_irq::raster_sprite_gfx_modify#0 ← (byte/signed word/word/dword/signed dword~) sprites_irq::$0 to:sprites_irq::@1 sprites_irq::@1: scope:[sprites_irq] from sprites_irq sprites_irq::@1 - [534] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 + [532] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 to:sprites_irq::@8 sprites_irq::@8: scope:[sprites_irq] from sprites_irq::@1 - [535] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 - [536] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 + [533] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 + [534] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 to:sprites_irq::@9 sprites_irq::@9: scope:[sprites_irq] from sprites_irq::@8 - [537] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 - [538] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 - [539] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 - [540] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 - [541] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 - [542] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 + [535] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 + [536] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 + [537] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 + [538] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 + [539] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 + [540] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 to:sprites_irq::@3 sprites_irq::@3: scope:[sprites_irq] from sprites_irq::@2 sprites_irq::@9 - [543] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 - [544] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 + [541] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 + [542] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 to:sprites_irq::@11 sprites_irq::@11: scope:[sprites_irq] from sprites_irq::@3 - [545] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 + [543] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 to:sprites_irq::@12 sprites_irq::@12: scope:[sprites_irq] from sprites_irq::@11 - [546] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 - [547] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [548] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 + [544] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 + [545] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [546] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:sprites_irq::@7 sprites_irq::@7: scope:[sprites_irq] from sprites_irq::@12 sprites_irq::@15 sprites_irq::@5 - [549] (byte) irq_raster_next#4 ← phi( sprites_irq::@12/(byte) irq_raster_next#3 sprites_irq::@15/(byte) irq_raster_next#1 sprites_irq::@5/(byte) irq_raster_next#2 ) - [550] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 - [551] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 + [547] (byte) irq_raster_next#4 ← phi( sprites_irq::@12/(byte) irq_raster_next#3 sprites_irq::@15/(byte) irq_raster_next#1 sprites_irq::@5/(byte) irq_raster_next#2 ) + [548] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 + [549] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 to:sprites_irq::@return sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@7 - [552] return + [550] return to:@return sprites_irq::@5: scope:[sprites_irq] from sprites_irq::@11 - [553] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [554] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 - [555] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [556] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 + [551] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [552] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 + [553] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [554] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:sprites_irq::@7 sprites_irq::@4: scope:[sprites_irq] from sprites_irq::@3 - [557] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [558] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 + [555] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [556] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 to:sprites_irq::toSpritePtr2 sprites_irq::toSpritePtr2: scope:[sprites_irq] from sprites_irq::@4 - [559] phi() + [557] phi() to:sprites_irq::@15 sprites_irq::@15: scope:[sprites_irq] from sprites_irq::toSpritePtr2 - [560] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 + [558] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 to:sprites_irq::@7 sprites_irq::@2: scope:[sprites_irq] from sprites_irq::@8 - [561] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 - [562] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 - [563] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 - [564] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 - [565] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 - [566] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 + [559] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 + [560] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 + [561] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 + [562] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 + [563] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 + [564] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 to:sprites_irq::@3 diff --git a/src/test/ref/complex/tetris/tetris.log b/src/test/ref/complex/tetris/tetris.log index 19199e76d..1c6835d2a 100644 --- a/src/test/ref/complex/tetris/tetris.log +++ b/src/test/ref/complex/tetris/tetris.log @@ -13,9 +13,9 @@ Inlined call (byte~) sprites_irq::$5 ← call toSpritePtr (byte*) PLAYFIELD_SPRI CONTROL FLOW GRAPH SSA @begin: scope:[] from (byte) current_ypos#96 ← phi( ) - (byte) current_xpos#122 ← phi( ) - (byte*) current_piece_gfx#112 ← phi( ) - (byte) current_piece_char#100 ← phi( ) + (byte) current_xpos#120 ← phi( ) + (byte*) current_piece_gfx#110 ← phi( ) + (byte) current_piece_char#98 ← phi( ) (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -98,9 +98,9 @@ CONTROL FLOW GRAPH SSA to:@5 @5: scope:[] from @begin (byte) current_ypos#95 ← phi( @begin/(byte) current_ypos#96 ) - (byte) current_xpos#121 ← phi( @begin/(byte) current_xpos#122 ) - (byte*) current_piece_gfx#111 ← phi( @begin/(byte*) current_piece_gfx#112 ) - (byte) current_piece_char#99 ← phi( @begin/(byte) current_piece_char#100 ) + (byte) current_xpos#119 ← phi( @begin/(byte) current_xpos#120 ) + (byte*) current_piece_gfx#109 ← phi( @begin/(byte*) current_piece_gfx#110 ) + (byte) current_piece_char#97 ← phi( @begin/(byte) current_piece_char#98 ) (byte) KEY_DEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) KEY_RETURN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) KEY_CRSR_RIGHT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -183,9 +183,9 @@ keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matri to:@return @9: scope:[] from @5 (byte) current_ypos#94 ← phi( @5/(byte) current_ypos#95 ) - (byte) current_xpos#120 ← phi( @5/(byte) current_xpos#121 ) - (byte*) current_piece_gfx#110 ← phi( @5/(byte*) current_piece_gfx#111 ) - (byte) current_piece_char#98 ← phi( @5/(byte) current_piece_char#99 ) + (byte) current_xpos#118 ← phi( @5/(byte) current_xpos#119 ) + (byte*) current_piece_gfx#108 ← phi( @5/(byte*) current_piece_gfx#109 ) + (byte) current_piece_char#96 ← phi( @5/(byte) current_piece_char#97 ) (byte[8]) keyboard_events#0 ← { fill( 8, 0) } (byte) keyboard_events_size#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) keyboard_modifiers#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -456,9 +456,9 @@ keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get (byte) keyboard_modifiers#61 ← phi( @9/(byte) keyboard_modifiers#0 ) (byte) keyboard_events_size#80 ← phi( @9/(byte) keyboard_events_size#0 ) (byte) current_ypos#93 ← phi( @9/(byte) current_ypos#94 ) - (byte) current_xpos#119 ← phi( @9/(byte) current_xpos#120 ) - (byte*) current_piece_gfx#109 ← phi( @9/(byte*) current_piece_gfx#110 ) - (byte) current_piece_char#97 ← phi( @9/(byte) current_piece_char#98 ) + (byte) current_xpos#117 ← phi( @9/(byte) current_xpos#118 ) + (byte*) current_piece_gfx#107 ← phi( @9/(byte*) current_piece_gfx#108 ) + (byte) current_piece_char#95 ← phi( @9/(byte) current_piece_char#96 ) (word*) SID_VOICE3_FREQ#0 ← ((word*)) (word/dword/signed dword) 54286 (byte*) SID_VOICE3_FREQ_LOW#0 ← ((byte*)) (word/dword/signed dword) 54286 (byte*) SID_VOICE3_FREQ_HIGH#0 ← ((byte*)) (word/dword/signed dword) 54287 @@ -492,9 +492,9 @@ sid_rnd::@return: scope:[sid_rnd] from sid_rnd (byte) keyboard_modifiers#59 ← phi( @12/(byte) keyboard_modifiers#61 ) (byte) keyboard_events_size#78 ← phi( @12/(byte) keyboard_events_size#80 ) (byte) current_ypos#92 ← phi( @12/(byte) current_ypos#93 ) - (byte) current_xpos#118 ← phi( @12/(byte) current_xpos#119 ) - (byte*) current_piece_gfx#108 ← phi( @12/(byte*) current_piece_gfx#109 ) - (byte) current_piece_char#96 ← phi( @12/(byte) current_piece_char#97 ) + (byte) current_xpos#116 ← phi( @12/(byte) current_xpos#117 ) + (byte*) current_piece_gfx#106 ← phi( @12/(byte*) current_piece_gfx#107 ) + (byte) current_piece_char#94 ← phi( @12/(byte) current_piece_char#95 ) (byte*) PLAYFIELD_SCREEN_1#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 (byte*) PLAYFIELD_SCREEN_2#0 ← ((byte*)) (word/signed word/dword/signed dword) 11264 (byte*~) $1 ← (byte*) PLAYFIELD_SCREEN_1#0 + (word) SPRITE_PTRS#0 @@ -971,8 +971,8 @@ render_playfield::@return: scope:[render_playfield] from render_playfield::@3 return to:@return render_moving: scope:[render_moving] from main::@31 main::@37 - (byte) current_piece_char#76 ← phi( main::@31/(byte) current_piece_char#60 main::@37/(byte) current_piece_char#84 ) - (byte*) current_piece_gfx#63 ← phi( main::@31/(byte*) current_piece_gfx#75 main::@37/(byte*) current_piece_gfx#79 ) + (byte) current_piece_char#64 ← phi( main::@31/(byte) current_piece_char#60 main::@37/(byte) current_piece_char#76 ) + (byte*) current_piece_gfx#62 ← phi( main::@31/(byte*) current_piece_gfx#73 main::@37/(byte*) current_piece_gfx#77 ) (byte) current_xpos#57 ← phi( main::@31/(byte) current_xpos#77 main::@37/(byte) current_xpos#78 ) (byte) render_screen_render#30 ← phi( main::@31/(byte) render_screen_render#37 main::@37/(byte) render_screen_render#35 ) (byte) current_ypos#11 ← phi( main::@31/(byte) current_ypos#27 main::@37/(byte) current_ypos#28 ) @@ -982,35 +982,32 @@ render_moving: scope:[render_moving] from main::@31 main::@37 (byte) render_moving::l#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_moving::@1 render_moving::@1: scope:[render_moving] from render_moving render_moving::@3 - (byte) current_piece_char#64 ← phi( render_moving/(byte) current_piece_char#76 render_moving::@3/(byte) current_piece_char#77 ) + (byte) current_piece_char#50 ← phi( render_moving/(byte) current_piece_char#64 render_moving::@3/(byte) current_piece_char#65 ) (byte) render_moving::l#5 ← phi( render_moving/(byte) render_moving::l#0 render_moving::@3/(byte) render_moving::l#1 ) - (byte*) current_piece_gfx#44 ← phi( render_moving/(byte*) current_piece_gfx#63 render_moving::@3/(byte*) current_piece_gfx#64 ) + (byte*) current_piece_gfx#44 ← phi( render_moving/(byte*) current_piece_gfx#62 render_moving::@3/(byte*) current_piece_gfx#63 ) (byte) render_moving::i#5 ← phi( render_moving/(byte) render_moving::i#0 render_moving::@3/(byte) render_moving::i#8 ) (byte) current_xpos#33 ← phi( render_moving/(byte) current_xpos#57 render_moving::@3/(byte) current_xpos#58 ) (byte) render_screen_render#23 ← phi( render_moving/(byte) render_screen_render#30 render_moving::@3/(byte) render_screen_render#31 ) (byte) render_moving::ypos2#2 ← phi( render_moving/(byte) render_moving::ypos2#0 render_moving::@3/(byte) render_moving::ypos2#1 ) (bool~) render_moving::$1 ← (byte) render_moving::ypos2#2 > (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte/signed word/word/dword/signed dword~) render_moving::$2 ← (byte/signed byte/word/signed word/dword/signed dword) 2 * (byte) PLAYFIELD_LINES#0 - (bool~) render_moving::$3 ← (byte) render_moving::ypos2#2 < (byte/signed word/word/dword/signed dword~) render_moving::$2 - (bool~) render_moving::$4 ← (bool~) render_moving::$1 && (bool~) render_moving::$3 - if((bool~) render_moving::$4) goto render_moving::@2 - to:render_moving::@7 + if((bool~) render_moving::$1) goto render_moving::@2 + to:render_moving::@6 render_moving::@2: scope:[render_moving] from render_moving::@1 - (byte) current_piece_char#49 ← phi( render_moving::@1/(byte) current_piece_char#64 ) - (byte) render_moving::l#9 ← phi( render_moving::@1/(byte) render_moving::l#5 ) + (byte) render_moving::l#8 ← phi( render_moving::@1/(byte) render_moving::l#5 ) + (byte) current_piece_char#35 ← phi( render_moving::@1/(byte) current_piece_char#50 ) (byte) render_moving::i#6 ← phi( render_moving::@1/(byte) render_moving::i#5 ) (byte*) current_piece_gfx#26 ← phi( render_moving::@1/(byte*) current_piece_gfx#44 ) (byte) current_xpos#14 ← phi( render_moving::@1/(byte) current_xpos#33 ) (byte) render_moving::ypos2#3 ← phi( render_moving::@1/(byte) render_moving::ypos2#2 ) (byte) render_screen_render#14 ← phi( render_moving::@1/(byte) render_screen_render#23 ) - (byte~) render_moving::$5 ← (byte) render_screen_render#14 + (byte) render_moving::ypos2#3 - (byte*) render_moving::screen_line#0 ← *((byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$5) + (byte~) render_moving::$2 ← (byte) render_screen_render#14 + (byte) render_moving::ypos2#3 + (byte*) render_moving::screen_line#0 ← *((byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$2) (byte) render_moving::xpos#0 ← (byte) current_xpos#14 (byte) render_moving::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_moving::@4 -render_moving::@7: scope:[render_moving] from render_moving::@1 - (byte) current_piece_char#85 ← phi( render_moving::@1/(byte) current_piece_char#64 ) - (byte*) current_piece_gfx#80 ← phi( render_moving::@1/(byte*) current_piece_gfx#44 ) +render_moving::@6: scope:[render_moving] from render_moving::@1 + (byte) current_piece_char#77 ← phi( render_moving::@1/(byte) current_piece_char#50 ) + (byte*) current_piece_gfx#78 ← phi( render_moving::@1/(byte*) current_piece_gfx#44 ) (byte) current_xpos#80 ← phi( render_moving::@1/(byte) current_xpos#33 ) (byte) render_screen_render#39 ← phi( render_moving::@1/(byte) render_screen_render#23 ) (byte) render_moving::l#4 ← phi( render_moving::@1/(byte) render_moving::l#5 ) @@ -1018,91 +1015,64 @@ render_moving::@7: scope:[render_moving] from render_moving::@1 (byte) render_moving::i#3 ← phi( render_moving::@1/(byte) render_moving::i#5 ) (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 to:render_moving::@3 -render_moving::@3: scope:[render_moving] from render_moving::@5 render_moving::@7 - (byte) current_piece_char#77 ← phi( render_moving::@5/(byte) current_piece_char#50 render_moving::@7/(byte) current_piece_char#85 ) - (byte*) current_piece_gfx#64 ← phi( render_moving::@5/(byte*) current_piece_gfx#27 render_moving::@7/(byte*) current_piece_gfx#80 ) - (byte) render_moving::i#8 ← phi( render_moving::@5/(byte) render_moving::i#7 render_moving::@7/(byte) render_moving::i#1 ) - (byte) current_xpos#58 ← phi( render_moving::@5/(byte) current_xpos#79 render_moving::@7/(byte) current_xpos#80 ) - (byte) render_screen_render#31 ← phi( render_moving::@5/(byte) render_screen_render#38 render_moving::@7/(byte) render_screen_render#39 ) - (byte) render_moving::l#2 ← phi( render_moving::@5/(byte) render_moving::l#3 render_moving::@7/(byte) render_moving::l#4 ) - (byte) render_moving::ypos2#4 ← phi( render_moving::@5/(byte) render_moving::ypos2#5 render_moving::@7/(byte) render_moving::ypos2#6 ) +render_moving::@3: scope:[render_moving] from render_moving::@5 render_moving::@6 + (byte) current_piece_char#65 ← phi( render_moving::@5/(byte) current_piece_char#36 render_moving::@6/(byte) current_piece_char#77 ) + (byte*) current_piece_gfx#63 ← phi( render_moving::@5/(byte*) current_piece_gfx#27 render_moving::@6/(byte*) current_piece_gfx#78 ) + (byte) render_moving::i#8 ← phi( render_moving::@5/(byte) render_moving::i#7 render_moving::@6/(byte) render_moving::i#1 ) + (byte) current_xpos#58 ← phi( render_moving::@5/(byte) current_xpos#79 render_moving::@6/(byte) current_xpos#80 ) + (byte) render_screen_render#31 ← phi( render_moving::@5/(byte) render_screen_render#38 render_moving::@6/(byte) render_screen_render#39 ) + (byte) render_moving::l#2 ← phi( render_moving::@5/(byte) render_moving::l#3 render_moving::@6/(byte) render_moving::l#4 ) + (byte) render_moving::ypos2#4 ← phi( render_moving::@5/(byte) render_moving::ypos2#5 render_moving::@6/(byte) render_moving::ypos2#6 ) (byte) render_moving::ypos2#1 ← (byte) render_moving::ypos2#4 + (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) render_moving::l#1 ← (byte) render_moving::l#2 + rangenext(0,3) - (bool~) render_moving::$11 ← (byte) render_moving::l#1 != rangelast(0,3) - if((bool~) render_moving::$11) goto render_moving::@1 + (bool~) render_moving::$6 ← (byte) render_moving::l#1 != rangelast(0,3) + if((bool~) render_moving::$6) goto render_moving::@1 to:render_moving::@return render_moving::@4: scope:[render_moving] from render_moving::@2 render_moving::@5 - (byte) current_xpos#94 ← phi( render_moving::@2/(byte) current_xpos#14 render_moving::@5/(byte) current_xpos#79 ) - (byte) render_screen_render#44 ← phi( render_moving::@2/(byte) render_screen_render#14 render_moving::@5/(byte) render_screen_render#38 ) - (byte*) render_moving::screen_line#3 ← phi( render_moving::@2/(byte*) render_moving::screen_line#0 render_moving::@5/(byte*) render_moving::screen_line#4 ) - (byte) current_piece_char#35 ← phi( render_moving::@2/(byte) current_piece_char#49 render_moving::@5/(byte) current_piece_char#50 ) - (byte) render_moving::l#7 ← phi( render_moving::@2/(byte) render_moving::l#9 render_moving::@5/(byte) render_moving::l#3 ) - (byte) render_moving::ypos2#8 ← phi( render_moving::@2/(byte) render_moving::ypos2#3 render_moving::@5/(byte) render_moving::ypos2#5 ) - (byte) render_moving::c#4 ← phi( render_moving::@2/(byte) render_moving::c#0 render_moving::@5/(byte) render_moving::c#1 ) - (byte) render_moving::xpos#5 ← phi( render_moving::@2/(byte) render_moving::xpos#0 render_moving::@5/(byte) render_moving::xpos#1 ) + (byte) current_xpos#93 ← phi( render_moving::@2/(byte) current_xpos#14 render_moving::@5/(byte) current_xpos#79 ) + (byte) render_screen_render#43 ← phi( render_moving::@2/(byte) render_screen_render#14 render_moving::@5/(byte) render_screen_render#38 ) + (byte) render_moving::l#6 ← phi( render_moving::@2/(byte) render_moving::l#8 render_moving::@5/(byte) render_moving::l#3 ) + (byte) render_moving::ypos2#7 ← phi( render_moving::@2/(byte) render_moving::ypos2#3 render_moving::@5/(byte) render_moving::ypos2#5 ) + (byte*) render_moving::screen_line#2 ← phi( render_moving::@2/(byte*) render_moving::screen_line#0 render_moving::@5/(byte*) render_moving::screen_line#3 ) + (byte) current_piece_char#21 ← phi( render_moving::@2/(byte) current_piece_char#35 render_moving::@5/(byte) current_piece_char#36 ) + (byte) render_moving::c#3 ← phi( render_moving::@2/(byte) render_moving::c#0 render_moving::@5/(byte) render_moving::c#1 ) + (byte) render_moving::xpos#4 ← phi( render_moving::@2/(byte) render_moving::xpos#0 render_moving::@5/(byte) render_moving::xpos#1 ) (byte) render_moving::i#4 ← phi( render_moving::@2/(byte) render_moving::i#6 render_moving::@5/(byte) render_moving::i#7 ) (byte*) current_piece_gfx#13 ← phi( render_moving::@2/(byte*) current_piece_gfx#26 render_moving::@5/(byte*) current_piece_gfx#27 ) (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#13 + (byte) render_moving::i#4) (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 - (bool~) render_moving::$6 ← (byte) render_moving::current_cell#0 != (byte/signed byte/word/signed word/dword/signed dword) 0 - (bool~) render_moving::$7 ← ! (bool~) render_moving::$6 - if((bool~) render_moving::$7) goto render_moving::@5 - to:render_moving::@9 -render_moving::@5: scope:[render_moving] from render_moving::@10 render_moving::@4 render_moving::@6 - (byte*) render_moving::screen_line#4 ← phi( render_moving::@10/(byte*) render_moving::screen_line#1 render_moving::@4/(byte*) render_moving::screen_line#3 render_moving::@6/(byte*) render_moving::screen_line#5 ) - (byte) current_piece_char#50 ← phi( render_moving::@10/(byte) current_piece_char#10 render_moving::@4/(byte) current_piece_char#35 render_moving::@6/(byte) current_piece_char#65 ) - (byte) current_xpos#79 ← phi( render_moving::@10/(byte) current_xpos#93 render_moving::@4/(byte) current_xpos#94 render_moving::@6/(byte) current_xpos#95 ) - (byte) render_screen_render#38 ← phi( render_moving::@10/(byte) render_screen_render#43 render_moving::@4/(byte) render_screen_render#44 render_moving::@6/(byte) render_screen_render#45 ) - (byte) render_moving::i#7 ← phi( render_moving::@10/(byte) render_moving::i#9 render_moving::@4/(byte) render_moving::i#2 render_moving::@6/(byte) render_moving::i#10 ) - (byte*) current_piece_gfx#27 ← phi( render_moving::@10/(byte*) current_piece_gfx#45 render_moving::@4/(byte*) current_piece_gfx#13 render_moving::@6/(byte*) current_piece_gfx#46 ) - (byte) render_moving::l#3 ← phi( render_moving::@10/(byte) render_moving::l#6 render_moving::@4/(byte) render_moving::l#7 render_moving::@6/(byte) render_moving::l#8 ) - (byte) render_moving::ypos2#5 ← phi( render_moving::@10/(byte) render_moving::ypos2#7 render_moving::@4/(byte) render_moving::ypos2#8 render_moving::@6/(byte) render_moving::ypos2#9 ) - (byte) render_moving::c#2 ← phi( render_moving::@10/(byte) render_moving::c#3 render_moving::@4/(byte) render_moving::c#4 render_moving::@6/(byte) render_moving::c#5 ) - (byte) render_moving::xpos#2 ← phi( render_moving::@10/(byte) render_moving::xpos#4 render_moving::@4/(byte) render_moving::xpos#5 render_moving::@6/(byte) render_moving::xpos#6 ) + (bool~) render_moving::$3 ← (byte) render_moving::current_cell#0 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (bool~) render_moving::$4 ← ! (bool~) render_moving::$3 + if((bool~) render_moving::$4) goto render_moving::@5 + to:render_moving::@8 +render_moving::@5: scope:[render_moving] from render_moving::@4 render_moving::@8 + (byte) current_xpos#79 ← phi( render_moving::@4/(byte) current_xpos#93 render_moving::@8/(byte) current_xpos#94 ) + (byte) render_screen_render#38 ← phi( render_moving::@4/(byte) render_screen_render#43 render_moving::@8/(byte) render_screen_render#44 ) + (byte*) render_moving::screen_line#3 ← phi( render_moving::@4/(byte*) render_moving::screen_line#2 render_moving::@8/(byte*) render_moving::screen_line#1 ) + (byte) current_piece_char#36 ← phi( render_moving::@4/(byte) current_piece_char#21 render_moving::@8/(byte) current_piece_char#10 ) + (byte) render_moving::i#7 ← phi( render_moving::@4/(byte) render_moving::i#2 render_moving::@8/(byte) render_moving::i#9 ) + (byte*) current_piece_gfx#27 ← phi( render_moving::@4/(byte*) current_piece_gfx#13 render_moving::@8/(byte*) current_piece_gfx#45 ) + (byte) render_moving::l#3 ← phi( render_moving::@4/(byte) render_moving::l#6 render_moving::@8/(byte) render_moving::l#7 ) + (byte) render_moving::ypos2#5 ← phi( render_moving::@4/(byte) render_moving::ypos2#7 render_moving::@8/(byte) render_moving::ypos2#8 ) + (byte) render_moving::c#2 ← phi( render_moving::@4/(byte) render_moving::c#3 render_moving::@8/(byte) render_moving::c#4 ) + (byte) render_moving::xpos#2 ← phi( render_moving::@4/(byte) render_moving::xpos#4 render_moving::@8/(byte) render_moving::xpos#3 ) (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 (byte) render_moving::c#1 ← (byte) render_moving::c#2 + rangenext(0,3) - (bool~) render_moving::$10 ← (byte) render_moving::c#1 != rangelast(0,3) - if((bool~) render_moving::$10) goto render_moving::@4 + (bool~) render_moving::$5 ← (byte) render_moving::c#1 != rangelast(0,3) + if((bool~) render_moving::$5) goto render_moving::@4 to:render_moving::@3 -render_moving::@9: scope:[render_moving] from render_moving::@4 - (byte) current_xpos#104 ← phi( render_moving::@4/(byte) current_xpos#94 ) - (byte) render_screen_render#50 ← phi( render_moving::@4/(byte) render_screen_render#44 ) - (byte) render_moving::i#11 ← phi( render_moving::@4/(byte) render_moving::i#2 ) - (byte*) current_piece_gfx#65 ← phi( render_moving::@4/(byte*) current_piece_gfx#13 ) - (byte) render_moving::l#10 ← phi( render_moving::@4/(byte) render_moving::l#7 ) - (byte) render_moving::ypos2#10 ← phi( render_moving::@4/(byte) render_moving::ypos2#8 ) - (byte) render_moving::c#6 ← phi( render_moving::@4/(byte) render_moving::c#4 ) - (byte*) render_moving::screen_line#2 ← phi( render_moving::@4/(byte*) render_moving::screen_line#3 ) - (byte) current_piece_char#21 ← phi( render_moving::@4/(byte) current_piece_char#35 ) - (byte) render_moving::xpos#3 ← phi( render_moving::@4/(byte) render_moving::xpos#5 ) - (bool~) render_moving::$8 ← (byte) render_moving::xpos#3 < (byte) PLAYFIELD_COLS#0 - (bool~) render_moving::$9 ← ! (bool~) render_moving::$8 - if((bool~) render_moving::$9) goto render_moving::@6 - to:render_moving::@10 -render_moving::@6: scope:[render_moving] from render_moving::@9 - (byte*) render_moving::screen_line#5 ← phi( render_moving::@9/(byte*) render_moving::screen_line#2 ) - (byte) current_piece_char#65 ← phi( render_moving::@9/(byte) current_piece_char#21 ) - (byte) current_xpos#95 ← phi( render_moving::@9/(byte) current_xpos#104 ) - (byte) render_screen_render#45 ← phi( render_moving::@9/(byte) render_screen_render#50 ) - (byte) render_moving::i#10 ← phi( render_moving::@9/(byte) render_moving::i#11 ) - (byte*) current_piece_gfx#46 ← phi( render_moving::@9/(byte*) current_piece_gfx#65 ) - (byte) render_moving::l#8 ← phi( render_moving::@9/(byte) render_moving::l#10 ) - (byte) render_moving::ypos2#9 ← phi( render_moving::@9/(byte) render_moving::ypos2#10 ) - (byte) render_moving::c#5 ← phi( render_moving::@9/(byte) render_moving::c#6 ) - (byte) render_moving::xpos#6 ← phi( render_moving::@9/(byte) render_moving::xpos#3 ) - to:render_moving::@5 -render_moving::@10: scope:[render_moving] from render_moving::@9 - (byte) current_xpos#93 ← phi( render_moving::@9/(byte) current_xpos#104 ) - (byte) render_screen_render#43 ← phi( render_moving::@9/(byte) render_screen_render#50 ) - (byte) render_moving::i#9 ← phi( render_moving::@9/(byte) render_moving::i#11 ) - (byte*) current_piece_gfx#45 ← phi( render_moving::@9/(byte*) current_piece_gfx#65 ) - (byte) render_moving::l#6 ← phi( render_moving::@9/(byte) render_moving::l#10 ) - (byte) render_moving::ypos2#7 ← phi( render_moving::@9/(byte) render_moving::ypos2#10 ) - (byte) render_moving::c#3 ← phi( render_moving::@9/(byte) render_moving::c#6 ) - (byte) render_moving::xpos#4 ← phi( render_moving::@9/(byte) render_moving::xpos#3 ) - (byte*) render_moving::screen_line#1 ← phi( render_moving::@9/(byte*) render_moving::screen_line#2 ) - (byte) current_piece_char#10 ← phi( render_moving::@9/(byte) current_piece_char#21 ) - *((byte*) render_moving::screen_line#1 + (byte) render_moving::xpos#4) ← (byte) current_piece_char#10 +render_moving::@8: scope:[render_moving] from render_moving::@4 + (byte) current_xpos#94 ← phi( render_moving::@4/(byte) current_xpos#93 ) + (byte) render_screen_render#44 ← phi( render_moving::@4/(byte) render_screen_render#43 ) + (byte) render_moving::i#9 ← phi( render_moving::@4/(byte) render_moving::i#2 ) + (byte*) current_piece_gfx#45 ← phi( render_moving::@4/(byte*) current_piece_gfx#13 ) + (byte) render_moving::l#7 ← phi( render_moving::@4/(byte) render_moving::l#6 ) + (byte) render_moving::ypos2#8 ← phi( render_moving::@4/(byte) render_moving::ypos2#7 ) + (byte) render_moving::c#4 ← phi( render_moving::@4/(byte) render_moving::c#3 ) + (byte) render_moving::xpos#3 ← phi( render_moving::@4/(byte) render_moving::xpos#4 ) + (byte*) render_moving::screen_line#1 ← phi( render_moving::@4/(byte*) render_moving::screen_line#2 ) + (byte) current_piece_char#10 ← phi( render_moving::@4/(byte) current_piece_char#21 ) + *((byte*) render_moving::screen_line#1 + (byte) render_moving::xpos#3) ← (byte) current_piece_char#10 to:render_moving::@5 render_moving::@return: scope:[render_moving] from render_moving::@3 return @@ -1117,10 +1087,10 @@ render_moving::@return: scope:[render_moving] from render_moving::@3 (byte) render_screen_showing#44 ← phi( @14/(byte) render_screen_showing#0 ) (byte) game_over#84 ← phi( @14/(byte) game_over#0 ) (byte) current_ypos#91 ← phi( @14/(byte) current_ypos#92 ) - (byte) current_xpos#117 ← phi( @14/(byte) current_xpos#118 ) - (byte*) current_piece_gfx#107 ← phi( @14/(byte*) current_piece_gfx#108 ) - (byte) current_piece_char#95 ← phi( @14/(byte) current_piece_char#96 ) - (byte) render_screen_render#60 ← phi( @14/(byte) render_screen_render#0 ) + (byte) current_xpos#115 ← phi( @14/(byte) current_xpos#116 ) + (byte*) current_piece_gfx#105 ← phi( @14/(byte*) current_piece_gfx#106 ) + (byte) current_piece_char#93 ← phi( @14/(byte) current_piece_char#94 ) + (byte) render_screen_render#58 ← phi( @14/(byte) render_screen_render#0 ) (byte) render_screen_show#59 ← phi( @14/(byte) render_screen_show#0 ) kickasm(location (byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) // Put the sprites into memory @@ -1174,10 +1144,10 @@ sprites_init::@return: scope:[sprites_init] from sprites_init::@1 (byte) render_screen_showing#42 ← phi( @22/(byte) render_screen_showing#44 ) (byte) game_over#83 ← phi( @22/(byte) game_over#84 ) (byte) current_ypos#88 ← phi( @22/(byte) current_ypos#91 ) - (byte) current_xpos#114 ← phi( @22/(byte) current_xpos#117 ) - (byte*) current_piece_gfx#104 ← phi( @22/(byte*) current_piece_gfx#107 ) - (byte) current_piece_char#92 ← phi( @22/(byte) current_piece_char#95 ) - (byte) render_screen_render#58 ← phi( @22/(byte) render_screen_render#60 ) + (byte) current_xpos#112 ← phi( @22/(byte) current_xpos#115 ) + (byte*) current_piece_gfx#102 ← phi( @22/(byte*) current_piece_gfx#105 ) + (byte) current_piece_char#90 ← phi( @22/(byte) current_piece_char#93 ) + (byte) render_screen_render#56 ← phi( @22/(byte) render_screen_render#58 ) (byte) render_screen_show#56 ← phi( @22/(byte) render_screen_show#59 ) (byte) SPRITES_FIRST_YPOS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 (byte/signed word/word/dword/signed dword~) $4 ← (byte) SPRITES_FIRST_YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 19 @@ -1197,10 +1167,10 @@ toSpritePtr1: scope:[] from @23 (byte) render_screen_showing#38 ← phi( @23/(byte) render_screen_showing#42 ) (byte) game_over#77 ← phi( @23/(byte) game_over#83 ) (byte) current_ypos#85 ← phi( @23/(byte) current_ypos#88 ) - (byte) current_xpos#111 ← phi( @23/(byte) current_xpos#114 ) - (byte*) current_piece_gfx#99 ← phi( @23/(byte*) current_piece_gfx#104 ) - (byte) current_piece_char#86 ← phi( @23/(byte) current_piece_char#92 ) - (byte) render_screen_render#56 ← phi( @23/(byte) render_screen_render#58 ) + (byte) current_xpos#109 ← phi( @23/(byte) current_xpos#112 ) + (byte*) current_piece_gfx#97 ← phi( @23/(byte*) current_piece_gfx#102 ) + (byte) current_piece_char#84 ← phi( @23/(byte) current_piece_char#90 ) + (byte) render_screen_render#54 ← phi( @23/(byte) render_screen_render#56 ) (byte) render_screen_show#53 ← phi( @23/(byte) render_screen_show#56 ) (byte) irq_raster_next#24 ← phi( @23/(byte) irq_raster_next#0 ) (byte) irq_sprite_ypos#24 ← phi( @23/(byte) irq_sprite_ypos#0 ) @@ -1220,10 +1190,10 @@ toSpritePtr1_@return: scope:[] from toSpritePtr1 (byte) render_screen_showing#32 ← phi( toSpritePtr1/(byte) render_screen_showing#38 ) (byte) game_over#67 ← phi( toSpritePtr1/(byte) game_over#77 ) (byte) current_ypos#79 ← phi( toSpritePtr1/(byte) current_ypos#85 ) - (byte) current_xpos#105 ← phi( toSpritePtr1/(byte) current_xpos#111 ) - (byte*) current_piece_gfx#92 ← phi( toSpritePtr1/(byte*) current_piece_gfx#99 ) - (byte) current_piece_char#78 ← phi( toSpritePtr1/(byte) current_piece_char#86 ) - (byte) render_screen_render#51 ← phi( toSpritePtr1/(byte) render_screen_render#56 ) + (byte) current_xpos#103 ← phi( toSpritePtr1/(byte) current_xpos#109 ) + (byte*) current_piece_gfx#90 ← phi( toSpritePtr1/(byte*) current_piece_gfx#97 ) + (byte) current_piece_char#78 ← phi( toSpritePtr1/(byte) current_piece_char#84 ) + (byte) render_screen_render#49 ← phi( toSpritePtr1/(byte) render_screen_render#54 ) (byte) render_screen_show#48 ← phi( toSpritePtr1/(byte) render_screen_show#53 ) (byte) irq_raster_next#23 ← phi( toSpritePtr1/(byte) irq_raster_next#24 ) (byte) irq_sprite_ypos#22 ← phi( toSpritePtr1/(byte) irq_sprite_ypos#24 ) @@ -1240,10 +1210,10 @@ toSpritePtr1_@return: scope:[] from toSpritePtr1 (byte) render_screen_showing#27 ← phi( toSpritePtr1_@return/(byte) render_screen_showing#32 ) (byte) game_over#56 ← phi( toSpritePtr1_@return/(byte) game_over#67 ) (byte) current_ypos#72 ← phi( toSpritePtr1_@return/(byte) current_ypos#79 ) - (byte) current_xpos#96 ← phi( toSpritePtr1_@return/(byte) current_xpos#105 ) - (byte*) current_piece_gfx#81 ← phi( toSpritePtr1_@return/(byte*) current_piece_gfx#92 ) + (byte) current_xpos#95 ← phi( toSpritePtr1_@return/(byte) current_xpos#103 ) + (byte*) current_piece_gfx#79 ← phi( toSpritePtr1_@return/(byte*) current_piece_gfx#90 ) (byte) current_piece_char#66 ← phi( toSpritePtr1_@return/(byte) current_piece_char#78 ) - (byte) render_screen_render#46 ← phi( toSpritePtr1_@return/(byte) render_screen_render#51 ) + (byte) render_screen_render#45 ← phi( toSpritePtr1_@return/(byte) render_screen_render#49 ) (byte) render_screen_show#43 ← phi( toSpritePtr1_@return/(byte) render_screen_show#48 ) (byte) irq_raster_next#22 ← phi( toSpritePtr1_@return/(byte) irq_raster_next#23 ) (byte) irq_sprite_ypos#21 ← phi( toSpritePtr1_@return/(byte) irq_sprite_ypos#22 ) @@ -1428,10 +1398,10 @@ sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@7 (byte) render_screen_showing#21 ← phi( @38/(byte) render_screen_showing#27 ) (byte) game_over#49 ← phi( @38/(byte) game_over#56 ) (byte) current_ypos#67 ← phi( @38/(byte) current_ypos#72 ) - (byte) current_xpos#86 ← phi( @38/(byte) current_xpos#96 ) - (byte*) current_piece_gfx#72 ← phi( @38/(byte*) current_piece_gfx#81 ) + (byte) current_xpos#86 ← phi( @38/(byte) current_xpos#95 ) + (byte*) current_piece_gfx#70 ← phi( @38/(byte*) current_piece_gfx#79 ) (byte) current_piece_char#56 ← phi( @38/(byte) current_piece_char#66 ) - (byte) render_screen_render#40 ← phi( @38/(byte) render_screen_render#46 ) + (byte) render_screen_render#40 ← phi( @38/(byte) render_screen_render#45 ) (byte) render_screen_show#35 ← phi( @38/(byte) render_screen_show#43 ) (byte) irq_raster_next#20 ← phi( @38/(byte) irq_raster_next#22 ) (byte) irq_sprite_ypos#18 ← phi( @38/(byte) irq_sprite_ypos#21 ) @@ -1589,7 +1559,7 @@ play_movement::@1: scope:[play_movement] from play_movement::@5 (word) lines_bcd#48 ← phi( play_movement::@5/(word) lines_bcd#1 ) (byte) current_movedown_counter#36 ← phi( play_movement::@5/(byte) current_movedown_counter#1 ) (byte) current_ypos#52 ← phi( play_movement::@5/(byte) current_ypos#0 ) - (byte*) current_piece_gfx#47 ← phi( play_movement::@5/(byte*) current_piece_gfx#0 ) + (byte*) current_piece_gfx#46 ← phi( play_movement::@5/(byte*) current_piece_gfx#0 ) (byte) current_orientation#49 ← phi( play_movement::@5/(byte) current_orientation#1 ) (byte) play_movement::render#8 ← phi( play_movement::@5/(byte) play_movement::render#1 ) (byte) current_xpos#35 ← phi( play_movement::@5/(byte) current_xpos#0 ) @@ -1600,7 +1570,7 @@ play_movement::@1: scope:[play_movement] from play_movement::@5 to:play_movement::@6 play_movement::@6: scope:[play_movement] from play_movement::@1 (byte) game_over#33 ← phi( play_movement::@1/(byte) game_over#44 ) - (byte) current_piece_char#36 ← phi( play_movement::@1/(byte) current_piece_char#51 ) + (byte) current_piece_char#37 ← phi( play_movement::@1/(byte) current_piece_char#51 ) (byte*) current_piece#39 ← phi( play_movement::@1/(byte*) current_piece#54 ) (byte) level_bcd#43 ← phi( play_movement::@1/(byte) level_bcd#58 ) (byte) current_movedown_slow#47 ← phi( play_movement::@1/(byte) current_movedown_slow#63 ) @@ -1609,7 +1579,7 @@ play_movement::@6: scope:[play_movement] from play_movement::@1 (word) lines_bcd#36 ← phi( play_movement::@1/(word) lines_bcd#48 ) (byte) current_ypos#48 ← phi( play_movement::@1/(byte) current_ypos#52 ) (byte) current_movedown_counter#28 ← phi( play_movement::@1/(byte) current_movedown_counter#36 ) - (byte*) current_piece_gfx#29 ← phi( play_movement::@1/(byte*) current_piece_gfx#47 ) + (byte*) current_piece_gfx#29 ← phi( play_movement::@1/(byte*) current_piece_gfx#46 ) (byte) current_orientation#31 ← phi( play_movement::@1/(byte) current_orientation#49 ) (byte) play_movement::key_event#3 ← phi( play_movement::@1/(byte) play_movement::key_event#2 ) (byte) play_movement::render#5 ← phi( play_movement::@1/(byte) play_movement::render#8 ) @@ -1625,7 +1595,7 @@ play_movement::@6: scope:[play_movement] from play_movement::@1 play_movement::@7: scope:[play_movement] from play_movement::@6 (byte) game_over#23 ← phi( play_movement::@6/(byte) game_over#33 ) (byte) current_xpos#37 ← phi( play_movement::@6/(byte) current_xpos#1 ) - (byte) current_piece_char#24 ← phi( play_movement::@6/(byte) current_piece_char#36 ) + (byte) current_piece_char#24 ← phi( play_movement::@6/(byte) current_piece_char#37 ) (byte*) current_piece#24 ← phi( play_movement::@6/(byte*) current_piece#39 ) (byte) level_bcd#29 ← phi( play_movement::@6/(byte) level_bcd#43 ) (byte) current_movedown_slow#32 ← phi( play_movement::@6/(byte) current_movedown_slow#47 ) @@ -1694,15 +1664,15 @@ play_movement::@return: scope:[play_movement] from play_movement::@2 play_movem to:@return play_move_down: scope:[play_move_down] from play_movement (byte) game_over#78 ← phi( play_movement/(byte) game_over#21 ) - (byte*) current_piece_gfx#100 ← phi( play_movement/(byte*) current_piece_gfx#28 ) - (byte) current_piece_char#87 ← phi( play_movement/(byte) current_piece_char#22 ) + (byte*) current_piece_gfx#98 ← phi( play_movement/(byte*) current_piece_gfx#28 ) + (byte) current_piece_char#85 ← phi( play_movement/(byte) current_piece_char#22 ) (byte*) current_piece#80 ← phi( play_movement/(byte*) current_piece#22 ) (byte) level_bcd#90 ← phi( play_movement/(byte) level_bcd#27 ) (byte) level#87 ← phi( play_movement/(byte) level#26 ) (dword) score_bcd#75 ← phi( play_movement/(dword) score_bcd#22 ) (word) lines_bcd#78 ← phi( play_movement/(word) lines_bcd#22 ) (byte) current_orientation#80 ← phi( play_movement/(byte) current_orientation#30 ) - (byte) current_xpos#106 ← phi( play_movement/(byte) current_xpos#34 ) + (byte) current_xpos#104 ← phi( play_movement/(byte) current_xpos#34 ) (byte) current_ypos#80 ← phi( play_movement/(byte) current_ypos#29 ) (byte) current_movedown_slow#64 ← phi( play_movement/(byte) current_movedown_slow#30 ) (byte) play_move_down::key_event#1 ← phi( play_movement/(byte) play_move_down::key_event#0 ) @@ -1715,15 +1685,15 @@ play_move_down: scope:[play_move_down] from play_movement to:play_move_down::@8 play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down::@8 (byte) game_over#68 ← phi( play_move_down/(byte) game_over#78 play_move_down::@8/(byte) game_over#79 ) - (byte*) current_piece_gfx#93 ← phi( play_move_down/(byte*) current_piece_gfx#100 play_move_down::@8/(byte*) current_piece_gfx#101 ) - (byte) current_piece_char#79 ← phi( play_move_down/(byte) current_piece_char#87 play_move_down::@8/(byte) current_piece_char#88 ) + (byte*) current_piece_gfx#91 ← phi( play_move_down/(byte*) current_piece_gfx#98 play_move_down::@8/(byte*) current_piece_gfx#99 ) + (byte) current_piece_char#79 ← phi( play_move_down/(byte) current_piece_char#85 play_move_down::@8/(byte) current_piece_char#86 ) (byte*) current_piece#74 ← phi( play_move_down/(byte*) current_piece#80 play_move_down::@8/(byte*) current_piece#81 ) (byte) level_bcd#81 ← phi( play_move_down/(byte) level_bcd#90 play_move_down::@8/(byte) level_bcd#91 ) (byte) level#78 ← phi( play_move_down/(byte) level#87 play_move_down::@8/(byte) level#88 ) (dword) score_bcd#68 ← phi( play_move_down/(dword) score_bcd#75 play_move_down::@8/(dword) score_bcd#76 ) (word) lines_bcd#71 ← phi( play_move_down/(word) lines_bcd#78 play_move_down::@8/(word) lines_bcd#79 ) (byte) current_orientation#73 ← phi( play_move_down/(byte) current_orientation#80 play_move_down::@8/(byte) current_orientation#81 ) - (byte) current_xpos#97 ← phi( play_move_down/(byte) current_xpos#106 play_move_down::@8/(byte) current_xpos#107 ) + (byte) current_xpos#96 ← phi( play_move_down/(byte) current_xpos#104 play_move_down::@8/(byte) current_xpos#105 ) (byte) current_ypos#73 ← phi( play_move_down/(byte) current_ypos#80 play_move_down::@8/(byte) current_ypos#81 ) (byte) play_move_down::movedown#12 ← phi( play_move_down/(byte) play_move_down::movedown#0 play_move_down::@8/(byte) play_move_down::movedown#1 ) (byte) current_movedown_slow#48 ← phi( play_move_down/(byte) current_movedown_slow#64 play_move_down::@8/(byte) current_movedown_slow#65 ) @@ -1734,7 +1704,7 @@ play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down:: to:play_move_down::@17 play_move_down::@17: scope:[play_move_down] from play_move_down::@1 (byte) game_over#58 ← phi( play_move_down::@1/(byte) game_over#68 ) - (byte*) current_piece_gfx#83 ← phi( play_move_down::@1/(byte*) current_piece_gfx#93 ) + (byte*) current_piece_gfx#81 ← phi( play_move_down::@1/(byte*) current_piece_gfx#91 ) (byte) current_piece_char#68 ← phi( play_move_down::@1/(byte) current_piece_char#79 ) (byte*) current_piece#67 ← phi( play_move_down::@1/(byte*) current_piece#74 ) (byte) level_bcd#72 ← phi( play_move_down::@1/(byte) level_bcd#81 ) @@ -1742,7 +1712,7 @@ play_move_down::@17: scope:[play_move_down] from play_move_down::@1 (dword) score_bcd#60 ← phi( play_move_down::@1/(dword) score_bcd#68 ) (word) lines_bcd#62 ← phi( play_move_down::@1/(word) lines_bcd#71 ) (byte) current_orientation#63 ← phi( play_move_down::@1/(byte) current_orientation#73 ) - (byte) current_xpos#82 ← phi( play_move_down::@1/(byte) current_xpos#97 ) + (byte) current_xpos#82 ← phi( play_move_down::@1/(byte) current_xpos#96 ) (byte) current_ypos#64 ← phi( play_move_down::@1/(byte) current_ypos#73 ) (byte) play_move_down::movedown#10 ← phi( play_move_down::@1/(byte) play_move_down::movedown#12 ) (byte) current_movedown_slow#34 ← phi( play_move_down::@1/(byte) current_movedown_slow#48 ) @@ -1755,15 +1725,15 @@ play_move_down::@17: scope:[play_move_down] from play_move_down::@1 to:play_move_down::@9 play_move_down::@8: scope:[play_move_down] from play_move_down (byte) game_over#79 ← phi( play_move_down/(byte) game_over#78 ) - (byte*) current_piece_gfx#101 ← phi( play_move_down/(byte*) current_piece_gfx#100 ) - (byte) current_piece_char#88 ← phi( play_move_down/(byte) current_piece_char#87 ) + (byte*) current_piece_gfx#99 ← phi( play_move_down/(byte*) current_piece_gfx#98 ) + (byte) current_piece_char#86 ← phi( play_move_down/(byte) current_piece_char#85 ) (byte*) current_piece#81 ← phi( play_move_down/(byte*) current_piece#80 ) (byte) level_bcd#91 ← phi( play_move_down/(byte) level_bcd#90 ) (byte) level#88 ← phi( play_move_down/(byte) level#87 ) (dword) score_bcd#76 ← phi( play_move_down/(dword) score_bcd#75 ) (word) lines_bcd#79 ← phi( play_move_down/(word) lines_bcd#78 ) (byte) current_orientation#81 ← phi( play_move_down/(byte) current_orientation#80 ) - (byte) current_xpos#107 ← phi( play_move_down/(byte) current_xpos#106 ) + (byte) current_xpos#105 ← phi( play_move_down/(byte) current_xpos#104 ) (byte) current_ypos#81 ← phi( play_move_down/(byte) current_ypos#80 ) (byte) current_movedown_slow#65 ← phi( play_move_down/(byte) current_movedown_slow#64 ) (byte) current_movedown_counter#37 ← phi( play_move_down/(byte) current_movedown_counter#3 ) @@ -1772,7 +1742,7 @@ play_move_down::@8: scope:[play_move_down] from play_move_down 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) game_over#46 ← phi( play_move_down::@10/(byte) game_over#57 play_move_down::@17/(byte) game_over#58 play_move_down::@3/(byte) game_over#59 ) - (byte*) current_piece_gfx#67 ← phi( play_move_down::@10/(byte*) current_piece_gfx#82 play_move_down::@17/(byte*) current_piece_gfx#83 play_move_down::@3/(byte*) current_piece_gfx#84 ) + (byte*) current_piece_gfx#65 ← phi( play_move_down::@10/(byte*) current_piece_gfx#80 play_move_down::@17/(byte*) current_piece_gfx#81 play_move_down::@3/(byte*) current_piece_gfx#82 ) (byte) current_piece_char#53 ← phi( play_move_down::@10/(byte) current_piece_char#67 play_move_down::@17/(byte) current_piece_char#68 play_move_down::@3/(byte) current_piece_char#69 ) (byte*) current_piece#56 ← phi( play_move_down::@10/(byte*) current_piece#66 play_move_down::@17/(byte*) current_piece#67 play_move_down::@3/(byte*) current_piece#68 ) (byte) level_bcd#60 ← phi( play_move_down::@10/(byte) level_bcd#71 play_move_down::@17/(byte) level_bcd#72 play_move_down::@3/(byte) level_bcd#73 ) @@ -1791,7 +1761,7 @@ play_move_down::@2: scope:[play_move_down] from play_move_down::@10 play_move_d to:play_move_down::@11 play_move_down::@9: scope:[play_move_down] from play_move_down::@17 (byte) game_over#69 ← phi( play_move_down::@17/(byte) game_over#58 ) - (byte*) current_piece_gfx#94 ← phi( play_move_down::@17/(byte*) current_piece_gfx#83 ) + (byte*) current_piece_gfx#92 ← phi( play_move_down::@17/(byte*) current_piece_gfx#81 ) (byte) current_piece_char#80 ← phi( play_move_down::@17/(byte) current_piece_char#68 ) (byte*) current_piece#75 ← phi( play_move_down::@17/(byte*) current_piece#67 ) (byte) level_bcd#82 ← phi( play_move_down::@17/(byte) level_bcd#72 ) @@ -1799,7 +1769,7 @@ play_move_down::@9: scope:[play_move_down] from play_move_down::@17 (dword) score_bcd#69 ← phi( play_move_down::@17/(dword) score_bcd#60 ) (word) lines_bcd#72 ← phi( play_move_down::@17/(word) lines_bcd#62 ) (byte) current_orientation#74 ← phi( play_move_down::@17/(byte) current_orientation#63 ) - (byte) current_xpos#98 ← phi( play_move_down::@17/(byte) current_xpos#82 ) + (byte) current_xpos#97 ← phi( play_move_down::@17/(byte) current_xpos#82 ) (byte) current_ypos#74 ← phi( play_move_down::@17/(byte) current_ypos#64 ) (byte) current_movedown_slow#49 ← phi( play_move_down::@17/(byte) current_movedown_slow#34 ) (byte) play_move_down::movedown#8 ← phi( play_move_down::@17/(byte) play_move_down::movedown#10 ) @@ -1810,7 +1780,7 @@ play_move_down::@9: scope:[play_move_down] from play_move_down::@17 to:play_move_down::@10 play_move_down::@3: scope:[play_move_down] from play_move_down::@9 (byte) game_over#59 ← phi( play_move_down::@9/(byte) game_over#69 ) - (byte*) current_piece_gfx#84 ← phi( play_move_down::@9/(byte*) current_piece_gfx#94 ) + (byte*) current_piece_gfx#82 ← phi( play_move_down::@9/(byte*) current_piece_gfx#92 ) (byte) current_piece_char#69 ← phi( play_move_down::@9/(byte) current_piece_char#80 ) (byte*) current_piece#68 ← phi( play_move_down::@9/(byte*) current_piece#75 ) (byte) level_bcd#73 ← phi( play_move_down::@9/(byte) level_bcd#82 ) @@ -1818,7 +1788,7 @@ play_move_down::@3: scope:[play_move_down] from play_move_down::@9 (dword) score_bcd#61 ← phi( play_move_down::@9/(dword) score_bcd#69 ) (word) lines_bcd#63 ← phi( play_move_down::@9/(word) lines_bcd#72 ) (byte) current_orientation#64 ← phi( play_move_down::@9/(byte) current_orientation#74 ) - (byte) current_xpos#83 ← phi( play_move_down::@9/(byte) current_xpos#98 ) + (byte) current_xpos#83 ← phi( play_move_down::@9/(byte) current_xpos#97 ) (byte) current_ypos#65 ← phi( play_move_down::@9/(byte) current_ypos#74 ) (byte) play_move_down::movedown#11 ← phi( play_move_down::@9/(byte) play_move_down::movedown#8 ) (byte) current_movedown_slow#35 ← phi( play_move_down::@9/(byte) current_movedown_slow#49 ) @@ -1826,7 +1796,7 @@ play_move_down::@3: scope:[play_move_down] from play_move_down::@9 to:play_move_down::@2 play_move_down::@10: scope:[play_move_down] from play_move_down::@9 (byte) game_over#57 ← phi( play_move_down::@9/(byte) game_over#69 ) - (byte*) current_piece_gfx#82 ← phi( play_move_down::@9/(byte*) current_piece_gfx#94 ) + (byte*) current_piece_gfx#80 ← phi( play_move_down::@9/(byte*) current_piece_gfx#92 ) (byte) current_piece_char#67 ← phi( play_move_down::@9/(byte) current_piece_char#80 ) (byte*) current_piece#66 ← phi( play_move_down::@9/(byte*) current_piece#75 ) (byte) level_bcd#71 ← phi( play_move_down::@9/(byte) level_bcd#82 ) @@ -1834,7 +1804,7 @@ play_move_down::@10: scope:[play_move_down] from play_move_down::@9 (dword) score_bcd#59 ← phi( play_move_down::@9/(dword) score_bcd#69 ) (word) lines_bcd#61 ← phi( play_move_down::@9/(word) lines_bcd#72 ) (byte) current_orientation#62 ← phi( play_move_down::@9/(byte) current_orientation#74 ) - (byte) current_xpos#81 ← phi( play_move_down::@9/(byte) current_xpos#98 ) + (byte) current_xpos#81 ← phi( play_move_down::@9/(byte) current_xpos#97 ) (byte) current_ypos#63 ← phi( play_move_down::@9/(byte) current_ypos#74 ) (byte) current_movedown_slow#33 ← phi( play_move_down::@9/(byte) current_movedown_slow#49 ) (byte) current_movedown_counter#21 ← phi( play_move_down::@9/(byte) current_movedown_counter#13 ) @@ -1843,8 +1813,8 @@ play_move_down::@10: scope:[play_move_down] from play_move_down::@9 to:play_move_down::@2 play_move_down::@4: scope:[play_move_down] from play_move_down::@11 play_move_down::@2 (byte) game_over#34 ← phi( play_move_down::@11/(byte) game_over#45 play_move_down::@2/(byte) game_over#46 ) - (byte*) current_piece_gfx#48 ← phi( play_move_down::@11/(byte*) current_piece_gfx#66 play_move_down::@2/(byte*) current_piece_gfx#67 ) - (byte) current_piece_char#37 ← phi( play_move_down::@11/(byte) current_piece_char#52 play_move_down::@2/(byte) current_piece_char#53 ) + (byte*) current_piece_gfx#47 ← phi( play_move_down::@11/(byte*) current_piece_gfx#64 play_move_down::@2/(byte*) current_piece_gfx#65 ) + (byte) current_piece_char#38 ← phi( play_move_down::@11/(byte) current_piece_char#52 play_move_down::@2/(byte) current_piece_char#53 ) (byte*) current_piece#40 ← phi( play_move_down::@11/(byte*) current_piece#55 play_move_down::@2/(byte*) current_piece#56 ) (byte) level_bcd#44 ← phi( play_move_down::@11/(byte) level_bcd#59 play_move_down::@2/(byte) level_bcd#60 ) (byte) current_movedown_slow#50 ← phi( play_move_down::@11/(byte) current_movedown_slow#66 play_move_down::@2/(byte) current_movedown_slow#19 ) @@ -1862,7 +1832,7 @@ play_move_down::@4: scope:[play_move_down] from play_move_down::@11 play_move_d to:play_move_down::@12 play_move_down::@11: scope:[play_move_down] from play_move_down::@2 (byte) game_over#45 ← phi( play_move_down::@2/(byte) game_over#46 ) - (byte*) current_piece_gfx#66 ← phi( play_move_down::@2/(byte*) current_piece_gfx#67 ) + (byte*) current_piece_gfx#64 ← phi( play_move_down::@2/(byte*) current_piece_gfx#65 ) (byte) current_piece_char#52 ← phi( play_move_down::@2/(byte) current_piece_char#53 ) (byte*) current_piece#55 ← phi( play_move_down::@2/(byte*) current_piece#56 ) (byte) level_bcd#59 ← phi( play_move_down::@2/(byte) level_bcd#60 ) @@ -1880,9 +1850,9 @@ play_move_down::@11: scope:[play_move_down] from play_move_down::@2 play_move_down::@5: scope:[play_move_down] from play_move_down::@4 (byte) game_over#25 ← phi( play_move_down::@4/(byte) game_over#34 ) (byte) current_xpos#40 ← phi( play_move_down::@4/(byte) current_xpos#38 ) - (byte*) current_piece_gfx#32 ← phi( play_move_down::@4/(byte*) current_piece_gfx#48 ) + (byte*) current_piece_gfx#32 ← phi( play_move_down::@4/(byte*) current_piece_gfx#47 ) (byte) current_orientation#35 ← phi( play_move_down::@4/(byte) current_orientation#33 ) - (byte) current_piece_char#26 ← phi( play_move_down::@4/(byte) current_piece_char#37 ) + (byte) current_piece_char#26 ← phi( play_move_down::@4/(byte) current_piece_char#38 ) (byte*) current_piece#26 ← phi( play_move_down::@4/(byte*) current_piece#40 ) (byte) level_bcd#31 ← phi( play_move_down::@4/(byte) level_bcd#44 ) (byte) current_movedown_slow#37 ← phi( play_move_down::@4/(byte) current_movedown_slow#50 ) @@ -1895,8 +1865,8 @@ play_move_down::@5: scope:[play_move_down] from play_move_down::@4 to:play_move_down::@return play_move_down::@12: scope:[play_move_down] from play_move_down::@4 (byte) game_over#60 ← phi( play_move_down::@4/(byte) game_over#34 ) - (byte*) current_piece_gfx#85 ← phi( play_move_down::@4/(byte*) current_piece_gfx#48 ) - (byte) current_piece_char#70 ← phi( play_move_down::@4/(byte) current_piece_char#37 ) + (byte*) current_piece_gfx#83 ← phi( play_move_down::@4/(byte*) current_piece_gfx#47 ) + (byte) current_piece_char#70 ← phi( play_move_down::@4/(byte) current_piece_char#38 ) (byte) level_bcd#74 ← phi( play_move_down::@4/(byte) level_bcd#44 ) (byte) current_movedown_slow#75 ← phi( play_move_down::@4/(byte) current_movedown_slow#50 ) (byte) level#69 ← phi( play_move_down::@4/(byte) level#41 ) @@ -1916,7 +1886,7 @@ play_move_down::@12: scope:[play_move_down] from play_move_down::@4 play_move_down::@18: scope:[play_move_down] from play_move_down::@12 (byte) game_over#47 ← phi( play_move_down::@12/(byte) game_over#60 ) (byte) current_xpos#84 ← phi( play_move_down::@12/(byte) current_xpos#18 ) - (byte*) current_piece_gfx#68 ← phi( play_move_down::@12/(byte*) current_piece_gfx#85 ) + (byte*) current_piece_gfx#66 ← phi( play_move_down::@12/(byte*) current_piece_gfx#83 ) (byte) current_orientation#65 ← phi( play_move_down::@12/(byte) current_orientation#17 ) (byte) current_piece_char#54 ← phi( play_move_down::@12/(byte) current_piece_char#70 ) (byte*) current_piece#57 ← phi( play_move_down::@12/(byte*) current_piece#29 ) @@ -1934,9 +1904,9 @@ play_move_down::@18: scope:[play_move_down] from play_move_down::@12 play_move_down::@6: scope:[play_move_down] from play_move_down::@18 (byte) game_over#36 ← phi( play_move_down::@18/(byte) game_over#47 ) (byte) current_xpos#62 ← phi( play_move_down::@18/(byte) current_xpos#84 ) - (byte*) current_piece_gfx#50 ← phi( play_move_down::@18/(byte*) current_piece_gfx#68 ) + (byte*) current_piece_gfx#49 ← phi( play_move_down::@18/(byte*) current_piece_gfx#66 ) (byte) current_orientation#53 ← phi( play_move_down::@18/(byte) current_orientation#65 ) - (byte) current_piece_char#39 ← phi( play_move_down::@18/(byte) current_piece_char#54 ) + (byte) current_piece_char#40 ← phi( play_move_down::@18/(byte) current_piece_char#54 ) (byte*) current_piece#42 ← phi( play_move_down::@18/(byte*) current_piece#57 ) (byte) level_bcd#47 ← phi( play_move_down::@18/(byte) level_bcd#61 ) (byte) current_movedown_slow#53 ← phi( play_move_down::@18/(byte) current_movedown_slow#67 ) @@ -1951,7 +1921,7 @@ play_move_down::@13: scope:[play_move_down] from play_move_down::@18 (byte) current_orientation#75 ← phi( play_move_down::@18/(byte) current_orientation#65 ) (byte) current_piece_char#71 ← phi( play_move_down::@18/(byte) current_piece_char#54 ) (byte*) current_piece#69 ← phi( play_move_down::@18/(byte*) current_piece#57 ) - (byte*) current_piece_gfx#73 ← phi( play_move_down::@18/(byte*) current_piece_gfx#68 ) + (byte*) current_piece_gfx#71 ← phi( play_move_down::@18/(byte*) current_piece_gfx#66 ) (byte) level_bcd#62 ← phi( play_move_down::@18/(byte) level_bcd#61 ) (byte) current_movedown_slow#68 ← phi( play_move_down::@18/(byte) current_movedown_slow#67 ) (byte) level#58 ← phi( play_move_down::@18/(byte) level#57 ) @@ -1965,7 +1935,7 @@ play_move_down::@19: scope:[play_move_down] from play_move_down::@13 (byte) game_over#48 ← phi( play_move_down::@13/(byte) game_over#61 ) (byte) current_ypos#66 ← phi( play_move_down::@13/(byte) current_ypos#41 ) (byte) current_xpos#85 ← phi( play_move_down::@13/(byte) current_xpos#68 ) - (byte*) current_piece_gfx#69 ← phi( play_move_down::@13/(byte*) current_piece_gfx#73 ) + (byte*) current_piece_gfx#67 ← phi( play_move_down::@13/(byte*) current_piece_gfx#71 ) (byte) current_orientation#66 ← phi( play_move_down::@13/(byte) current_orientation#75 ) (byte) current_piece_char#55 ← phi( play_move_down::@13/(byte) current_piece_char#71 ) (byte*) current_piece#58 ← phi( play_move_down::@13/(byte*) current_piece#69 ) @@ -1981,9 +1951,9 @@ play_move_down::@20: scope:[play_move_down] from play_move_down::@19 (byte) game_over#35 ← phi( play_move_down::@19/(byte) game_over#48 ) (byte) current_ypos#51 ← phi( play_move_down::@19/(byte) current_ypos#66 ) (byte) current_xpos#61 ← phi( play_move_down::@19/(byte) current_xpos#85 ) - (byte*) current_piece_gfx#49 ← phi( play_move_down::@19/(byte*) current_piece_gfx#69 ) + (byte*) current_piece_gfx#48 ← phi( play_move_down::@19/(byte*) current_piece_gfx#67 ) (byte) current_orientation#52 ← phi( play_move_down::@19/(byte) current_orientation#66 ) - (byte) current_piece_char#38 ← phi( play_move_down::@19/(byte) current_piece_char#55 ) + (byte) current_piece_char#39 ← phi( play_move_down::@19/(byte) current_piece_char#55 ) (byte*) current_piece#41 ← phi( play_move_down::@19/(byte*) current_piece#58 ) (byte) level_bcd#30 ← phi( play_move_down::@19/(byte) level_bcd#45 ) (byte) current_movedown_slow#36 ← phi( play_move_down::@19/(byte) current_movedown_slow#51 ) @@ -2000,9 +1970,9 @@ play_move_down::@21: scope:[play_move_down] from play_move_down::@20 (byte) game_over#24 ← phi( play_move_down::@20/(byte) game_over#35 ) (byte) current_ypos#34 ← phi( play_move_down::@20/(byte) current_ypos#51 ) (byte) current_xpos#39 ← phi( play_move_down::@20/(byte) current_xpos#61 ) - (byte*) current_piece_gfx#31 ← phi( play_move_down::@20/(byte*) current_piece_gfx#49 ) + (byte*) current_piece_gfx#31 ← phi( play_move_down::@20/(byte*) current_piece_gfx#48 ) (byte) current_orientation#34 ← phi( play_move_down::@20/(byte) current_orientation#52 ) - (byte) current_piece_char#25 ← phi( play_move_down::@20/(byte) current_piece_char#38 ) + (byte) current_piece_char#25 ← phi( play_move_down::@20/(byte) current_piece_char#39 ) (byte*) current_piece#25 ← phi( play_move_down::@20/(byte*) current_piece#41 ) (byte) level_bcd#16 ← phi( play_move_down::@20/(byte) level_bcd#6 ) (byte) current_movedown_slow#20 ← phi( play_move_down::@20/(byte) current_movedown_slow#8 ) @@ -2040,9 +2010,9 @@ play_move_down::@22: scope:[play_move_down] from play_move_down::@21 play_move_down::@7: scope:[play_move_down] from play_move_down::@22 play_move_down::@6 (byte) game_over#26 ← phi( play_move_down::@22/(byte) game_over#3 play_move_down::@6/(byte) game_over#36 ) (byte) current_xpos#41 ← phi( play_move_down::@22/(byte) current_xpos#3 play_move_down::@6/(byte) current_xpos#62 ) - (byte*) current_piece_gfx#33 ← phi( play_move_down::@22/(byte*) current_piece_gfx#3 play_move_down::@6/(byte*) current_piece_gfx#50 ) + (byte*) current_piece_gfx#33 ← phi( play_move_down::@22/(byte*) current_piece_gfx#3 play_move_down::@6/(byte*) current_piece_gfx#49 ) (byte) current_orientation#36 ← phi( play_move_down::@22/(byte) current_orientation#4 play_move_down::@6/(byte) current_orientation#53 ) - (byte) current_piece_char#27 ← phi( play_move_down::@22/(byte) current_piece_char#2 play_move_down::@6/(byte) current_piece_char#39 ) + (byte) current_piece_char#27 ← phi( play_move_down::@22/(byte) current_piece_char#2 play_move_down::@6/(byte) current_piece_char#40 ) (byte*) current_piece#27 ← phi( play_move_down::@22/(byte*) current_piece#3 play_move_down::@6/(byte*) current_piece#42 ) (byte) level_bcd#32 ← phi( play_move_down::@22/(byte) level_bcd#46 play_move_down::@6/(byte) level_bcd#47 ) (byte) current_movedown_slow#38 ← phi( play_move_down::@22/(byte) current_movedown_slow#52 play_move_down::@6/(byte) current_movedown_slow#53 ) @@ -2174,7 +2144,7 @@ play_move_leftright::@11: scope:[play_move_leftright] from play_move_leftright: (byte) play_move_leftright::return#4 ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_move_leftright::@return play_move_rotate: scope:[play_move_rotate] from play_movement::@6 - (byte*) current_piece_gfx#70 ← phi( play_movement::@6/(byte*) current_piece_gfx#29 ) + (byte*) current_piece_gfx#68 ← phi( play_movement::@6/(byte*) current_piece_gfx#29 ) (byte*) current_piece#59 ← phi( play_movement::@6/(byte*) current_piece#39 ) (byte) current_ypos#53 ← phi( play_movement::@6/(byte) current_ypos#48 ) (byte) current_xpos#66 ← phi( play_movement::@6/(byte) current_xpos#1 ) @@ -2185,7 +2155,7 @@ play_move_rotate: scope:[play_move_rotate] from play_movement::@6 if((bool~) play_move_rotate::$0) goto play_move_rotate::@1 to:play_move_rotate::@6 play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate - (byte*) current_piece_gfx#86 ← phi( play_move_rotate/(byte*) current_piece_gfx#70 ) + (byte*) current_piece_gfx#84 ← phi( play_move_rotate/(byte*) current_piece_gfx#68 ) (byte*) current_piece#45 ← phi( play_move_rotate/(byte*) current_piece#59 ) (byte) current_ypos#39 ← phi( play_move_rotate/(byte) current_ypos#53 ) (byte) current_xpos#47 ← phi( play_move_rotate/(byte) current_xpos#66 ) @@ -2196,7 +2166,7 @@ play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate to:play_move_rotate::@4 play_move_rotate::@6: scope:[play_move_rotate] from play_move_rotate (byte*) current_piece#60 ← phi( play_move_rotate/(byte*) current_piece#59 ) - (byte*) current_piece_gfx#51 ← phi( play_move_rotate/(byte*) current_piece_gfx#70 ) + (byte*) current_piece_gfx#50 ← phi( play_move_rotate/(byte*) current_piece_gfx#68 ) (byte) current_ypos#54 ← phi( play_move_rotate/(byte) current_ypos#53 ) (byte) current_xpos#67 ← phi( play_move_rotate/(byte) current_xpos#66 ) (byte) current_orientation#40 ← phi( play_move_rotate/(byte) current_orientation#39 ) @@ -2205,7 +2175,7 @@ play_move_rotate::@6: scope:[play_move_rotate] from play_move_rotate if((bool~) play_move_rotate::$1) goto play_move_rotate::@2 to:play_move_rotate::@7 play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6 - (byte*) current_piece_gfx#87 ← phi( play_move_rotate::@6/(byte*) current_piece_gfx#51 ) + (byte*) current_piece_gfx#85 ← phi( play_move_rotate::@6/(byte*) current_piece_gfx#50 ) (byte*) current_piece#46 ← phi( play_move_rotate::@6/(byte*) current_piece#60 ) (byte) current_ypos#40 ← phi( play_move_rotate::@6/(byte) current_ypos#54 ) (byte) current_xpos#48 ← phi( play_move_rotate::@6/(byte) current_xpos#67 ) @@ -2215,7 +2185,7 @@ play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6 (byte) play_move_rotate::orientation#2 ← (byte/word/dword~) play_move_rotate::$3 to:play_move_rotate::@4 play_move_rotate::@7: scope:[play_move_rotate] from play_move_rotate::@6 - (byte*) current_piece_gfx#35 ← phi( play_move_rotate::@6/(byte*) current_piece_gfx#51 ) + (byte*) current_piece_gfx#35 ← phi( play_move_rotate::@6/(byte*) current_piece_gfx#50 ) (byte) current_orientation#42 ← phi( play_move_rotate::@6/(byte) current_orientation#40 ) (byte) play_move_rotate::return#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:play_move_rotate::@return @@ -2229,7 +2199,7 @@ play_move_rotate::@return: scope:[play_move_rotate] from play_move_rotate::@11 return to:@return play_move_rotate::@4: scope:[play_move_rotate] from play_move_rotate::@1 play_move_rotate::@2 - (byte*) current_piece_gfx#71 ← phi( play_move_rotate::@1/(byte*) current_piece_gfx#86 play_move_rotate::@2/(byte*) current_piece_gfx#87 ) + (byte*) current_piece_gfx#69 ← phi( play_move_rotate::@1/(byte*) current_piece_gfx#84 play_move_rotate::@2/(byte*) current_piece_gfx#85 ) (byte) current_orientation#67 ← phi( play_move_rotate::@1/(byte) current_orientation#22 play_move_rotate::@2/(byte) current_orientation#23 ) (byte*) current_piece#32 ← phi( play_move_rotate::@1/(byte*) current_piece#45 play_move_rotate::@2/(byte*) current_piece#46 ) (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 ) @@ -2242,7 +2212,7 @@ play_move_rotate::@4: scope:[play_move_rotate] from play_move_rotate::@1 play_m (byte) play_collision::return#3 ← (byte) play_collision::return#5 to:play_move_rotate::@14 play_move_rotate::@14: scope:[play_move_rotate] from play_move_rotate::@4 - (byte*) current_piece_gfx#52 ← phi( play_move_rotate::@4/(byte*) current_piece_gfx#71 ) + (byte*) current_piece_gfx#51 ← phi( play_move_rotate::@4/(byte*) current_piece_gfx#69 ) (byte) current_orientation#54 ← phi( play_move_rotate::@4/(byte) current_orientation#67 ) (byte*) current_piece#28 ← phi( play_move_rotate::@4/(byte*) current_piece#32 ) (byte) play_move_rotate::orientation#5 ← phi( play_move_rotate::@4/(byte) play_move_rotate::orientation#3 ) @@ -2253,7 +2223,7 @@ play_move_rotate::@14: scope:[play_move_rotate] from play_move_rotate::@4 if((bool~) play_move_rotate::$8) goto play_move_rotate::@5 to:play_move_rotate::@11 play_move_rotate::@5: scope:[play_move_rotate] from play_move_rotate::@14 - (byte*) current_piece_gfx#34 ← phi( play_move_rotate::@14/(byte*) current_piece_gfx#52 ) + (byte*) current_piece_gfx#34 ← phi( play_move_rotate::@14/(byte*) current_piece_gfx#51 ) (byte) current_orientation#41 ← phi( play_move_rotate::@14/(byte) current_orientation#54 ) (byte) play_move_rotate::return#3 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:play_move_rotate::@return @@ -2279,9 +2249,9 @@ play_move_rotate::@11: scope:[play_move_rotate] from play_move_rotate::@14 (byte) game_over#43 ← phi( @25/(byte) game_over#49 ) (byte) current_ypos#62 ← phi( @25/(byte) current_ypos#67 ) (byte) current_xpos#76 ← phi( @25/(byte) current_xpos#86 ) - (byte*) current_piece_gfx#62 ← phi( @25/(byte*) current_piece_gfx#72 ) + (byte*) current_piece_gfx#61 ← phi( @25/(byte*) current_piece_gfx#70 ) (byte) current_orientation#61 ← phi( @25/(byte) current_orientation#0 ) - (byte) current_piece_char#48 ← phi( @25/(byte) current_piece_char#56 ) + (byte) current_piece_char#49 ← phi( @25/(byte) current_piece_char#56 ) (byte*) current_piece#53 ← phi( @25/(byte*) current_piece#0 ) (byte) current_movedown_slow#62 ← phi( @25/(byte) current_movedown_slow#0 ) (byte) render_screen_render#36 ← phi( @25/(byte) render_screen_render#40 ) @@ -2441,7 +2411,7 @@ play_collision::@18: scope:[play_collision] from play_collision::@17 to:play_collision::@return play_lock_current: scope:[play_lock_current] from play_move_down::@13 (byte) current_piece_char#57 ← phi( play_move_down::@13/(byte) current_piece_char#71 ) - (byte*) current_piece_gfx#53 ← phi( play_move_down::@13/(byte*) current_piece_gfx#73 ) + (byte*) current_piece_gfx#52 ← phi( play_move_down::@13/(byte*) current_piece_gfx#71 ) (byte) current_xpos#49 ← phi( play_move_down::@13/(byte) current_xpos#68 ) (byte) current_ypos#21 ← phi( play_move_down::@13/(byte) current_ypos#41 ) (byte) play_lock_current::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -2451,9 +2421,9 @@ 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_char#40 ← phi( play_lock_current/(byte) current_piece_char#57 play_lock_current::@5/(byte) current_piece_char#58 ) + (byte) current_piece_char#41 ← phi( play_lock_current/(byte) current_piece_char#57 play_lock_current::@5/(byte) current_piece_char#58 ) (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#36 ← phi( play_lock_current/(byte*) current_piece_gfx#53 play_lock_current::@5/(byte*) current_piece_gfx#54 ) + (byte*) current_piece_gfx#36 ← phi( play_lock_current/(byte*) current_piece_gfx#52 play_lock_current::@5/(byte*) current_piece_gfx#53 ) (byte) current_xpos#27 ← phi( play_lock_current/(byte) current_xpos#49 play_lock_current::@5/(byte) current_xpos#50 ) (byte) play_lock_current::ypos2#2 ← phi( play_lock_current/(byte) play_lock_current::ypos2#0 play_lock_current::@5/(byte) play_lock_current::ypos2#1 ) (byte*) play_lock_current::playfield_line#0 ← *((byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) @@ -2465,7 +2435,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_char#28 ← phi( play_lock_current::@1/(byte) current_piece_char#40 play_lock_current::@3/(byte) current_piece_char#41 ) + (byte) current_piece_char#28 ← phi( play_lock_current::@1/(byte) current_piece_char#41 play_lock_current::@3/(byte) current_piece_char#42 ) (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 ) @@ -2478,11 +2448,11 @@ 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#69 ← phi( play_lock_current::@2/(byte) current_xpos#87 play_lock_current::@4/(byte) current_xpos#88 ) (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_char#41 ← phi( play_lock_current::@2/(byte) current_piece_char#28 play_lock_current::@4/(byte) current_piece_char#15 ) + (byte) current_piece_char#42 ← phi( play_lock_current::@2/(byte) current_piece_char#28 play_lock_current::@4/(byte) current_piece_char#15 ) (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 ) - (byte*) current_piece_gfx#37 ← phi( play_lock_current::@2/(byte*) current_piece_gfx#20 play_lock_current::@4/(byte*) current_piece_gfx#55 ) + (byte*) current_piece_gfx#37 ← phi( play_lock_current::@2/(byte*) current_piece_gfx#20 play_lock_current::@4/(byte*) current_piece_gfx#54 ) (byte) play_lock_current::c#2 ← phi( play_lock_current::@2/(byte) play_lock_current::c#3 play_lock_current::@4/(byte) play_lock_current::c#4 ) (byte) play_lock_current::col#2 ← phi( play_lock_current::@2/(byte) play_lock_current::col#4 play_lock_current::@4/(byte) play_lock_current::col#3 ) (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 @@ -2495,7 +2465,7 @@ play_lock_current::@4: scope:[play_lock_current] from play_lock_current::@2 (byte) play_lock_current::l#5 ← phi( play_lock_current::@2/(byte) play_lock_current::l#4 ) (byte) play_lock_current::ypos2#6 ← phi( play_lock_current::@2/(byte) play_lock_current::ypos2#5 ) (byte) play_lock_current::i#6 ← phi( play_lock_current::@2/(byte) play_lock_current::i#1 ) - (byte*) current_piece_gfx#55 ← phi( play_lock_current::@2/(byte*) current_piece_gfx#20 ) + (byte*) current_piece_gfx#54 ← phi( play_lock_current::@2/(byte*) current_piece_gfx#20 ) (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 ) @@ -2503,9 +2473,9 @@ play_lock_current::@4: scope:[play_lock_current] from play_lock_current::@2 *((byte*) play_lock_current::playfield_line#1 + (byte) play_lock_current::col#3) ← (byte) current_piece_char#15 to:play_lock_current::@3 play_lock_current::@5: scope:[play_lock_current] from play_lock_current::@3 - (byte) current_piece_char#58 ← phi( play_lock_current::@3/(byte) current_piece_char#41 ) + (byte) current_piece_char#58 ← phi( play_lock_current::@3/(byte) current_piece_char#42 ) (byte) play_lock_current::i#5 ← phi( play_lock_current::@3/(byte) play_lock_current::i#4 ) - (byte*) current_piece_gfx#54 ← phi( play_lock_current::@3/(byte*) current_piece_gfx#37 ) + (byte*) current_piece_gfx#53 ← phi( play_lock_current::@3/(byte*) current_piece_gfx#37 ) (byte) current_xpos#50 ← phi( play_lock_current::@3/(byte) current_xpos#69 ) (byte) play_lock_current::l#2 ← phi( play_lock_current::@3/(byte) play_lock_current::l#3 ) (byte) play_lock_current::ypos2#3 ← phi( play_lock_current::@3/(byte) play_lock_current::ypos2#4 ) @@ -2560,9 +2530,9 @@ play_spawn_current::@10: scope:[play_spawn_current] from play_spawn_current::@3 (byte) game_over#37 ← phi( play_spawn_current::@3/(byte) game_over#50 ) (byte) current_ypos#55 ← phi( play_spawn_current::@3/(byte) current_ypos#5 ) (byte) current_xpos#70 ← phi( play_spawn_current::@3/(byte) current_xpos#8 ) - (byte*) current_piece_gfx#56 ← phi( play_spawn_current::@3/(byte*) current_piece_gfx#7 ) + (byte*) current_piece_gfx#55 ← phi( play_spawn_current::@3/(byte*) current_piece_gfx#7 ) (byte) current_orientation#55 ← phi( play_spawn_current::@3/(byte) current_orientation#8 ) - (byte) current_piece_char#42 ← phi( play_spawn_current::@3/(byte) current_piece_char#4 ) + (byte) current_piece_char#43 ← phi( play_spawn_current::@3/(byte) current_piece_char#4 ) (byte*) current_piece#47 ← phi( play_spawn_current::@3/(byte*) current_piece#5 ) (byte) play_collision::return#16 ← phi( play_spawn_current::@3/(byte) play_collision::return#10 ) (byte~) play_spawn_current::$5 ← (byte) play_collision::return#16 @@ -2574,17 +2544,17 @@ play_spawn_current::@4: scope:[play_spawn_current] from play_spawn_current::@10 (byte) game_over#27 ← phi( play_spawn_current::@10/(byte) game_over#37 ) (byte) current_ypos#42 ← phi( play_spawn_current::@10/(byte) current_ypos#55 ) (byte) current_xpos#51 ← phi( play_spawn_current::@10/(byte) current_xpos#70 ) - (byte*) current_piece_gfx#38 ← phi( play_spawn_current::@10/(byte*) current_piece_gfx#56 ) + (byte*) current_piece_gfx#38 ← phi( play_spawn_current::@10/(byte*) current_piece_gfx#55 ) (byte) current_orientation#43 ← phi( play_spawn_current::@10/(byte) current_orientation#55 ) - (byte) current_piece_char#29 ← phi( play_spawn_current::@10/(byte) current_piece_char#42 ) + (byte) current_piece_char#29 ← phi( play_spawn_current::@10/(byte) current_piece_char#43 ) (byte*) current_piece#33 ← phi( play_spawn_current::@10/(byte*) current_piece#47 ) to:play_spawn_current::@return play_spawn_current::@8: scope:[play_spawn_current] from play_spawn_current::@10 (byte) current_ypos#43 ← phi( play_spawn_current::@10/(byte) current_ypos#55 ) (byte) current_xpos#52 ← phi( play_spawn_current::@10/(byte) current_xpos#70 ) - (byte*) current_piece_gfx#39 ← phi( play_spawn_current::@10/(byte*) current_piece_gfx#56 ) + (byte*) current_piece_gfx#39 ← phi( play_spawn_current::@10/(byte*) current_piece_gfx#55 ) (byte) current_orientation#44 ← phi( play_spawn_current::@10/(byte) current_orientation#55 ) - (byte) current_piece_char#30 ← phi( play_spawn_current::@10/(byte) current_piece_char#42 ) + (byte) current_piece_char#30 ← phi( play_spawn_current::@10/(byte) current_piece_char#43 ) (byte*) current_piece#34 ← phi( play_spawn_current::@10/(byte*) current_piece#47 ) (byte) game_over#5 ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_spawn_current::@return @@ -2867,10 +2837,10 @@ main: scope:[main] from @37 (byte) level#93 ← phi( @37/(byte) level#38 ) (byte) game_over#81 ← phi( @37/(byte) game_over#32 ) (byte) current_ypos#86 ← phi( @37/(byte) current_ypos#47 ) - (byte) current_xpos#112 ← phi( @37/(byte) current_xpos#56 ) - (byte*) current_piece_gfx#102 ← phi( @37/(byte*) current_piece_gfx#43 ) + (byte) current_xpos#110 ← phi( @37/(byte) current_xpos#56 ) + (byte*) current_piece_gfx#100 ← phi( @37/(byte*) current_piece_gfx#43 ) (byte) current_orientation#86 ← phi( @37/(byte) current_orientation#48 ) - (byte) current_piece_char#89 ← phi( @37/(byte) current_piece_char#34 ) + (byte) current_piece_char#87 ← phi( @37/(byte) current_piece_char#34 ) (byte*) current_piece#82 ← phi( @37/(byte*) current_piece#38 ) (byte) current_movedown_slow#83 ← phi( @37/(byte) current_movedown_slow#46 ) (byte) render_screen_render#32 ← phi( @37/(byte) render_screen_render#26 ) @@ -2888,10 +2858,10 @@ main::@25: scope:[main] from main (byte) level#89 ← phi( main/(byte) level#93 ) (byte) game_over#72 ← phi( main/(byte) game_over#81 ) (byte) current_ypos#82 ← phi( main/(byte) current_ypos#86 ) - (byte) current_xpos#108 ← phi( main/(byte) current_xpos#112 ) - (byte*) current_piece_gfx#95 ← phi( main/(byte*) current_piece_gfx#102 ) + (byte) current_xpos#106 ← phi( main/(byte) current_xpos#110 ) + (byte*) current_piece_gfx#93 ← phi( main/(byte*) current_piece_gfx#100 ) (byte) current_orientation#82 ← phi( main/(byte) current_orientation#86 ) - (byte) current_piece_char#81 ← phi( main/(byte) current_piece_char#89 ) + (byte) current_piece_char#81 ← phi( main/(byte) current_piece_char#87 ) (byte*) current_piece#76 ← phi( main/(byte*) current_piece#82 ) (byte) current_movedown_slow#78 ← phi( main/(byte) current_movedown_slow#83 ) (byte) render_screen_render#24 ← phi( main/(byte) render_screen_render#32 ) @@ -2910,8 +2880,8 @@ main::@26: scope:[main] from main::@25 (byte) level#81 ← phi( main::@25/(byte) level#89 ) (byte) game_over#63 ← phi( main::@25/(byte) game_over#72 ) (byte) current_ypos#75 ← phi( main::@25/(byte) current_ypos#82 ) - (byte) current_xpos#99 ← phi( main::@25/(byte) current_xpos#108 ) - (byte*) current_piece_gfx#88 ← phi( main::@25/(byte*) current_piece_gfx#95 ) + (byte) current_xpos#98 ← phi( main::@25/(byte) current_xpos#106 ) + (byte*) current_piece_gfx#86 ← phi( main::@25/(byte*) current_piece_gfx#93 ) (byte) current_orientation#76 ← phi( main::@25/(byte) current_orientation#82 ) (byte) current_piece_char#72 ← phi( main::@25/(byte) current_piece_char#81 ) (byte*) current_piece#70 ← phi( main::@25/(byte*) current_piece#76 ) @@ -2931,12 +2901,12 @@ main::@27: scope:[main] from main::@26 (byte) keyboard_events_size#72 ← phi( main::@26/(byte) keyboard_events_size#76 ) (byte) render_screen_showing#43 ← phi( main::@26/(byte) render_screen_showing#45 ) (byte) render_screen_show#57 ← phi( main::@26/(byte) render_screen_show#5 ) - (byte) render_screen_render#52 ← phi( main::@26/(byte) render_screen_render#5 ) + (byte) render_screen_render#50 ← phi( main::@26/(byte) render_screen_render#5 ) (byte) level#72 ← phi( main::@26/(byte) level#81 ) (byte) game_over#51 ← phi( main::@26/(byte) game_over#63 ) (byte) current_ypos#68 ← phi( main::@26/(byte) current_ypos#75 ) - (byte) current_xpos#89 ← phi( main::@26/(byte) current_xpos#99 ) - (byte*) current_piece_gfx#74 ← phi( main::@26/(byte*) current_piece_gfx#88 ) + (byte) current_xpos#89 ← phi( main::@26/(byte) current_xpos#98 ) + (byte*) current_piece_gfx#72 ← phi( main::@26/(byte*) current_piece_gfx#86 ) (byte) current_orientation#68 ← phi( main::@26/(byte) current_orientation#76 ) (byte) current_piece_char#59 ← phi( main::@26/(byte) current_piece_char#72 ) (byte*) current_piece#61 ← phi( main::@26/(byte*) current_piece#70 ) @@ -2952,14 +2922,14 @@ main::@28: scope:[main] from main::@27 (byte) keyboard_events_size#68 ← phi( main::@27/(byte) keyboard_events_size#72 ) (byte) render_screen_showing#39 ← phi( main::@27/(byte) render_screen_showing#43 ) (byte) render_screen_show#54 ← phi( main::@27/(byte) render_screen_show#57 ) - (byte) render_screen_render#47 ← phi( main::@27/(byte) render_screen_render#52 ) + (byte) render_screen_render#46 ← phi( main::@27/(byte) render_screen_render#50 ) (byte) level#53 ← phi( main::@27/(byte) level#72 ) (byte) game_over#38 ← phi( main::@27/(byte) game_over#51 ) (byte) current_ypos#56 ← phi( main::@27/(byte) current_ypos#68 ) (byte) current_xpos#71 ← phi( main::@27/(byte) current_xpos#89 ) - (byte*) current_piece_gfx#57 ← phi( main::@27/(byte*) current_piece_gfx#74 ) + (byte*) current_piece_gfx#56 ← phi( main::@27/(byte*) current_piece_gfx#72 ) (byte) current_orientation#56 ← phi( main::@27/(byte) current_orientation#68 ) - (byte) current_piece_char#43 ← phi( main::@27/(byte) current_piece_char#59 ) + (byte) current_piece_char#44 ← phi( main::@27/(byte) current_piece_char#59 ) (byte*) current_piece#48 ← phi( main::@27/(byte*) current_piece#61 ) (byte) current_movedown_slow#43 ← phi( main::@27/(byte) current_movedown_slow#57 ) call play_init @@ -2974,13 +2944,13 @@ main::@29: scope:[main] from main::@28 (byte) keyboard_events_size#59 ← phi( main::@28/(byte) keyboard_events_size#68 ) (byte) render_screen_showing#33 ← phi( main::@28/(byte) render_screen_showing#39 ) (byte) render_screen_show#49 ← phi( main::@28/(byte) render_screen_show#54 ) - (byte) render_screen_render#41 ← phi( main::@28/(byte) render_screen_render#47 ) + (byte) render_screen_render#41 ← phi( main::@28/(byte) render_screen_render#46 ) (byte) game_over#28 ← phi( main::@28/(byte) game_over#38 ) (byte) current_ypos#44 ← phi( main::@28/(byte) current_ypos#56 ) (byte) current_xpos#53 ← phi( main::@28/(byte) current_xpos#71 ) - (byte*) current_piece_gfx#40 ← phi( main::@28/(byte*) current_piece_gfx#57 ) + (byte*) current_piece_gfx#40 ← phi( main::@28/(byte*) current_piece_gfx#56 ) (byte) current_orientation#45 ← phi( main::@28/(byte) current_orientation#56 ) - (byte) current_piece_char#31 ← phi( main::@28/(byte) current_piece_char#43 ) + (byte) current_piece_char#31 ← phi( main::@28/(byte) current_piece_char#44 ) (byte*) current_piece#35 ← phi( main::@28/(byte*) current_piece#48 ) (byte) current_movedown_slow#25 ← phi( main::@28/(byte) current_movedown_slow#2 ) (byte) current_movedown_slow#12 ← (byte) current_movedown_slow#25 @@ -3024,7 +2994,7 @@ main::@31: scope:[main] from main::@30 (byte) keyboard_events_size#41 ← phi( main::@30/(byte) keyboard_events_size#49 ) (byte) render_screen_showing#22 ← phi( main::@30/(byte) render_screen_showing#28 ) (byte) game_over#52 ← phi( main::@30/(byte) game_over#7 ) - (byte*) current_piece_gfx#75 ← phi( main::@30/(byte*) current_piece_gfx#9 ) + (byte*) current_piece_gfx#73 ← phi( main::@30/(byte*) current_piece_gfx#9 ) (byte) current_orientation#69 ← phi( main::@30/(byte) current_orientation#10 ) (byte) current_piece_char#60 ← phi( main::@30/(byte) current_piece_char#6 ) (byte*) current_piece#62 ← phi( main::@30/(byte*) current_piece#7 ) @@ -3047,9 +3017,9 @@ main::@32: scope:[main] from main::@31 (byte) game_over#40 ← phi( main::@31/(byte) game_over#52 ) (byte) current_ypos#58 ← phi( main::@31/(byte) current_ypos#27 ) (byte) current_xpos#73 ← phi( main::@31/(byte) current_xpos#77 ) - (byte*) current_piece_gfx#59 ← phi( main::@31/(byte*) current_piece_gfx#75 ) + (byte*) current_piece_gfx#58 ← phi( main::@31/(byte*) current_piece_gfx#73 ) (byte) current_orientation#58 ← phi( main::@31/(byte) current_orientation#69 ) - (byte) current_piece_char#45 ← phi( main::@31/(byte) current_piece_char#60 ) + (byte) current_piece_char#46 ← phi( main::@31/(byte) current_piece_char#60 ) (byte*) current_piece#50 ← phi( main::@31/(byte*) current_piece#62 ) (byte) current_movedown_slow#59 ← phi( main::@31/(byte) current_movedown_slow#71 ) (byte) render_screen_render#34 ← phi( main::@31/(byte) render_screen_render#37 ) @@ -3067,9 +3037,9 @@ main::@1: scope:[main] from main::@12 main::@32 main::@40 (byte) game_over#31 ← phi( main::@12/(byte) game_over#39 main::@32/(byte) game_over#40 main::@40/(byte) game_over#41 ) (byte) current_ypos#46 ← phi( main::@12/(byte) current_ypos#57 main::@32/(byte) current_ypos#58 main::@40/(byte) current_ypos#59 ) (byte) current_xpos#55 ← phi( main::@12/(byte) current_xpos#72 main::@32/(byte) current_xpos#73 main::@40/(byte) current_xpos#74 ) - (byte*) current_piece_gfx#42 ← phi( main::@12/(byte*) current_piece_gfx#58 main::@32/(byte*) current_piece_gfx#59 main::@40/(byte*) current_piece_gfx#60 ) + (byte*) current_piece_gfx#42 ← phi( main::@12/(byte*) current_piece_gfx#57 main::@32/(byte*) current_piece_gfx#58 main::@40/(byte*) current_piece_gfx#59 ) (byte) current_orientation#47 ← phi( main::@12/(byte) current_orientation#57 main::@32/(byte) current_orientation#58 main::@40/(byte) current_orientation#59 ) - (byte) current_piece_char#33 ← phi( main::@12/(byte) current_piece_char#44 main::@32/(byte) current_piece_char#45 main::@40/(byte) current_piece_char#46 ) + (byte) current_piece_char#33 ← phi( main::@12/(byte) current_piece_char#45 main::@32/(byte) current_piece_char#46 main::@40/(byte) current_piece_char#47 ) (byte*) current_piece#37 ← phi( main::@12/(byte*) current_piece#49 main::@32/(byte*) current_piece#50 main::@40/(byte*) current_piece#51 ) (byte) current_movedown_slow#45 ← phi( main::@12/(byte) current_movedown_slow#58 main::@32/(byte) current_movedown_slow#59 main::@40/(byte) current_movedown_slow#60 ) (byte) render_screen_render#25 ← phi( main::@12/(byte) render_screen_render#33 main::@32/(byte) render_screen_render#34 main::@40/(byte) render_screen_render#6 ) @@ -3077,11 +3047,11 @@ main::@1: scope:[main] from main::@12 main::@32 main::@40 if(true) goto main::@2 to:main::@return main::@2: scope:[main] from main::@1 - (byte) render_screen_render#63 ← phi( main::@1/(byte) render_screen_render#25 ) - (byte) current_xpos#115 ← phi( main::@1/(byte) current_xpos#55 ) - (byte*) current_piece_gfx#105 ← phi( main::@1/(byte*) current_piece_gfx#42 ) + (byte) render_screen_render#61 ← phi( main::@1/(byte) render_screen_render#25 ) + (byte) current_xpos#113 ← phi( main::@1/(byte) current_xpos#55 ) + (byte*) current_piece_gfx#103 ← phi( main::@1/(byte*) current_piece_gfx#42 ) (byte) current_orientation#89 ← phi( main::@1/(byte) current_orientation#47 ) - (byte) current_piece_char#93 ← phi( main::@1/(byte) current_piece_char#33 ) + (byte) current_piece_char#91 ← phi( main::@1/(byte) current_piece_char#33 ) (byte*) current_piece#85 ← phi( main::@1/(byte*) current_piece#37 ) (byte) level_bcd#98 ← phi( main::@1/(byte) level_bcd#40 ) (byte) current_movedown_slow#89 ← phi( main::@1/(byte) current_movedown_slow#45 ) @@ -3097,11 +3067,11 @@ main::@2: scope:[main] from main::@1 (byte) render_screen_show#37 ← phi( main::@1/(byte) render_screen_show#23 ) to:main::@4 main::@4: scope:[main] from main::@2 main::@5 - (byte) render_screen_render#62 ← phi( main::@2/(byte) render_screen_render#63 main::@5/(byte) render_screen_render#64 ) - (byte) current_xpos#113 ← phi( main::@2/(byte) current_xpos#115 main::@5/(byte) current_xpos#116 ) - (byte*) current_piece_gfx#103 ← phi( main::@2/(byte*) current_piece_gfx#105 main::@5/(byte*) current_piece_gfx#106 ) + (byte) render_screen_render#60 ← phi( main::@2/(byte) render_screen_render#61 main::@5/(byte) render_screen_render#62 ) + (byte) current_xpos#111 ← phi( main::@2/(byte) current_xpos#113 main::@5/(byte) current_xpos#114 ) + (byte*) current_piece_gfx#101 ← phi( main::@2/(byte*) current_piece_gfx#103 main::@5/(byte*) current_piece_gfx#104 ) (byte) current_orientation#87 ← phi( main::@2/(byte) current_orientation#89 main::@5/(byte) current_orientation#90 ) - (byte) current_piece_char#90 ← phi( main::@2/(byte) current_piece_char#93 main::@5/(byte) current_piece_char#94 ) + (byte) current_piece_char#88 ← phi( main::@2/(byte) current_piece_char#91 main::@5/(byte) current_piece_char#92 ) (byte*) current_piece#83 ← phi( main::@2/(byte*) current_piece#85 main::@5/(byte*) current_piece#86 ) (byte) level_bcd#93 ← phi( main::@2/(byte) level_bcd#98 main::@5/(byte) level_bcd#99 ) (byte) current_movedown_slow#87 ← phi( main::@2/(byte) current_movedown_slow#89 main::@5/(byte) current_movedown_slow#90 ) @@ -3119,11 +3089,11 @@ main::@4: scope:[main] from main::@2 main::@5 if((bool~) main::$8) goto main::@5 to:main::@6 main::@5: scope:[main] from main::@4 - (byte) render_screen_render#64 ← phi( main::@4/(byte) render_screen_render#62 ) - (byte) current_xpos#116 ← phi( main::@4/(byte) current_xpos#113 ) - (byte*) current_piece_gfx#106 ← phi( main::@4/(byte*) current_piece_gfx#103 ) + (byte) render_screen_render#62 ← phi( main::@4/(byte) render_screen_render#60 ) + (byte) current_xpos#114 ← phi( main::@4/(byte) current_xpos#111 ) + (byte*) current_piece_gfx#104 ← phi( main::@4/(byte*) current_piece_gfx#101 ) (byte) current_orientation#90 ← phi( main::@4/(byte) current_orientation#87 ) - (byte) current_piece_char#94 ← phi( main::@4/(byte) current_piece_char#90 ) + (byte) current_piece_char#92 ← phi( main::@4/(byte) current_piece_char#88 ) (byte*) current_piece#86 ← phi( main::@4/(byte*) current_piece#83 ) (byte) level_bcd#99 ← phi( main::@4/(byte) level_bcd#93 ) (byte) current_movedown_slow#90 ← phi( main::@4/(byte) current_movedown_slow#87 ) @@ -3139,11 +3109,11 @@ main::@5: scope:[main] from main::@4 (byte) render_screen_show#38 ← phi( main::@4/(byte) render_screen_show#30 ) to:main::@4 main::@6: scope:[main] from main::@4 - (byte) render_screen_render#61 ← phi( main::@4/(byte) render_screen_render#62 ) - (byte) current_xpos#109 ← phi( main::@4/(byte) current_xpos#113 ) - (byte*) current_piece_gfx#96 ← phi( main::@4/(byte*) current_piece_gfx#103 ) + (byte) render_screen_render#59 ← phi( main::@4/(byte) render_screen_render#60 ) + (byte) current_xpos#107 ← phi( main::@4/(byte) current_xpos#111 ) + (byte*) current_piece_gfx#94 ← phi( main::@4/(byte*) current_piece_gfx#101 ) (byte) current_orientation#83 ← phi( main::@4/(byte) current_orientation#87 ) - (byte) current_piece_char#82 ← phi( main::@4/(byte) current_piece_char#90 ) + (byte) current_piece_char#82 ← phi( main::@4/(byte) current_piece_char#88 ) (byte*) current_piece#77 ← phi( main::@4/(byte*) current_piece#83 ) (byte) level_bcd#84 ← phi( main::@4/(byte) level_bcd#93 ) (byte) current_movedown_slow#84 ← phi( main::@4/(byte) current_movedown_slow#87 ) @@ -3160,10 +3130,10 @@ main::@6: scope:[main] from main::@4 call render_show to:main::@33 main::@33: scope:[main] from main::@6 - (byte) render_screen_render#59 ← phi( main::@6/(byte) render_screen_render#61 ) + (byte) render_screen_render#57 ← phi( main::@6/(byte) render_screen_render#59 ) (byte) render_screen_show#58 ← phi( main::@6/(byte) render_screen_show#18 ) - (byte) current_xpos#100 ← phi( main::@6/(byte) current_xpos#109 ) - (byte*) current_piece_gfx#89 ← phi( main::@6/(byte*) current_piece_gfx#96 ) + (byte) current_xpos#99 ← phi( main::@6/(byte) current_xpos#107 ) + (byte*) current_piece_gfx#87 ← phi( main::@6/(byte*) current_piece_gfx#94 ) (byte) current_orientation#77 ← phi( main::@6/(byte) current_orientation#83 ) (byte) current_piece_char#73 ← phi( main::@6/(byte) current_piece_char#82 ) (byte*) current_piece#71 ← phi( main::@6/(byte*) current_piece#77 ) @@ -3183,10 +3153,10 @@ main::@33: scope:[main] from main::@6 to:main::@34 main::@34: scope:[main] from main::@33 (byte) render_screen_showing#40 ← phi( main::@33/(byte) render_screen_showing#3 ) - (byte) render_screen_render#57 ← phi( main::@33/(byte) render_screen_render#59 ) + (byte) render_screen_render#55 ← phi( main::@33/(byte) render_screen_render#57 ) (byte) render_screen_show#55 ← phi( main::@33/(byte) render_screen_show#58 ) - (byte) current_xpos#90 ← phi( main::@33/(byte) current_xpos#100 ) - (byte*) current_piece_gfx#76 ← phi( main::@33/(byte*) current_piece_gfx#89 ) + (byte) current_xpos#90 ← phi( main::@33/(byte) current_xpos#99 ) + (byte*) current_piece_gfx#74 ← phi( main::@33/(byte*) current_piece_gfx#87 ) (byte) current_orientation#70 ← phi( main::@33/(byte) current_orientation#77 ) (byte) current_piece_char#61 ← phi( main::@33/(byte) current_piece_char#73 ) (byte*) current_piece#63 ← phi( main::@33/(byte*) current_piece#71 ) @@ -3208,12 +3178,12 @@ main::@34: scope:[main] from main::@33 main::@35: scope:[main] from main::@34 (byte) keyboard_modifiers#49 ← phi( main::@34/(byte) keyboard_modifiers#7 ) (byte) render_screen_showing#35 ← phi( main::@34/(byte) render_screen_showing#40 ) - (byte) render_screen_render#54 ← phi( main::@34/(byte) render_screen_render#57 ) + (byte) render_screen_render#52 ← phi( main::@34/(byte) render_screen_render#55 ) (byte) render_screen_show#51 ← phi( main::@34/(byte) render_screen_show#55 ) (byte) current_xpos#75 ← phi( main::@34/(byte) current_xpos#90 ) - (byte*) current_piece_gfx#61 ← phi( main::@34/(byte*) current_piece_gfx#76 ) + (byte*) current_piece_gfx#60 ← phi( main::@34/(byte*) current_piece_gfx#74 ) (byte) current_orientation#60 ← phi( main::@34/(byte) current_orientation#70 ) - (byte) current_piece_char#47 ← phi( main::@34/(byte) current_piece_char#61 ) + (byte) current_piece_char#48 ← phi( main::@34/(byte) current_piece_char#61 ) (byte*) current_piece#52 ← phi( main::@34/(byte*) current_piece#63 ) (byte) level_bcd#55 ← phi( main::@34/(byte) level_bcd#66 ) (byte) current_movedown_slow#61 ← phi( main::@34/(byte) current_movedown_slow#72 ) @@ -3236,13 +3206,13 @@ main::@7: scope:[main] from main::@35 (byte) keyboard_modifiers#48 ← phi( main::@35/(byte) keyboard_modifiers#49 ) (byte) keyboard_events_size#60 ← phi( main::@35/(byte) keyboard_events_size#7 ) (byte) render_screen_showing#34 ← phi( main::@35/(byte) render_screen_showing#35 ) - (byte) render_screen_render#53 ← phi( main::@35/(byte) render_screen_render#54 ) + (byte) render_screen_render#51 ← phi( main::@35/(byte) render_screen_render#52 ) (byte) render_screen_show#50 ← phi( main::@35/(byte) render_screen_show#51 ) (byte) game_over#30 ← phi( main::@35/(byte) game_over#17 ) (byte) current_xpos#54 ← phi( main::@35/(byte) current_xpos#75 ) - (byte*) current_piece_gfx#41 ← phi( main::@35/(byte*) current_piece_gfx#61 ) + (byte*) current_piece_gfx#41 ← phi( main::@35/(byte*) current_piece_gfx#60 ) (byte) current_orientation#46 ← phi( main::@35/(byte) current_orientation#60 ) - (byte) current_piece_char#32 ← phi( main::@35/(byte) current_piece_char#47 ) + (byte) current_piece_char#32 ← phi( main::@35/(byte) current_piece_char#48 ) (byte*) current_piece#36 ← phi( main::@35/(byte*) current_piece#52 ) (byte) level_bcd#39 ← phi( main::@35/(byte) level_bcd#55 ) (byte) current_movedown_slow#44 ← phi( main::@35/(byte) current_movedown_slow#61 ) @@ -3260,7 +3230,7 @@ main::@36: scope:[main] from main::@7 (byte) keyboard_modifiers#43 ← phi( main::@7/(byte) keyboard_modifiers#48 ) (byte) keyboard_events_size#52 ← phi( main::@7/(byte) keyboard_events_size#60 ) (byte) render_screen_showing#29 ← phi( main::@7/(byte) render_screen_showing#34 ) - (byte) render_screen_render#48 ← phi( main::@7/(byte) render_screen_render#53 ) + (byte) render_screen_render#47 ← phi( main::@7/(byte) render_screen_render#51 ) (byte) render_screen_show#45 ← phi( main::@7/(byte) render_screen_show#50 ) (byte) game_over#18 ← phi( main::@7/(byte) game_over#2 ) (byte) current_xpos#30 ← phi( main::@7/(byte) current_xpos#2 ) @@ -3303,13 +3273,13 @@ main::@8: scope:[main] from main::@35 main::@9 (byte) render_screen_showing#30 ← phi( main::@35/(byte) render_screen_showing#35 main::@9/(byte) render_screen_showing#36 ) (byte) game_over#65 ← phi( main::@35/(byte) game_over#17 main::@9/(byte) game_over#75 ) (byte) current_ypos#77 ← phi( main::@35/(byte) current_ypos#60 main::@9/(byte) current_ypos#84 ) - (byte) current_xpos#101 ← phi( main::@35/(byte) current_xpos#75 main::@9/(byte) current_xpos#110 ) - (byte*) current_piece_gfx#90 ← phi( main::@35/(byte*) current_piece_gfx#61 main::@9/(byte*) current_piece_gfx#97 ) + (byte) current_xpos#100 ← phi( main::@35/(byte) current_xpos#75 main::@9/(byte) current_xpos#108 ) + (byte*) current_piece_gfx#88 ← phi( main::@35/(byte*) current_piece_gfx#60 main::@9/(byte*) current_piece_gfx#95 ) (byte) current_orientation#78 ← phi( main::@35/(byte) current_orientation#60 main::@9/(byte) current_orientation#84 ) - (byte) current_piece_char#74 ← phi( main::@35/(byte) current_piece_char#47 main::@9/(byte) current_piece_char#83 ) + (byte) current_piece_char#74 ← phi( main::@35/(byte) current_piece_char#48 main::@9/(byte) current_piece_char#83 ) (byte*) current_piece#72 ← phi( main::@35/(byte*) current_piece#52 main::@9/(byte*) current_piece#78 ) (byte) current_movedown_slow#81 ← phi( main::@35/(byte) current_movedown_slow#61 main::@9/(byte) current_movedown_slow#85 ) - (byte) render_screen_render#49 ← phi( main::@35/(byte) render_screen_render#54 main::@9/(byte) render_screen_render#55 ) + (byte) render_screen_render#48 ← phi( main::@35/(byte) render_screen_render#52 main::@9/(byte) render_screen_render#53 ) (byte) render_screen_show#46 ← phi( main::@35/(byte) render_screen_show#51 main::@9/(byte) render_screen_show#52 ) (byte) main::render#3 ← phi( main::@35/(byte) main::render#0 main::@9/(byte) main::render#4 ) if(true) goto main::@9 @@ -3325,13 +3295,13 @@ main::@9: scope:[main] from main::@8 (byte) render_screen_showing#36 ← phi( main::@8/(byte) render_screen_showing#30 ) (byte) game_over#75 ← phi( main::@8/(byte) game_over#65 ) (byte) current_ypos#84 ← phi( main::@8/(byte) current_ypos#77 ) - (byte) current_xpos#110 ← phi( main::@8/(byte) current_xpos#101 ) - (byte*) current_piece_gfx#97 ← phi( main::@8/(byte*) current_piece_gfx#90 ) + (byte) current_xpos#108 ← phi( main::@8/(byte) current_xpos#100 ) + (byte*) current_piece_gfx#95 ← phi( main::@8/(byte*) current_piece_gfx#88 ) (byte) current_orientation#84 ← phi( main::@8/(byte) current_orientation#78 ) (byte) current_piece_char#83 ← phi( main::@8/(byte) current_piece_char#74 ) (byte*) current_piece#78 ← phi( main::@8/(byte*) current_piece#72 ) (byte) current_movedown_slow#85 ← phi( main::@8/(byte) current_movedown_slow#81 ) - (byte) render_screen_render#55 ← phi( main::@8/(byte) render_screen_render#49 ) + (byte) render_screen_render#53 ← phi( main::@8/(byte) render_screen_render#48 ) (byte) render_screen_show#52 ← phi( main::@8/(byte) render_screen_show#46 ) (byte) main::render#4 ← phi( main::@8/(byte) main::render#3 ) *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) @@ -3347,13 +3317,13 @@ main::@11: scope:[main] from main::@36 main::@8 (byte) render_screen_showing#25 ← phi( main::@36/(byte) render_screen_showing#29 main::@8/(byte) render_screen_showing#30 ) (byte) game_over#54 ← phi( main::@36/(byte) game_over#8 main::@8/(byte) game_over#65 ) (byte) current_ypos#70 ← phi( main::@36/(byte) current_ypos#8 main::@8/(byte) current_ypos#77 ) - (byte) current_xpos#91 ← phi( main::@36/(byte) current_xpos#11 main::@8/(byte) current_xpos#101 ) - (byte*) current_piece_gfx#77 ← phi( main::@36/(byte*) current_piece_gfx#10 main::@8/(byte*) current_piece_gfx#90 ) + (byte) current_xpos#91 ← phi( main::@36/(byte) current_xpos#11 main::@8/(byte) current_xpos#100 ) + (byte*) current_piece_gfx#75 ← phi( main::@36/(byte*) current_piece_gfx#10 main::@8/(byte*) current_piece_gfx#88 ) (byte) current_orientation#71 ← phi( main::@36/(byte) current_orientation#11 main::@8/(byte) current_orientation#78 ) (byte) current_piece_char#62 ← phi( main::@36/(byte) current_piece_char#7 main::@8/(byte) current_piece_char#74 ) (byte*) current_piece#64 ← phi( main::@36/(byte*) current_piece#8 main::@8/(byte*) current_piece#72 ) (byte) current_movedown_slow#73 ← phi( main::@36/(byte) current_movedown_slow#13 main::@8/(byte) current_movedown_slow#81 ) - (byte) render_screen_render#42 ← phi( main::@36/(byte) render_screen_render#48 main::@8/(byte) render_screen_render#49 ) + (byte) render_screen_render#42 ← phi( main::@36/(byte) render_screen_render#47 main::@8/(byte) render_screen_render#48 ) (byte) render_screen_show#39 ← phi( main::@36/(byte) render_screen_show#45 main::@8/(byte) render_screen_show#46 ) (byte) main::render#2 ← phi( main::@36/(byte) main::render#1 main::@8/(byte) main::render#3 ) (bool~) main::$14 ← (byte) main::render#2 != (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -3372,9 +3342,9 @@ main::@12: scope:[main] from main::@11 (byte) game_over#39 ← phi( main::@11/(byte) game_over#54 ) (byte) current_ypos#57 ← phi( main::@11/(byte) current_ypos#70 ) (byte) current_xpos#72 ← phi( main::@11/(byte) current_xpos#91 ) - (byte*) current_piece_gfx#58 ← phi( main::@11/(byte*) current_piece_gfx#77 ) + (byte*) current_piece_gfx#57 ← phi( main::@11/(byte*) current_piece_gfx#75 ) (byte) current_orientation#57 ← phi( main::@11/(byte) current_orientation#71 ) - (byte) current_piece_char#44 ← phi( main::@11/(byte) current_piece_char#62 ) + (byte) current_piece_char#45 ← phi( main::@11/(byte) current_piece_char#62 ) (byte*) current_piece#49 ← phi( main::@11/(byte*) current_piece#64 ) (byte) current_movedown_slow#58 ← phi( main::@11/(byte) current_movedown_slow#73 ) (byte) render_screen_render#33 ← phi( main::@11/(byte) render_screen_render#42 ) @@ -3390,13 +3360,13 @@ main::@23: scope:[main] from main::@11 (byte) render_screen_showing#41 ← phi( main::@11/(byte) render_screen_showing#25 ) (byte) game_over#82 ← phi( main::@11/(byte) game_over#54 ) (byte) current_orientation#88 ← phi( main::@11/(byte) current_orientation#71 ) - (byte) current_piece_char#91 ← phi( main::@11/(byte) current_piece_char#62 ) (byte*) current_piece#84 ← phi( main::@11/(byte*) current_piece#64 ) (byte) current_movedown_slow#88 ← phi( main::@11/(byte) current_movedown_slow#73 ) + (byte) current_piece_char#89 ← phi( main::@11/(byte) current_piece_char#62 ) (dword) score_bcd#73 ← phi( main::@11/(dword) score_bcd#56 ) - (byte*) current_piece_gfx#98 ← phi( main::@11/(byte*) current_piece_gfx#77 ) + (byte*) current_piece_gfx#96 ← phi( main::@11/(byte*) current_piece_gfx#75 ) (byte) render_screen_show#47 ← phi( main::@11/(byte) render_screen_show#39 ) - (byte) current_xpos#102 ← phi( main::@11/(byte) current_xpos#91 ) + (byte) current_xpos#101 ← phi( main::@11/(byte) current_xpos#91 ) (byte) current_ypos#61 ← phi( main::@11/(byte) current_ypos#70 ) (byte) render_screen_render#27 ← phi( main::@11/(byte) render_screen_render#42 ) call render_playfield @@ -3411,13 +3381,13 @@ main::@37: scope:[main] from main::@23 (byte) render_screen_showing#37 ← phi( main::@23/(byte) render_screen_showing#41 ) (byte) game_over#76 ← phi( main::@23/(byte) game_over#82 ) (byte) current_orientation#85 ← phi( main::@23/(byte) current_orientation#88 ) - (byte) current_piece_char#84 ← phi( main::@23/(byte) current_piece_char#91 ) (byte*) current_piece#79 ← phi( main::@23/(byte*) current_piece#84 ) (byte) current_movedown_slow#86 ← phi( main::@23/(byte) current_movedown_slow#88 ) + (byte) current_piece_char#76 ← phi( main::@23/(byte) current_piece_char#89 ) (dword) score_bcd#66 ← phi( main::@23/(dword) score_bcd#73 ) - (byte*) current_piece_gfx#79 ← phi( main::@23/(byte*) current_piece_gfx#98 ) + (byte*) current_piece_gfx#77 ← phi( main::@23/(byte*) current_piece_gfx#96 ) (byte) render_screen_show#40 ← phi( main::@23/(byte) render_screen_show#47 ) - (byte) current_xpos#78 ← phi( main::@23/(byte) current_xpos#102 ) + (byte) current_xpos#78 ← phi( main::@23/(byte) current_xpos#101 ) (byte) render_screen_render#35 ← phi( main::@23/(byte) render_screen_render#27 ) (byte) current_ypos#28 ← phi( main::@23/(byte) current_ypos#61 ) call render_moving @@ -3432,10 +3402,10 @@ main::@38: scope:[main] from main::@37 (byte) render_screen_showing#31 ← phi( main::@37/(byte) render_screen_showing#37 ) (byte) game_over#66 ← phi( main::@37/(byte) game_over#76 ) (byte) current_ypos#78 ← phi( main::@37/(byte) current_ypos#28 ) - (byte) current_xpos#103 ← phi( main::@37/(byte) current_xpos#78 ) - (byte*) current_piece_gfx#91 ← phi( main::@37/(byte*) current_piece_gfx#79 ) + (byte) current_xpos#102 ← phi( main::@37/(byte) current_xpos#78 ) + (byte*) current_piece_gfx#89 ← phi( main::@37/(byte*) current_piece_gfx#77 ) (byte) current_orientation#79 ← phi( main::@37/(byte) current_orientation#85 ) - (byte) current_piece_char#75 ← phi( main::@37/(byte) current_piece_char#84 ) + (byte) current_piece_char#75 ← phi( main::@37/(byte) current_piece_char#76 ) (byte*) current_piece#73 ← phi( main::@37/(byte*) current_piece#79 ) (byte) current_movedown_slow#82 ← phi( main::@37/(byte) current_movedown_slow#86 ) (dword) score_bcd#47 ← phi( main::@37/(dword) score_bcd#66 ) @@ -3454,8 +3424,8 @@ main::@39: scope:[main] from main::@38 (byte) render_screen_showing#26 ← phi( main::@38/(byte) render_screen_showing#31 ) (byte) game_over#55 ← phi( main::@38/(byte) game_over#66 ) (byte) current_ypos#71 ← phi( main::@38/(byte) current_ypos#78 ) - (byte) current_xpos#92 ← phi( main::@38/(byte) current_xpos#103 ) - (byte*) current_piece_gfx#78 ← phi( main::@38/(byte*) current_piece_gfx#91 ) + (byte) current_xpos#92 ← phi( main::@38/(byte) current_xpos#102 ) + (byte*) current_piece_gfx#76 ← phi( main::@38/(byte*) current_piece_gfx#89 ) (byte) current_orientation#72 ← phi( main::@38/(byte) current_orientation#79 ) (byte) current_piece_char#63 ← phi( main::@38/(byte) current_piece_char#75 ) (byte*) current_piece#65 ← phi( main::@38/(byte*) current_piece#73 ) @@ -3476,9 +3446,9 @@ main::@40: scope:[main] from main::@39 (byte) game_over#41 ← phi( main::@39/(byte) game_over#55 ) (byte) current_ypos#59 ← phi( main::@39/(byte) current_ypos#71 ) (byte) current_xpos#74 ← phi( main::@39/(byte) current_xpos#92 ) - (byte*) current_piece_gfx#60 ← phi( main::@39/(byte*) current_piece_gfx#78 ) + (byte*) current_piece_gfx#59 ← phi( main::@39/(byte*) current_piece_gfx#76 ) (byte) current_orientation#59 ← phi( main::@39/(byte) current_orientation#72 ) - (byte) current_piece_char#46 ← phi( main::@39/(byte) current_piece_char#63 ) + (byte) current_piece_char#47 ← phi( main::@39/(byte) current_piece_char#63 ) (byte*) current_piece#51 ← phi( main::@39/(byte*) current_piece#65 ) (byte) current_movedown_slow#60 ← phi( main::@39/(byte) current_movedown_slow#74 ) (byte) render_screen_show#15 ← phi( main::@39/(byte) render_screen_show#4 ) @@ -3539,9 +3509,9 @@ main::@return: scope:[main] from main::@1 (byte) game_over#32 ← phi( @30/(byte) game_over#43 ) (byte) current_ypos#47 ← phi( @30/(byte) current_ypos#62 ) (byte) current_xpos#56 ← phi( @30/(byte) current_xpos#76 ) - (byte*) current_piece_gfx#43 ← phi( @30/(byte*) current_piece_gfx#62 ) + (byte*) current_piece_gfx#43 ← phi( @30/(byte*) current_piece_gfx#61 ) (byte) current_orientation#48 ← phi( @30/(byte) current_orientation#61 ) - (byte) current_piece_char#34 ← phi( @30/(byte) current_piece_char#48 ) + (byte) current_piece_char#34 ← phi( @30/(byte) current_piece_char#49 ) (byte*) current_piece#38 ← phi( @30/(byte*) current_piece#53 ) (byte) current_movedown_slow#46 ← phi( @30/(byte) current_movedown_slow#62 ) (byte) render_screen_render#26 ← phi( @30/(byte) render_screen_render#36 ) @@ -4357,7 +4327,6 @@ SYMBOL TABLE SSA (byte) current_piece_char#0 (byte) current_piece_char#1 (byte) current_piece_char#10 -(byte) current_piece_char#100 (byte) current_piece_char#11 (byte) current_piece_char#12 (byte) current_piece_char#13 @@ -4454,7 +4423,6 @@ SYMBOL TABLE SSA (byte) current_piece_char#96 (byte) current_piece_char#97 (byte) current_piece_char#98 -(byte) current_piece_char#99 (byte*) current_piece_gfx (byte*) current_piece_gfx#0 (byte*) current_piece_gfx#1 @@ -4471,8 +4439,6 @@ SYMBOL TABLE SSA (byte*) current_piece_gfx#109 (byte*) current_piece_gfx#11 (byte*) current_piece_gfx#110 -(byte*) current_piece_gfx#111 -(byte*) current_piece_gfx#112 (byte*) current_piece_gfx#12 (byte*) current_piece_gfx#13 (byte*) current_piece_gfx#14 @@ -4596,8 +4562,6 @@ SYMBOL TABLE SSA (byte) current_xpos#119 (byte) current_xpos#12 (byte) current_xpos#120 -(byte) current_xpos#121 -(byte) current_xpos#122 (byte) current_xpos#13 (byte) current_xpos#14 (byte) current_xpos#15 @@ -6328,25 +6292,18 @@ SYMBOL TABLE SSA (void()) render_moving() (byte~) render_moving::$0 (bool~) render_moving::$1 -(bool~) render_moving::$10 -(bool~) render_moving::$11 -(byte/signed word/word/dword/signed dword~) render_moving::$2 +(byte~) render_moving::$2 (bool~) render_moving::$3 (bool~) render_moving::$4 -(byte~) render_moving::$5 +(bool~) render_moving::$5 (bool~) render_moving::$6 -(bool~) render_moving::$7 -(bool~) render_moving::$8 -(bool~) render_moving::$9 (label) render_moving::@1 -(label) render_moving::@10 (label) render_moving::@2 (label) render_moving::@3 (label) render_moving::@4 (label) render_moving::@5 (label) render_moving::@6 -(label) render_moving::@7 -(label) render_moving::@9 +(label) render_moving::@8 (label) render_moving::@return (byte) render_moving::c (byte) render_moving::c#0 @@ -6354,15 +6311,11 @@ SYMBOL TABLE SSA (byte) render_moving::c#2 (byte) render_moving::c#3 (byte) render_moving::c#4 -(byte) render_moving::c#5 -(byte) render_moving::c#6 (byte) render_moving::current_cell (byte) render_moving::current_cell#0 (byte) render_moving::i (byte) render_moving::i#0 (byte) render_moving::i#1 -(byte) render_moving::i#10 -(byte) render_moving::i#11 (byte) render_moving::i#2 (byte) render_moving::i#3 (byte) render_moving::i#4 @@ -6374,7 +6327,6 @@ SYMBOL TABLE SSA (byte) render_moving::l (byte) render_moving::l#0 (byte) render_moving::l#1 -(byte) render_moving::l#10 (byte) render_moving::l#2 (byte) render_moving::l#3 (byte) render_moving::l#4 @@ -6382,26 +6334,20 @@ SYMBOL TABLE SSA (byte) render_moving::l#6 (byte) render_moving::l#7 (byte) render_moving::l#8 -(byte) render_moving::l#9 (byte*) render_moving::screen_line (byte*) render_moving::screen_line#0 (byte*) render_moving::screen_line#1 (byte*) render_moving::screen_line#2 (byte*) render_moving::screen_line#3 -(byte*) render_moving::screen_line#4 -(byte*) render_moving::screen_line#5 (byte) render_moving::xpos (byte) render_moving::xpos#0 (byte) render_moving::xpos#1 (byte) render_moving::xpos#2 (byte) render_moving::xpos#3 (byte) render_moving::xpos#4 -(byte) render_moving::xpos#5 -(byte) render_moving::xpos#6 (byte) render_moving::ypos2 (byte) render_moving::ypos2#0 (byte) render_moving::ypos2#1 -(byte) render_moving::ypos2#10 (byte) render_moving::ypos2#2 (byte) render_moving::ypos2#3 (byte) render_moving::ypos2#4 @@ -6409,7 +6355,6 @@ SYMBOL TABLE SSA (byte) render_moving::ypos2#6 (byte) render_moving::ypos2#7 (byte) render_moving::ypos2#8 -(byte) render_moving::ypos2#9 (void()) render_playfield() (byte/signed word/word/dword/signed dword~) render_playfield::$0 (byte/signed word/word/dword/signed dword~) render_playfield::$1 @@ -6626,8 +6571,6 @@ SYMBOL TABLE SSA (byte) render_screen_render#60 (byte) render_screen_render#61 (byte) render_screen_render#62 -(byte) render_screen_render#63 -(byte) render_screen_render#64 (byte) render_screen_render#7 (byte) render_screen_render#8 (byte) render_screen_render#9 @@ -7019,31 +6962,30 @@ Inversing boolean not [235] (bool~) keyboard_event_scan::$20 ← (byte~) keyboar Inversing boolean not [247] (bool~) keyboard_event_scan::$24 ← (byte~) keyboard_event_scan::$22 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [246] (bool~) keyboard_event_scan::$23 ← (byte~) keyboard_event_scan::$22 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not [259] (bool~) keyboard_event_scan::$28 ← (byte~) keyboard_event_scan::$26 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [258] (bool~) keyboard_event_scan::$27 ← (byte~) keyboard_event_scan::$26 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not [518] (bool~) render_bcd::$2 ← (byte) render_bcd::only_low#6 != (byte/signed byte/word/signed word/dword/signed dword) 0 from [517] (bool~) render_bcd::$1 ← (byte) render_bcd::only_low#6 == (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not [624] (bool~) render_moving::$7 ← (byte) render_moving::current_cell#0 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [623] (bool~) render_moving::$6 ← (byte) render_moving::current_cell#0 != (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not [633] (bool~) render_moving::$9 ← (byte) render_moving::xpos#3 >= (byte) PLAYFIELD_COLS#0 from [632] (bool~) render_moving::$8 ← (byte) render_moving::xpos#3 < (byte) PLAYFIELD_COLS#0 -Inversing boolean not [857] (bool~) play_movement::$2 ← (byte) game_over#1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [856] (bool~) play_movement::$1 ← (byte) game_over#1 != (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not [898] (bool~) play_move_down::$1 ← (byte) play_move_down::key_event#1 != (byte) KEY_SPACE#0 from [897] (bool~) play_move_down::$0 ← (byte) play_move_down::key_event#1 == (byte) KEY_SPACE#0 -Inversing boolean not [907] (bool~) play_move_down::$4 ← (byte~) play_move_down::$2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [906] (bool~) play_move_down::$3 ← (byte~) play_move_down::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not [913] (bool~) play_move_down::$8 ← (byte) current_movedown_counter#12 < (byte) current_movedown_slow#19 from [912] (bool~) play_move_down::$7 ← (byte) current_movedown_counter#12 >= (byte) current_movedown_slow#19 -Inversing boolean not [917] (bool~) play_move_down::$6 ← (byte) current_movedown_counter#13 < (byte) current_movedown_fast#0 from [916] (bool~) play_move_down::$5 ← (byte) current_movedown_counter#13 >= (byte) current_movedown_fast#0 -Inversing boolean not [924] (bool~) play_move_down::$10 ← (byte) play_move_down::movedown#6 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [923] (bool~) play_move_down::$9 ← (byte) play_move_down::movedown#6 != (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not [1000] (bool~) play_move_leftright::$10 ← (byte~) play_move_leftright::$8 != (byte) COLLISION_NONE#0 from [999] (bool~) play_move_leftright::$9 ← (byte~) play_move_leftright::$8 == (byte) COLLISION_NONE#0 -Inversing boolean not [1004] (bool~) play_move_leftright::$2 ← (byte) play_move_leftright::key_event#2 != (byte) KEY_DOT#0 from [1003] (bool~) play_move_leftright::$1 ← (byte) play_move_leftright::key_event#2 == (byte) KEY_DOT#0 -Inversing boolean not [1017] (bool~) play_move_leftright::$6 ← (byte~) play_move_leftright::$4 != (byte) COLLISION_NONE#0 from [1016] (bool~) play_move_leftright::$5 ← (byte~) play_move_leftright::$4 == (byte) COLLISION_NONE#0 -Inversing boolean not [1064] (bool~) play_move_rotate::$8 ← (byte~) play_move_rotate::$6 != (byte) COLLISION_NONE#0 from [1063] (bool~) play_move_rotate::$7 ← (byte~) play_move_rotate::$6 == (byte) COLLISION_NONE#0 -Inversing boolean not [1092] (bool~) play_collision::$3 ← *((byte*) play_collision::piece_gfx#1 + (byte) play_collision::i#2) == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1091] (bool~) play_collision::$2 ← *((byte*) play_collision::piece_gfx#1 + (byte) play_collision::i#2) != (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not [1103] (bool~) play_collision::$6 ← (byte) play_collision::ypos2#3 < (byte/signed word/word/dword/signed dword~) play_collision::$4 from [1102] (bool~) play_collision::$5 ← (byte) play_collision::ypos2#3 >= (byte/signed word/word/dword/signed dword~) play_collision::$4 -Inversing boolean not [1108] (bool~) play_collision::$9 ← (byte~) play_collision::$7 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1107] (bool~) play_collision::$8 ← (byte~) play_collision::$7 != (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not [1116] (bool~) play_collision::$11 ← (byte) play_collision::col#4 < (byte) PLAYFIELD_COLS#0 from [1115] (bool~) play_collision::$10 ← (byte) play_collision::col#4 >= (byte) PLAYFIELD_COLS#0 -Inversing boolean not [1121] (bool~) play_collision::$13 ← *((byte*) play_collision::playfield_line#1 + (byte) play_collision::col#5) == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1120] (bool~) play_collision::$12 ← *((byte*) play_collision::playfield_line#1 + (byte) play_collision::col#5) != (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not [1143] (bool~) play_lock_current::$2 ← *((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2) == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1142] (bool~) play_lock_current::$1 ← *((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2) != (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not [1188] (bool~) play_spawn_current::$7 ← (byte~) play_spawn_current::$5 != (byte) COLLISION_PLAYFIELD#0 from [1187] (bool~) play_spawn_current::$6 ← (byte~) play_spawn_current::$5 == (byte) COLLISION_PLAYFIELD#0 -Inversing boolean not [1219] (bool~) play_remove_lines::$7 ← (byte) play_remove_lines::c#0 != (byte/signed byte/word/signed word/dword/signed dword) 0 from [1218] (bool~) play_remove_lines::$6 ← (byte) play_remove_lines::c#0 == (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not [1231] (bool~) play_remove_lines::$10 ← (byte) play_remove_lines::full#2 != (byte/signed byte/word/signed word/dword/signed dword) 1 from [1230] (bool~) play_remove_lines::$9 ← (byte) play_remove_lines::full#2 == (byte/signed byte/word/signed word/dword/signed dword) 1 -Inversing boolean not [1254] (bool~) play_update_score::$1 ← (byte) play_update_score::removed#1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1253] (bool~) play_update_score::$0 ← (byte) play_update_score::removed#1 != (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not [1271] (bool~) play_update_score::$8 ← (byte) play_update_score::lines_before#0 == (byte) play_update_score::lines_after#0 from [1270] (bool~) play_update_score::$7 ← (byte) play_update_score::lines_before#0 != (byte) play_update_score::lines_after#0 -Inversing boolean not [1299] (bool~) play_increase_level::$3 ← (byte~) play_increase_level::$1 != (byte/signed byte/word/signed word/dword/signed dword) 10 from [1298] (bool~) play_increase_level::$2 ← (byte~) play_increase_level::$1 == (byte/signed byte/word/signed word/dword/signed dword) 10 -Inversing boolean not [1398] (bool~) main::$15 ← (byte) main::render#2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1397] (bool~) main::$14 ← (byte) main::render#2 != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not [621] (bool~) render_moving::$4 ← (byte) render_moving::current_cell#0 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [620] (bool~) render_moving::$3 ← (byte) render_moving::current_cell#0 != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not [849] (bool~) play_movement::$2 ← (byte) game_over#1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [848] (bool~) play_movement::$1 ← (byte) game_over#1 != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not [890] (bool~) play_move_down::$1 ← (byte) play_move_down::key_event#1 != (byte) KEY_SPACE#0 from [889] (bool~) play_move_down::$0 ← (byte) play_move_down::key_event#1 == (byte) KEY_SPACE#0 +Inversing boolean not [899] (bool~) play_move_down::$4 ← (byte~) play_move_down::$2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [898] (bool~) play_move_down::$3 ← (byte~) play_move_down::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not [905] (bool~) play_move_down::$8 ← (byte) current_movedown_counter#12 < (byte) current_movedown_slow#19 from [904] (bool~) play_move_down::$7 ← (byte) current_movedown_counter#12 >= (byte) current_movedown_slow#19 +Inversing boolean not [909] (bool~) play_move_down::$6 ← (byte) current_movedown_counter#13 < (byte) current_movedown_fast#0 from [908] (bool~) play_move_down::$5 ← (byte) current_movedown_counter#13 >= (byte) current_movedown_fast#0 +Inversing boolean not [916] (bool~) play_move_down::$10 ← (byte) play_move_down::movedown#6 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [915] (bool~) play_move_down::$9 ← (byte) play_move_down::movedown#6 != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not [992] (bool~) play_move_leftright::$10 ← (byte~) play_move_leftright::$8 != (byte) COLLISION_NONE#0 from [991] (bool~) play_move_leftright::$9 ← (byte~) play_move_leftright::$8 == (byte) COLLISION_NONE#0 +Inversing boolean not [996] (bool~) play_move_leftright::$2 ← (byte) play_move_leftright::key_event#2 != (byte) KEY_DOT#0 from [995] (bool~) play_move_leftright::$1 ← (byte) play_move_leftright::key_event#2 == (byte) KEY_DOT#0 +Inversing boolean not [1009] (bool~) play_move_leftright::$6 ← (byte~) play_move_leftright::$4 != (byte) COLLISION_NONE#0 from [1008] (bool~) play_move_leftright::$5 ← (byte~) play_move_leftright::$4 == (byte) COLLISION_NONE#0 +Inversing boolean not [1056] (bool~) play_move_rotate::$8 ← (byte~) play_move_rotate::$6 != (byte) COLLISION_NONE#0 from [1055] (bool~) play_move_rotate::$7 ← (byte~) play_move_rotate::$6 == (byte) COLLISION_NONE#0 +Inversing boolean not [1084] (bool~) play_collision::$3 ← *((byte*) play_collision::piece_gfx#1 + (byte) play_collision::i#2) == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1083] (bool~) play_collision::$2 ← *((byte*) play_collision::piece_gfx#1 + (byte) play_collision::i#2) != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not [1095] (bool~) play_collision::$6 ← (byte) play_collision::ypos2#3 < (byte/signed word/word/dword/signed dword~) play_collision::$4 from [1094] (bool~) play_collision::$5 ← (byte) play_collision::ypos2#3 >= (byte/signed word/word/dword/signed dword~) play_collision::$4 +Inversing boolean not [1100] (bool~) play_collision::$9 ← (byte~) play_collision::$7 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1099] (bool~) play_collision::$8 ← (byte~) play_collision::$7 != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not [1108] (bool~) play_collision::$11 ← (byte) play_collision::col#4 < (byte) PLAYFIELD_COLS#0 from [1107] (bool~) play_collision::$10 ← (byte) play_collision::col#4 >= (byte) PLAYFIELD_COLS#0 +Inversing boolean not [1113] (bool~) play_collision::$13 ← *((byte*) play_collision::playfield_line#1 + (byte) play_collision::col#5) == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1112] (bool~) play_collision::$12 ← *((byte*) play_collision::playfield_line#1 + (byte) play_collision::col#5) != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not [1135] (bool~) play_lock_current::$2 ← *((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2) == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1134] (bool~) play_lock_current::$1 ← *((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2) != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not [1180] (bool~) play_spawn_current::$7 ← (byte~) play_spawn_current::$5 != (byte) COLLISION_PLAYFIELD#0 from [1179] (bool~) play_spawn_current::$6 ← (byte~) play_spawn_current::$5 == (byte) COLLISION_PLAYFIELD#0 +Inversing boolean not [1211] (bool~) play_remove_lines::$7 ← (byte) play_remove_lines::c#0 != (byte/signed byte/word/signed word/dword/signed dword) 0 from [1210] (bool~) play_remove_lines::$6 ← (byte) play_remove_lines::c#0 == (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not [1223] (bool~) play_remove_lines::$10 ← (byte) play_remove_lines::full#2 != (byte/signed byte/word/signed word/dword/signed dword) 1 from [1222] (bool~) play_remove_lines::$9 ← (byte) play_remove_lines::full#2 == (byte/signed byte/word/signed word/dword/signed dword) 1 +Inversing boolean not [1246] (bool~) play_update_score::$1 ← (byte) play_update_score::removed#1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1245] (bool~) play_update_score::$0 ← (byte) play_update_score::removed#1 != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not [1263] (bool~) play_update_score::$8 ← (byte) play_update_score::lines_before#0 == (byte) play_update_score::lines_after#0 from [1262] (bool~) play_update_score::$7 ← (byte) play_update_score::lines_before#0 != (byte) play_update_score::lines_after#0 +Inversing boolean not [1291] (bool~) play_increase_level::$3 ← (byte~) play_increase_level::$1 != (byte/signed byte/word/signed word/dword/signed dword) 10 from [1290] (bool~) play_increase_level::$2 ← (byte~) play_increase_level::$1 == (byte/signed byte/word/signed word/dword/signed dword) 10 +Inversing boolean not [1390] (bool~) main::$15 ← (byte) main::render#2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1389] (bool~) main::$14 ← (byte) main::render#2 != (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2UnaryNotSimplification Alias candidate removed (volatile)(byte) render_screen_showing#1 = (byte) render_screen_show#11 (byte) render_screen_showing#6 (byte) render_screen_showing#2 Alias candidate removed (volatile)(byte) IRQ_RASTER_FIRST#0 = (byte/signed word/word/dword/signed dword~) $4 (byte) irq_raster_next#0 (byte) irq_raster_next#24 (byte) irq_raster_next#23 (byte) irq_raster_next#22 (byte) irq_raster_next#20 (byte) irq_raster_next#17 (byte) irq_raster_next#10 @@ -7051,9 +6993,9 @@ Alias candidate removed (volatile)(byte) irq_sprite_ypos#0 = (byte/signed word/w Alias candidate removed (volatile)(byte) irq_sprite_ptr#0 = (byte/signed word/word/dword/signed dword~) $7 (byte) irq_sprite_ptr#18 (byte) irq_sprite_ptr#17 (byte) irq_sprite_ptr#14 Alias candidate removed (volatile)(byte) sprites_irq::raster_sprite_gfx_modify#0 = (byte/signed word/word/dword/signed dword~) sprites_irq::$0 Alias candidate removed (volatile)(byte) sprites_irq::toSpritePtr2_return#0 = (byte) sprites_irq::toSpritePtr2_$2#0 (byte) sprites_irq::toSpritePtr2_return#2 (byte) sprites_irq::toSpritePtr2_return#1 (byte) sprites_irq::toSpritePtr2_return#3 (byte~) sprites_irq::$5 (byte) irq_sprite_ptr#1 -Alias (byte) current_piece_char#100 = (byte) current_piece_char#99 (byte) current_piece_char#98 (byte) current_piece_char#97 (byte) current_piece_char#96 (byte) current_piece_char#95 (byte) current_piece_char#92 (byte) current_piece_char#86 (byte) current_piece_char#78 (byte) current_piece_char#66 (byte) current_piece_char#56 (byte) current_piece_char#48 (byte) current_piece_char#34 -Alias (byte*) current_piece_gfx#104 = (byte*) current_piece_gfx#111 (byte*) current_piece_gfx#112 (byte*) current_piece_gfx#110 (byte*) current_piece_gfx#109 (byte*) current_piece_gfx#108 (byte*) current_piece_gfx#107 (byte*) current_piece_gfx#99 (byte*) current_piece_gfx#92 (byte*) current_piece_gfx#81 (byte*) current_piece_gfx#72 (byte*) current_piece_gfx#62 (byte*) current_piece_gfx#43 -Alias (byte) current_xpos#105 = (byte) current_xpos#121 (byte) current_xpos#122 (byte) current_xpos#120 (byte) current_xpos#119 (byte) current_xpos#118 (byte) current_xpos#117 (byte) current_xpos#114 (byte) current_xpos#111 (byte) current_xpos#96 (byte) current_xpos#86 (byte) current_xpos#76 (byte) current_xpos#56 +Alias (byte) current_piece_char#34 = (byte) current_piece_char#97 (byte) current_piece_char#98 (byte) current_piece_char#96 (byte) current_piece_char#95 (byte) current_piece_char#94 (byte) current_piece_char#93 (byte) current_piece_char#90 (byte) current_piece_char#84 (byte) current_piece_char#78 (byte) current_piece_char#66 (byte) current_piece_char#56 (byte) current_piece_char#49 +Alias (byte*) current_piece_gfx#102 = (byte*) current_piece_gfx#109 (byte*) current_piece_gfx#110 (byte*) current_piece_gfx#108 (byte*) current_piece_gfx#107 (byte*) current_piece_gfx#106 (byte*) current_piece_gfx#105 (byte*) current_piece_gfx#97 (byte*) current_piece_gfx#90 (byte*) current_piece_gfx#79 (byte*) current_piece_gfx#70 (byte*) current_piece_gfx#61 (byte*) current_piece_gfx#43 +Alias (byte) current_xpos#103 = (byte) current_xpos#119 (byte) current_xpos#120 (byte) current_xpos#118 (byte) current_xpos#117 (byte) current_xpos#116 (byte) current_xpos#115 (byte) current_xpos#112 (byte) current_xpos#109 (byte) current_xpos#95 (byte) current_xpos#86 (byte) current_xpos#76 (byte) current_xpos#56 Alias (byte) current_ypos#47 = (byte) current_ypos#95 (byte) current_ypos#96 (byte) current_ypos#94 (byte) current_ypos#93 (byte) current_ypos#92 (byte) current_ypos#91 (byte) current_ypos#88 (byte) current_ypos#85 (byte) current_ypos#79 (byte) current_ypos#72 (byte) current_ypos#67 (byte) current_ypos#62 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 @@ -7148,22 +7090,22 @@ Alias (byte) render_moving::ypos2#0 = (byte~) render_moving::$0 Alias (byte) render_screen_render#14 = (byte) render_screen_render#23 (byte) render_screen_render#39 Alias (byte) render_moving::ypos2#2 = (byte) render_moving::ypos2#3 (byte) render_moving::ypos2#6 Alias (byte) current_xpos#14 = (byte) current_xpos#33 (byte) current_xpos#80 -Alias (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#44 (byte*) current_piece_gfx#80 +Alias (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#44 (byte*) current_piece_gfx#78 Alias (byte) render_moving::i#3 = (byte) render_moving::i#6 (byte) render_moving::i#5 -Alias (byte) render_moving::l#4 = (byte) render_moving::l#9 (byte) render_moving::l#5 -Alias (byte) current_piece_char#49 = (byte) current_piece_char#64 (byte) current_piece_char#85 -Alias (byte) render_moving::xpos#3 = (byte) render_moving::xpos#5 (byte) render_moving::xpos#6 (byte) render_moving::xpos#4 -Alias (byte) current_piece_char#10 = (byte) current_piece_char#21 (byte) current_piece_char#35 (byte) current_piece_char#65 -Alias (byte*) render_moving::screen_line#1 = (byte*) render_moving::screen_line#2 (byte*) render_moving::screen_line#3 (byte*) render_moving::screen_line#5 -Alias (byte) render_moving::c#3 = (byte) render_moving::c#6 (byte) render_moving::c#4 (byte) render_moving::c#5 -Alias (byte) render_moving::ypos2#10 = (byte) render_moving::ypos2#8 (byte) render_moving::ypos2#9 (byte) render_moving::ypos2#7 -Alias (byte) render_moving::l#10 = (byte) render_moving::l#7 (byte) render_moving::l#8 (byte) render_moving::l#6 -Alias (byte*) current_piece_gfx#13 = (byte*) current_piece_gfx#65 (byte*) current_piece_gfx#46 (byte*) current_piece_gfx#45 -Alias (byte) render_moving::i#10 = (byte) render_moving::i#11 (byte) render_moving::i#2 (byte) render_moving::i#9 -Alias (byte) render_screen_render#43 = (byte) render_screen_render#50 (byte) render_screen_render#44 (byte) render_screen_render#45 -Alias (byte) current_xpos#104 = (byte) current_xpos#94 (byte) current_xpos#95 (byte) current_xpos#93 +Alias (byte) current_piece_char#35 = (byte) current_piece_char#50 (byte) current_piece_char#77 +Alias (byte) render_moving::l#4 = (byte) render_moving::l#8 (byte) render_moving::l#5 +Alias (byte) current_piece_char#10 = (byte) current_piece_char#21 +Alias (byte*) render_moving::screen_line#1 = (byte*) render_moving::screen_line#2 +Alias (byte) render_moving::xpos#3 = (byte) render_moving::xpos#4 +Alias (byte) render_moving::c#3 = (byte) render_moving::c#4 +Alias (byte) render_moving::ypos2#7 = (byte) render_moving::ypos2#8 +Alias (byte) render_moving::l#6 = (byte) render_moving::l#7 +Alias (byte*) current_piece_gfx#13 = (byte*) current_piece_gfx#45 +Alias (byte) render_moving::i#2 = (byte) render_moving::i#9 +Alias (byte) render_screen_render#43 = (byte) render_screen_render#44 +Alias (byte) current_xpos#93 = (byte) current_xpos#94 Alias (byte) render_screen_show#0 = (byte) render_screen_show#59 (byte) render_screen_show#56 (byte) render_screen_show#53 (byte) render_screen_show#48 (byte) render_screen_show#43 (byte) render_screen_show#35 (byte) render_screen_show#32 (byte) render_screen_show#24 -Alias (byte) render_screen_render#0 = (byte) render_screen_render#60 (byte) render_screen_render#58 (byte) render_screen_render#56 (byte) render_screen_render#51 (byte) render_screen_render#46 (byte) render_screen_render#40 (byte) render_screen_render#36 (byte) render_screen_render#26 +Alias (byte) render_screen_render#0 = (byte) render_screen_render#58 (byte) render_screen_render#56 (byte) render_screen_render#54 (byte) render_screen_render#49 (byte) render_screen_render#45 (byte) render_screen_render#40 (byte) render_screen_render#36 (byte) render_screen_render#26 Alias (byte) game_over#0 = (byte) game_over#84 (byte) game_over#83 (byte) game_over#77 (byte) game_over#67 (byte) game_over#56 (byte) game_over#49 (byte) game_over#43 (byte) game_over#32 Alias (byte) render_screen_showing#0 = (byte) render_screen_showing#44 (byte) render_screen_showing#42 (byte) render_screen_showing#38 (byte) render_screen_showing#32 (byte) render_screen_showing#27 (byte) render_screen_showing#21 (byte) render_screen_showing#20 (byte) render_screen_showing#14 Alias (word) lines_bcd#0 = (word) lines_bcd#87 (word) lines_bcd#83 (word) lines_bcd#77 (word) lines_bcd#70 (word) lines_bcd#60 (word) lines_bcd#53 (word) lines_bcd#46 (word) lines_bcd#34 @@ -7207,9 +7149,9 @@ Alias (byte) level#1 = (byte) level#13 (byte) level#54 (byte) level#40 (byte) le Alias (byte) current_movedown_slow#17 = (byte) current_movedown_slow#3 (byte) current_movedown_slow#63 (byte) current_movedown_slow#47 (byte) current_movedown_slow#32 (byte) current_movedown_slow#31 Alias (byte) level_bcd#1 = (byte) level_bcd#14 (byte) level_bcd#58 (byte) level_bcd#43 (byte) level_bcd#29 (byte) level_bcd#28 Alias (byte*) current_piece#1 = (byte*) current_piece#11 (byte*) current_piece#54 (byte*) current_piece#39 (byte*) current_piece#24 (byte*) current_piece#23 -Alias (byte) current_piece_char#0 = (byte) current_piece_char#11 (byte) current_piece_char#51 (byte) current_piece_char#36 (byte) current_piece_char#24 (byte) current_piece_char#23 +Alias (byte) current_piece_char#0 = (byte) current_piece_char#11 (byte) current_piece_char#51 (byte) current_piece_char#37 (byte) current_piece_char#24 (byte) current_piece_char#23 Alias (byte) current_orientation#1 = (byte) current_orientation#14 (byte) current_orientation#49 (byte) current_orientation#31 (byte) current_orientation#32 -Alias (byte*) current_piece_gfx#0 = (byte*) current_piece_gfx#14 (byte*) current_piece_gfx#47 (byte*) current_piece_gfx#29 (byte*) current_piece_gfx#30 +Alias (byte*) current_piece_gfx#0 = (byte*) current_piece_gfx#14 (byte*) current_piece_gfx#46 (byte*) current_piece_gfx#29 (byte*) current_piece_gfx#30 Alias (byte) current_xpos#0 = (byte) current_xpos#15 (byte) current_xpos#35 (byte) current_xpos#36 Alias (byte) game_over#1 = (byte) game_over#11 (byte) game_over#44 (byte) game_over#33 (byte) game_over#23 (byte) game_over#22 Alias (byte) play_movement::render#1 = (byte) play_movement::render#8 (byte) play_movement::render#5 (byte) play_movement::render#7 (byte) play_movement::return#1 @@ -7239,7 +7181,7 @@ Alias (byte) current_movedown_counter#13 = (byte) current_movedown_counter#22 (b Alias (byte) current_movedown_slow#33 = (byte) current_movedown_slow#34 (byte) current_movedown_slow#48 (byte) current_movedown_slow#49 (byte) current_movedown_slow#35 Alias (byte) play_move_down::movedown#10 = (byte) play_move_down::movedown#12 (byte) play_move_down::movedown#8 (byte) play_move_down::movedown#11 (byte) play_move_down::movedown#5 Alias (byte) current_ypos#63 = (byte) current_ypos#64 (byte) current_ypos#73 (byte) current_ypos#74 (byte) current_ypos#65 -Alias (byte) current_xpos#81 = (byte) current_xpos#82 (byte) current_xpos#97 (byte) current_xpos#98 (byte) current_xpos#83 +Alias (byte) current_xpos#81 = (byte) current_xpos#82 (byte) current_xpos#96 (byte) current_xpos#97 (byte) current_xpos#83 Alias (byte) current_orientation#62 = (byte) current_orientation#63 (byte) current_orientation#73 (byte) current_orientation#74 (byte) current_orientation#64 Alias (word) lines_bcd#61 = (word) lines_bcd#62 (word) lines_bcd#71 (word) lines_bcd#72 (word) lines_bcd#63 Alias (dword) score_bcd#59 = (dword) score_bcd#60 (dword) score_bcd#68 (dword) score_bcd#69 (dword) score_bcd#61 @@ -7247,21 +7189,21 @@ Alias (byte) level#66 = (byte) level#67 (byte) level#78 (byte) level#79 (byte) l Alias (byte) level_bcd#71 = (byte) level_bcd#72 (byte) level_bcd#81 (byte) level_bcd#82 (byte) level_bcd#73 Alias (byte*) current_piece#66 = (byte*) current_piece#67 (byte*) current_piece#74 (byte*) current_piece#75 (byte*) current_piece#68 Alias (byte) current_piece_char#67 = (byte) current_piece_char#68 (byte) current_piece_char#79 (byte) current_piece_char#80 (byte) current_piece_char#69 -Alias (byte*) current_piece_gfx#82 = (byte*) current_piece_gfx#83 (byte*) current_piece_gfx#93 (byte*) current_piece_gfx#94 (byte*) current_piece_gfx#84 +Alias (byte*) current_piece_gfx#80 = (byte*) current_piece_gfx#81 (byte*) current_piece_gfx#91 (byte*) current_piece_gfx#92 (byte*) current_piece_gfx#82 Alias (byte) game_over#57 = (byte) game_over#58 (byte) game_over#68 (byte) game_over#69 (byte) game_over#59 Alias (byte) play_move_down::movedown#0 = (byte) play_move_down::movedown#4 Alias (byte) current_movedown_counter#3 = (byte) current_movedown_counter#37 Alias (byte) current_movedown_slow#64 = (byte) current_movedown_slow#65 Alias (byte) current_ypos#80 = (byte) current_ypos#81 -Alias (byte) current_xpos#106 = (byte) current_xpos#107 +Alias (byte) current_xpos#104 = (byte) current_xpos#105 Alias (byte) current_orientation#80 = (byte) current_orientation#81 Alias (word) lines_bcd#78 = (word) lines_bcd#79 Alias (dword) score_bcd#75 = (dword) score_bcd#76 Alias (byte) level#87 = (byte) level#88 Alias (byte) level_bcd#90 = (byte) level_bcd#91 Alias (byte*) current_piece#80 = (byte*) current_piece#81 -Alias (byte) current_piece_char#87 = (byte) current_piece_char#88 -Alias (byte*) current_piece_gfx#100 = (byte*) current_piece_gfx#101 +Alias (byte) current_piece_char#85 = (byte) current_piece_char#86 +Alias (byte*) current_piece_gfx#98 = (byte*) current_piece_gfx#99 Alias (byte) game_over#78 = (byte) game_over#79 Alias (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#9 Alias (byte) current_ypos#49 = (byte) current_ypos#50 @@ -7275,7 +7217,7 @@ Alias (byte) current_movedown_slow#19 = (byte) current_movedown_slow#66 Alias (byte) level_bcd#59 = (byte) level_bcd#60 Alias (byte*) current_piece#55 = (byte*) current_piece#56 Alias (byte) current_piece_char#52 = (byte) current_piece_char#53 -Alias (byte*) current_piece_gfx#66 = (byte*) current_piece_gfx#67 +Alias (byte*) current_piece_gfx#64 = (byte*) current_piece_gfx#65 Alias (byte) game_over#45 = (byte) game_over#46 Alias (byte) current_movedown_counter#24 = (byte) current_movedown_counter#30 Alias (byte) current_ypos#14 = (byte) current_ypos#35 (byte) current_ypos#32 (byte) current_ypos#33 (byte) current_ypos#15 (byte) current_ypos#41 (byte) current_ypos#66 (byte) current_ypos#51 (byte) current_ypos#34 @@ -7285,9 +7227,9 @@ Alias (byte) level#29 = (byte) level#30 (byte) level#41 (byte) level#69 (byte) l Alias (byte) current_movedown_slow#36 = (byte) current_movedown_slow#37 (byte) current_movedown_slow#50 (byte) current_movedown_slow#75 (byte) current_movedown_slow#67 (byte) current_movedown_slow#53 (byte) current_movedown_slow#68 (byte) current_movedown_slow#51 Alias (byte) level_bcd#30 = (byte) level_bcd#31 (byte) level_bcd#44 (byte) level_bcd#74 (byte) level_bcd#61 (byte) level_bcd#47 (byte) level_bcd#62 (byte) level_bcd#45 Alias (byte*) current_piece#25 = (byte*) current_piece#26 (byte*) current_piece#40 (byte*) current_piece#29 (byte*) current_piece#57 (byte*) current_piece#42 (byte*) current_piece#69 (byte*) current_piece#58 (byte*) current_piece#41 -Alias (byte) current_piece_char#25 = (byte) current_piece_char#26 (byte) current_piece_char#37 (byte) current_piece_char#70 (byte) current_piece_char#54 (byte) current_piece_char#39 (byte) current_piece_char#71 (byte) current_piece_char#55 (byte) current_piece_char#38 +Alias (byte) current_piece_char#25 = (byte) current_piece_char#26 (byte) current_piece_char#38 (byte) current_piece_char#70 (byte) current_piece_char#54 (byte) current_piece_char#40 (byte) current_piece_char#71 (byte) current_piece_char#55 (byte) current_piece_char#39 Alias (byte) current_orientation#17 = (byte) current_orientation#35 (byte) current_orientation#33 (byte) current_orientation#65 (byte) current_orientation#53 (byte) current_orientation#75 (byte) current_orientation#66 (byte) current_orientation#52 (byte) current_orientation#34 -Alias (byte*) current_piece_gfx#31 = (byte*) current_piece_gfx#32 (byte*) current_piece_gfx#48 (byte*) current_piece_gfx#85 (byte*) current_piece_gfx#68 (byte*) current_piece_gfx#50 (byte*) current_piece_gfx#73 (byte*) current_piece_gfx#69 (byte*) current_piece_gfx#49 +Alias (byte*) current_piece_gfx#31 = (byte*) current_piece_gfx#32 (byte*) current_piece_gfx#47 (byte*) current_piece_gfx#83 (byte*) current_piece_gfx#66 (byte*) current_piece_gfx#49 (byte*) current_piece_gfx#71 (byte*) current_piece_gfx#67 (byte*) current_piece_gfx#48 Alias (byte) current_xpos#18 = (byte) current_xpos#40 (byte) current_xpos#38 (byte) current_xpos#84 (byte) current_xpos#62 (byte) current_xpos#68 (byte) current_xpos#85 (byte) current_xpos#61 (byte) current_xpos#39 Alias (byte) game_over#24 = (byte) game_over#25 (byte) game_over#34 (byte) game_over#60 (byte) game_over#47 (byte) game_over#36 (byte) game_over#61 (byte) game_over#48 (byte) game_over#35 Alias (byte) play_collision::ypos#0 = (byte/signed word/word/dword/signed dword~) play_move_down::$11 @@ -7335,7 +7277,7 @@ Alias (byte) current_orientation#22 = (byte) current_orientation#39 (byte) curre Alias (byte) current_xpos#47 = (byte) current_xpos#66 (byte) current_xpos#67 (byte) current_xpos#48 Alias (byte) current_ypos#39 = (byte) current_ypos#53 (byte) current_ypos#54 (byte) current_ypos#40 Alias (byte*) current_piece#45 = (byte*) current_piece#59 (byte*) current_piece#60 (byte*) current_piece#46 -Alias (byte*) current_piece_gfx#35 = (byte*) current_piece_gfx#86 (byte*) current_piece_gfx#70 (byte*) current_piece_gfx#51 (byte*) current_piece_gfx#87 +Alias (byte*) current_piece_gfx#35 = (byte*) current_piece_gfx#84 (byte*) current_piece_gfx#68 (byte*) current_piece_gfx#50 (byte*) current_piece_gfx#85 Alias (byte) play_move_rotate::orientation#1 = (byte/word/dword~) play_move_rotate::$5 Alias (byte) play_move_rotate::key_event#1 = (byte) play_move_rotate::key_event#2 Alias (byte) play_move_rotate::orientation#2 = (byte/word/dword~) play_move_rotate::$3 @@ -7346,7 +7288,7 @@ Alias (byte) play_collision::return#14 = (byte) play_collision::return#3 Alias (byte) play_move_rotate::orientation#3 = (byte) play_move_rotate::orientation#5 (byte) play_move_rotate::orientation#4 Alias (byte*) current_piece#15 = (byte*) current_piece#28 (byte*) current_piece#32 Alias (byte) current_orientation#41 = (byte) current_orientation#54 (byte) current_orientation#67 -Alias (byte*) current_piece_gfx#34 = (byte*) current_piece_gfx#52 (byte*) current_piece_gfx#71 +Alias (byte*) current_piece_gfx#34 = (byte*) current_piece_gfx#51 (byte*) current_piece_gfx#69 Alias (byte*) current_piece_gfx#6 = (byte*~) play_move_rotate::$9 Alias (byte) current_movedown_slow#0 = (byte) current_movedown_slow#62 (byte) current_movedown_slow#46 Alias (byte*) current_piece#0 = (byte*) current_piece#53 (byte*) current_piece#38 @@ -7374,7 +7316,7 @@ Alias (byte) current_piece_char#15 = (byte) current_piece_char#28 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 -Alias (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#55 +Alias (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#54 Alias (byte) play_lock_current::i#1 = (byte) play_lock_current::i#6 Alias (byte) play_lock_current::ypos2#5 = (byte) play_lock_current::ypos2#6 Alias (byte) play_lock_current::l#4 = (byte) play_lock_current::l#5 @@ -7382,17 +7324,17 @@ Alias (byte) current_xpos#87 = (byte) current_xpos#88 Alias (byte) play_lock_current::ypos2#3 = (byte) play_lock_current::ypos2#4 Alias (byte) play_lock_current::l#2 = (byte) play_lock_current::l#3 Alias (byte) current_xpos#50 = (byte) current_xpos#69 -Alias (byte*) current_piece_gfx#37 = (byte*) current_piece_gfx#54 +Alias (byte*) current_piece_gfx#37 = (byte*) current_piece_gfx#53 Alias (byte) play_lock_current::i#4 = (byte) play_lock_current::i#5 -Alias (byte) current_piece_char#41 = (byte) current_piece_char#58 +Alias (byte) current_piece_char#42 = (byte) current_piece_char#58 Alias (byte) game_over#27 = (byte) game_over#80 (byte) game_over#62 (byte) game_over#71 (byte) game_over#50 (byte) game_over#37 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 -Alias (byte*) current_piece_gfx#38 = (byte*) current_piece_gfx#7 (byte*~) play_spawn_current::$4 (byte*) current_piece_gfx#56 (byte*) current_piece_gfx#39 +Alias (byte*) current_piece_gfx#38 = (byte*) current_piece_gfx#7 (byte*~) play_spawn_current::$4 (byte*) current_piece_gfx#55 (byte*) current_piece_gfx#39 Alias (byte) play_collision::return#10 = (byte) play_collision::return#16 Alias (byte*) current_piece#33 = (byte*) current_piece#47 (byte*) current_piece#5 (byte*) current_piece#34 -Alias (byte) current_piece_char#29 = (byte) current_piece_char#42 (byte) current_piece_char#4 (byte) current_piece_char#30 +Alias (byte) current_piece_char#29 = (byte) current_piece_char#43 (byte) current_piece_char#4 (byte) current_piece_char#30 Alias (byte) current_orientation#43 = (byte) current_orientation#55 (byte) current_orientation#8 (byte) current_orientation#44 Alias (byte) current_xpos#51 = (byte) current_xpos#70 (byte) current_xpos#8 (byte) current_xpos#52 Alias (byte) current_ypos#42 = (byte) current_ypos#55 (byte) current_ypos#5 (byte) current_ypos#43 @@ -7450,10 +7392,10 @@ Alias (byte) render_screen_show#22 = (byte) render_screen_show#27 Alias (byte) render_screen_render#24 = (byte) render_screen_render#32 Alias (byte) current_movedown_slow#43 = (byte) current_movedown_slow#78 (byte) current_movedown_slow#83 (byte) current_movedown_slow#70 (byte) current_movedown_slow#57 Alias (byte*) current_piece#35 = (byte*) current_piece#76 (byte*) current_piece#82 (byte*) current_piece#70 (byte*) current_piece#61 (byte*) current_piece#48 -Alias (byte) current_piece_char#31 = (byte) current_piece_char#81 (byte) current_piece_char#89 (byte) current_piece_char#72 (byte) current_piece_char#59 (byte) current_piece_char#43 +Alias (byte) current_piece_char#31 = (byte) current_piece_char#81 (byte) current_piece_char#87 (byte) current_piece_char#72 (byte) current_piece_char#59 (byte) current_piece_char#44 Alias (byte) current_orientation#45 = (byte) current_orientation#82 (byte) current_orientation#86 (byte) current_orientation#76 (byte) current_orientation#68 (byte) current_orientation#56 -Alias (byte*) current_piece_gfx#102 = (byte*) current_piece_gfx#95 (byte*) current_piece_gfx#88 (byte*) current_piece_gfx#74 (byte*) current_piece_gfx#57 (byte*) current_piece_gfx#40 -Alias (byte) current_xpos#108 = (byte) current_xpos#112 (byte) current_xpos#99 (byte) current_xpos#89 (byte) current_xpos#71 (byte) current_xpos#53 +Alias (byte*) current_piece_gfx#100 = (byte*) current_piece_gfx#93 (byte*) current_piece_gfx#86 (byte*) current_piece_gfx#72 (byte*) current_piece_gfx#56 (byte*) current_piece_gfx#40 +Alias (byte) current_xpos#106 = (byte) current_xpos#110 (byte) current_xpos#98 (byte) current_xpos#89 (byte) current_xpos#71 (byte) current_xpos#53 Alias (byte) current_ypos#44 = (byte) current_ypos#82 (byte) current_ypos#86 (byte) current_ypos#75 (byte) current_ypos#68 (byte) current_ypos#56 Alias (byte) game_over#28 = (byte) game_over#72 (byte) game_over#81 (byte) game_over#63 (byte) game_over#51 (byte) game_over#38 Alias (byte) level#49 = (byte) level#89 (byte) level#93 (byte) level#81 (byte) level#72 (byte) level#53 (byte) level#82 (byte) level#73 (byte) level#61 @@ -7465,12 +7407,12 @@ Alias (word) lines_bcd#43 = (word) lines_bcd#89 (word) lines_bcd#90 (word) lines Alias (dword) score_bcd#43 = (dword) score_bcd#85 (dword) score_bcd#86 (dword) score_bcd#84 (dword) score_bcd#80 (dword) score_bcd#77 (dword) score_bcd#70 (dword) score_bcd#63 (dword) score_bcd#54 Alias (byte) level_bcd#101 = (byte) level_bcd#102 (byte) level_bcd#103 (byte) level_bcd#97 (byte) level_bcd#92 (byte) level_bcd#83 (byte) level_bcd#75 (byte) level_bcd#65 (byte) level_bcd#53 Alias (byte) render_screen_show#14 = (byte) render_screen_show#5 (byte) render_screen_show#57 (byte) render_screen_show#54 (byte) render_screen_show#49 (byte) render_screen_show#44 (byte) render_screen_show#36 (byte) render_screen_show#29 -Alias (byte) render_screen_render#15 = (byte) render_screen_render#5 (byte) render_screen_render#52 (byte) render_screen_render#47 (byte) render_screen_render#41 (byte) render_screen_render#28 (byte) render_screen_render#37 (byte) render_screen_render#34 +Alias (byte) render_screen_render#15 = (byte) render_screen_render#5 (byte) render_screen_render#50 (byte) render_screen_render#46 (byte) render_screen_render#41 (byte) render_screen_render#28 (byte) render_screen_render#37 (byte) render_screen_render#34 Alias (byte) current_movedown_slow#12 = (byte) current_movedown_slow#25 (byte) current_movedown_slow#79 (byte) current_movedown_slow#71 (byte) current_movedown_slow#59 Alias (byte*) current_piece#18 = (byte*) current_piece#7 (byte*) current_piece#62 (byte*) current_piece#50 -Alias (byte) current_piece_char#17 = (byte) current_piece_char#6 (byte) current_piece_char#60 (byte) current_piece_char#45 +Alias (byte) current_piece_char#17 = (byte) current_piece_char#6 (byte) current_piece_char#60 (byte) current_piece_char#46 Alias (byte) current_orientation#10 = (byte) current_orientation#26 (byte) current_orientation#69 (byte) current_orientation#58 -Alias (byte*) current_piece_gfx#22 = (byte*) current_piece_gfx#9 (byte*) current_piece_gfx#75 (byte*) current_piece_gfx#59 +Alias (byte*) current_piece_gfx#22 = (byte*) current_piece_gfx#9 (byte*) current_piece_gfx#73 (byte*) current_piece_gfx#58 Alias (byte) current_xpos#10 = (byte) current_xpos#29 (byte) current_xpos#77 (byte) current_xpos#73 Alias (byte) current_ypos#23 = (byte) current_ypos#7 (byte) current_ypos#27 (byte) current_ypos#58 Alias (byte) game_over#16 = (byte) game_over#7 (byte) game_over#52 (byte) game_over#40 @@ -7487,11 +7429,11 @@ Alias (byte) level#10 = (byte) level#94 (byte) level#37 (byte) level#23 Alias (byte) current_movedown_slow#14 = (byte) current_movedown_slow#89 (byte) current_movedown_slow#45 (byte) current_movedown_slow#27 Alias (byte) level_bcd#11 = (byte) level_bcd#98 (byte) level_bcd#40 (byte) level_bcd#24 Alias (byte*) current_piece#20 = (byte*) current_piece#85 (byte*) current_piece#37 (byte*) current_piece#9 -Alias (byte) current_piece_char#19 = (byte) current_piece_char#93 (byte) current_piece_char#33 (byte) current_piece_char#8 +Alias (byte) current_piece_char#19 = (byte) current_piece_char#91 (byte) current_piece_char#33 (byte) current_piece_char#8 Alias (byte) current_orientation#12 = (byte) current_orientation#89 (byte) current_orientation#47 (byte) current_orientation#28 -Alias (byte*) current_piece_gfx#105 = (byte*) current_piece_gfx#42 (byte*) current_piece_gfx#24 (byte*) current_piece_gfx#11 -Alias (byte) current_xpos#115 = (byte) current_xpos#55 (byte) current_xpos#31 (byte) current_xpos#12 -Alias (byte) render_screen_render#17 = (byte) render_screen_render#63 (byte) render_screen_render#25 (byte) render_screen_render#7 +Alias (byte*) current_piece_gfx#103 = (byte*) current_piece_gfx#42 (byte*) current_piece_gfx#24 (byte*) current_piece_gfx#11 +Alias (byte) current_xpos#113 = (byte) current_xpos#55 (byte) current_xpos#31 (byte) current_xpos#12 +Alias (byte) render_screen_render#17 = (byte) render_screen_render#61 (byte) render_screen_render#25 (byte) render_screen_render#7 Alias (byte) render_screen_show#18 = (byte) render_screen_show#38 (byte) render_screen_show#30 (byte) render_screen_show#58 (byte) render_screen_show#55 (byte) render_screen_show#51 (byte) render_screen_show#50 (byte) render_screen_show#45 Alias (byte) render_screen_showing#12 = (byte) render_screen_showing#24 (byte) render_screen_showing#19 Alias (byte) keyboard_events_size#26 = (byte) keyboard_events_size#51 (byte) keyboard_events_size#42 (byte) keyboard_events_size#35 @@ -7505,11 +7447,11 @@ Alias (byte) level#36 = (byte) level#95 (byte) level#90 (byte) level#83 (byte) l Alias (byte) current_movedown_slow#44 = (byte) current_movedown_slow#90 (byte) current_movedown_slow#87 (byte) current_movedown_slow#84 (byte) current_movedown_slow#80 (byte) current_movedown_slow#72 (byte) current_movedown_slow#61 Alias (byte) level_bcd#39 = (byte) level_bcd#99 (byte) level_bcd#93 (byte) level_bcd#84 (byte) level_bcd#76 (byte) level_bcd#66 (byte) level_bcd#55 Alias (byte*) current_piece#36 = (byte*) current_piece#86 (byte*) current_piece#83 (byte*) current_piece#77 (byte*) current_piece#71 (byte*) current_piece#63 (byte*) current_piece#52 -Alias (byte) current_piece_char#32 = (byte) current_piece_char#94 (byte) current_piece_char#90 (byte) current_piece_char#82 (byte) current_piece_char#73 (byte) current_piece_char#61 (byte) current_piece_char#47 +Alias (byte) current_piece_char#32 = (byte) current_piece_char#92 (byte) current_piece_char#88 (byte) current_piece_char#82 (byte) current_piece_char#73 (byte) current_piece_char#61 (byte) current_piece_char#48 Alias (byte) current_orientation#46 = (byte) current_orientation#90 (byte) current_orientation#87 (byte) current_orientation#83 (byte) current_orientation#77 (byte) current_orientation#70 (byte) current_orientation#60 -Alias (byte*) current_piece_gfx#103 = (byte*) current_piece_gfx#106 (byte*) current_piece_gfx#96 (byte*) current_piece_gfx#89 (byte*) current_piece_gfx#76 (byte*) current_piece_gfx#61 (byte*) current_piece_gfx#41 -Alias (byte) current_xpos#100 = (byte) current_xpos#116 (byte) current_xpos#113 (byte) current_xpos#109 (byte) current_xpos#90 (byte) current_xpos#75 (byte) current_xpos#54 -Alias (byte) render_screen_render#48 = (byte) render_screen_render#64 (byte) render_screen_render#62 (byte) render_screen_render#61 (byte) render_screen_render#59 (byte) render_screen_render#57 (byte) render_screen_render#54 (byte) render_screen_render#53 +Alias (byte*) current_piece_gfx#101 = (byte*) current_piece_gfx#104 (byte*) current_piece_gfx#94 (byte*) current_piece_gfx#87 (byte*) current_piece_gfx#74 (byte*) current_piece_gfx#60 (byte*) current_piece_gfx#41 +Alias (byte) current_xpos#107 = (byte) current_xpos#114 (byte) current_xpos#111 (byte) current_xpos#99 (byte) current_xpos#90 (byte) current_xpos#75 (byte) current_xpos#54 +Alias (byte) render_screen_render#47 = (byte) render_screen_render#62 (byte) render_screen_render#60 (byte) render_screen_render#59 (byte) render_screen_render#57 (byte) render_screen_render#55 (byte) render_screen_render#52 (byte) render_screen_render#51 Alias (byte) render_screen_showing#29 = (byte) render_screen_showing#3 (byte) render_screen_showing#8 (byte) render_screen_showing#40 (byte) render_screen_showing#35 (byte) render_screen_showing#34 Alias (byte) keyboard_events_size#17 = (byte) keyboard_events_size#6 Alias (byte) keyboard_modifiers#15 = (byte) keyboard_modifiers#7 (byte) keyboard_modifiers#49 (byte) keyboard_modifiers#48 (byte) keyboard_modifiers#43 @@ -7533,13 +7475,13 @@ Alias (byte) game_over#18 = (byte) game_over#8 Alias (byte) main::render#1 = (byte~) main::$13 Alias (byte) main::render#3 = (byte) main::render#4 Alias (byte) render_screen_show#46 = (byte) render_screen_show#52 -Alias (byte) render_screen_render#49 = (byte) render_screen_render#55 +Alias (byte) render_screen_render#48 = (byte) render_screen_render#53 Alias (byte) current_movedown_slow#81 = (byte) current_movedown_slow#85 Alias (byte*) current_piece#72 = (byte*) current_piece#78 Alias (byte) current_piece_char#74 = (byte) current_piece_char#83 Alias (byte) current_orientation#78 = (byte) current_orientation#84 -Alias (byte*) current_piece_gfx#90 = (byte*) current_piece_gfx#97 -Alias (byte) current_xpos#101 = (byte) current_xpos#110 +Alias (byte*) current_piece_gfx#88 = (byte*) current_piece_gfx#95 +Alias (byte) current_xpos#100 = (byte) current_xpos#108 Alias (byte) current_ypos#77 = (byte) current_ypos#84 Alias (byte) game_over#65 = (byte) game_over#75 Alias (byte) render_screen_showing#30 = (byte) render_screen_showing#36 @@ -7554,10 +7496,10 @@ Alias (byte) render_screen_show#21 = (byte) render_screen_show#28 (byte) render_ Alias (byte) render_screen_render#19 = (byte) render_screen_render#33 (byte) render_screen_render#42 (byte) render_screen_render#27 (byte) render_screen_render#35 (byte) render_screen_render#20 Alias (byte) current_movedown_slow#58 = (byte) current_movedown_slow#73 (byte) current_movedown_slow#88 (byte) current_movedown_slow#86 (byte) current_movedown_slow#82 (byte) current_movedown_slow#74 (byte) current_movedown_slow#60 Alias (byte*) current_piece#49 = (byte*) current_piece#64 (byte*) current_piece#84 (byte*) current_piece#79 (byte*) current_piece#73 (byte*) current_piece#65 (byte*) current_piece#51 -Alias (byte) current_piece_char#44 = (byte) current_piece_char#62 (byte) current_piece_char#91 (byte) current_piece_char#84 (byte) current_piece_char#75 (byte) current_piece_char#63 (byte) current_piece_char#46 +Alias (byte) current_piece_char#45 = (byte) current_piece_char#62 (byte) current_piece_char#89 (byte) current_piece_char#76 (byte) current_piece_char#75 (byte) current_piece_char#63 (byte) current_piece_char#47 Alias (byte) current_orientation#57 = (byte) current_orientation#71 (byte) current_orientation#88 (byte) current_orientation#85 (byte) current_orientation#79 (byte) current_orientation#72 (byte) current_orientation#59 -Alias (byte*) current_piece_gfx#58 = (byte*) current_piece_gfx#77 (byte*) current_piece_gfx#98 (byte*) current_piece_gfx#79 (byte*) current_piece_gfx#91 (byte*) current_piece_gfx#78 (byte*) current_piece_gfx#60 -Alias (byte) current_xpos#102 = (byte) current_xpos#72 (byte) current_xpos#91 (byte) current_xpos#78 (byte) current_xpos#103 (byte) current_xpos#92 (byte) current_xpos#74 +Alias (byte*) current_piece_gfx#57 = (byte*) current_piece_gfx#75 (byte*) current_piece_gfx#96 (byte*) current_piece_gfx#77 (byte*) current_piece_gfx#89 (byte*) current_piece_gfx#76 (byte*) current_piece_gfx#59 +Alias (byte) current_xpos#101 = (byte) current_xpos#72 (byte) current_xpos#91 (byte) current_xpos#78 (byte) current_xpos#102 (byte) current_xpos#92 (byte) current_xpos#74 Alias (byte) current_ypos#28 = (byte) current_ypos#57 (byte) current_ypos#70 (byte) current_ypos#61 (byte) current_ypos#78 (byte) current_ypos#71 (byte) current_ypos#59 Alias (byte) game_over#39 = (byte) game_over#54 (byte) game_over#82 (byte) game_over#76 (byte) game_over#66 (byte) game_over#55 (byte) game_over#41 Alias (byte) render_screen_showing#16 = (byte) render_screen_showing#25 (byte) render_screen_showing#41 (byte) render_screen_showing#37 (byte) render_screen_showing#31 (byte) render_screen_showing#26 (byte) render_screen_showing#18 @@ -7606,14 +7548,14 @@ Alias (byte) level_bcd#13 = (byte) level_bcd#87 Alias (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#7 Alias (byte) render_moving::xpos#2 = (byte) render_moving::xpos#3 Alias (byte) render_moving::c#2 = (byte) render_moving::c#3 -Alias (byte) render_moving::ypos2#10 = (byte) render_moving::ypos2#5 -Alias (byte) render_moving::l#10 = (byte) render_moving::l#3 +Alias (byte) render_moving::ypos2#5 = (byte) render_moving::ypos2#7 +Alias (byte) render_moving::l#3 = (byte) render_moving::l#6 Alias (byte*) current_piece_gfx#13 = (byte*) current_piece_gfx#27 -Alias (byte) render_moving::i#10 = (byte) render_moving::i#7 +Alias (byte) render_moving::i#2 = (byte) render_moving::i#7 +Alias (byte) current_piece_char#10 = (byte) current_piece_char#36 +Alias (byte*) render_moving::screen_line#1 = (byte*) render_moving::screen_line#3 Alias (byte) render_screen_render#38 = (byte) render_screen_render#43 -Alias (byte) current_xpos#104 = (byte) current_xpos#79 -Alias (byte) current_piece_char#10 = (byte) current_piece_char#50 -Alias (byte*) render_moving::screen_line#1 = (byte*) render_moving::screen_line#4 +Alias (byte) current_xpos#79 = (byte) current_xpos#93 Alias (byte) irq_cnt#10 = (byte) irq_cnt#4 Alias (byte) irq_raster_next#11 = (byte) irq_raster_next#14 Alias (byte) irq_sprite_ypos#10 = (byte) irq_sprite_ypos#15 @@ -7631,15 +7573,15 @@ Alias (byte) game_over#1 = (byte) game_over#12 Alias (byte) current_movedown_counter#12 = (byte) current_movedown_counter#13 (byte) current_movedown_counter#3 (byte) current_movedown_counter#24 Alias (byte) current_movedown_slow#19 = (byte) current_movedown_slow#33 (byte) current_movedown_slow#64 (byte) current_movedown_slow#36 Alias (byte) current_ypos#14 = (byte) current_ypos#63 (byte) current_ypos#80 (byte) current_ypos#49 -Alias (byte) current_xpos#106 = (byte) current_xpos#81 (byte) current_xpos#59 (byte) current_xpos#18 +Alias (byte) current_xpos#104 = (byte) current_xpos#81 (byte) current_xpos#59 (byte) current_xpos#18 Alias (byte) current_orientation#17 = (byte) current_orientation#62 (byte) current_orientation#80 (byte) current_orientation#50 Alias (word) lines_bcd#25 = (word) lines_bcd#61 (word) lines_bcd#78 (word) lines_bcd#49 Alias (dword) score_bcd#25 = (dword) score_bcd#59 (dword) score_bcd#75 (dword) score_bcd#49 Alias (byte) level#29 = (byte) level#66 (byte) level#87 (byte) level#55 Alias (byte) level_bcd#30 = (byte) level_bcd#71 (byte) level_bcd#90 (byte) level_bcd#59 Alias (byte*) current_piece#25 = (byte*) current_piece#66 (byte*) current_piece#80 (byte*) current_piece#55 -Alias (byte) current_piece_char#25 = (byte) current_piece_char#67 (byte) current_piece_char#87 (byte) current_piece_char#52 -Alias (byte*) current_piece_gfx#100 = (byte*) current_piece_gfx#82 (byte*) current_piece_gfx#66 (byte*) current_piece_gfx#31 +Alias (byte) current_piece_char#25 = (byte) current_piece_char#67 (byte) current_piece_char#85 (byte) current_piece_char#52 +Alias (byte*) current_piece_gfx#31 = (byte*) current_piece_gfx#80 (byte*) current_piece_gfx#98 (byte*) current_piece_gfx#64 Alias (byte) game_over#24 = (byte) game_over#57 (byte) game_over#78 (byte) game_over#45 Alias (byte) current_xpos#21 = (byte) current_xpos#45 Alias (byte) current_xpos#26 = (byte) current_xpos#47 @@ -7661,7 +7603,7 @@ Alias (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#37 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_char#15 = (byte) current_piece_char#41 +Alias (byte) current_piece_char#15 = (byte) current_piece_char#42 Alias (byte*) play_lock_current::playfield_line#1 = (byte*) play_lock_current::playfield_line#3 Alias (byte) current_xpos#50 = (byte) current_xpos#87 Alias (byte*) current_piece#17 = (byte*) current_piece#33 @@ -7701,12 +7643,12 @@ Self Phi Eliminated (byte*) render_screen_original::ocols#5 Self Phi Eliminated (byte) render_playfield::l#3 Self Phi Eliminated (byte) render_screen_render#22 Self Phi Eliminated (byte*) current_piece_gfx#13 -Self Phi Eliminated (byte) render_moving::ypos2#10 -Self Phi Eliminated (byte) render_moving::l#10 Self Phi Eliminated (byte) current_piece_char#10 Self Phi Eliminated (byte*) render_moving::screen_line#1 +Self Phi Eliminated (byte) render_moving::ypos2#5 +Self Phi Eliminated (byte) render_moving::l#3 Self Phi Eliminated (byte) render_screen_render#38 -Self Phi Eliminated (byte) current_xpos#104 +Self Phi Eliminated (byte) current_xpos#79 Self Phi Eliminated (byte) sprites_irq::raster_sprite_gfx_modify#1 Self Phi Eliminated (byte) irq_sprite_ptr#10 Self Phi Eliminated (byte) render_screen_showing#11 @@ -7748,18 +7690,18 @@ Self Phi Eliminated (byte) level_bcd#39 Self Phi Eliminated (byte*) current_piece#36 Self Phi Eliminated (byte) current_piece_char#32 Self Phi Eliminated (byte) current_orientation#46 -Self Phi Eliminated (byte*) current_piece_gfx#103 -Self Phi Eliminated (byte) current_xpos#100 -Self Phi Eliminated (byte) render_screen_render#48 +Self Phi Eliminated (byte*) current_piece_gfx#101 +Self Phi Eliminated (byte) current_xpos#107 +Self Phi Eliminated (byte) render_screen_render#47 Self Phi Eliminated (byte) main::render#3 Self Phi Eliminated (byte) render_screen_show#46 -Self Phi Eliminated (byte) render_screen_render#49 +Self Phi Eliminated (byte) render_screen_render#48 Self Phi Eliminated (byte) current_movedown_slow#81 Self Phi Eliminated (byte*) current_piece#72 Self Phi Eliminated (byte) current_piece_char#74 Self Phi Eliminated (byte) current_orientation#78 -Self Phi Eliminated (byte*) current_piece_gfx#90 -Self Phi Eliminated (byte) current_xpos#101 +Self Phi Eliminated (byte*) current_piece_gfx#88 +Self Phi Eliminated (byte) current_xpos#100 Self Phi Eliminated (byte) current_ypos#77 Self Phi Eliminated (byte) game_over#65 Self Phi Eliminated (byte) render_screen_showing#30 @@ -7771,9 +7713,9 @@ Self Phi Eliminated (dword) score_bcd#65 Self Phi Eliminated (byte) level#75 Self Phi Eliminated (byte) level_bcd#77 Successful SSA optimization Pass2SelfPhiElimination -Redundant Phi (byte) current_piece_char#100 VOID -Redundant Phi (byte*) current_piece_gfx#104 VOID -Redundant Phi (byte) current_xpos#105 VOID +Redundant Phi (byte) current_piece_char#34 VOID +Redundant Phi (byte*) current_piece_gfx#102 VOID +Redundant Phi (byte) current_xpos#103 VOID Redundant Phi (byte) current_ypos#47 VOID Redundant Phi (byte) keyboard_matrix_read::rowid#1 (byte) keyboard_matrix_read::rowid#0 Redundant Phi (byte) keyboard_events_size#55 (byte) keyboard_events_size#26 @@ -7802,12 +7744,12 @@ Redundant Phi (byte*) render_screen_original::ocols#5 (byte*) render_screen_orig Redundant Phi (byte) render_playfield::l#3 (byte) render_playfield::l#2 Redundant Phi (byte) render_screen_render#22 (byte) render_screen_render#13 Redundant Phi (byte*) current_piece_gfx#13 (byte*) current_piece_gfx#26 -Redundant Phi (byte) render_moving::ypos2#10 (byte) render_moving::ypos2#2 -Redundant Phi (byte) render_moving::l#10 (byte) render_moving::l#4 -Redundant Phi (byte) current_piece_char#10 (byte) current_piece_char#49 +Redundant Phi (byte) current_piece_char#10 (byte) current_piece_char#35 Redundant Phi (byte*) render_moving::screen_line#1 (byte*) render_moving::screen_line#0 +Redundant Phi (byte) render_moving::ypos2#5 (byte) render_moving::ypos2#2 +Redundant Phi (byte) render_moving::l#3 (byte) render_moving::l#4 Redundant Phi (byte) render_screen_render#38 (byte) render_screen_render#14 -Redundant Phi (byte) current_xpos#104 (byte) current_xpos#14 +Redundant Phi (byte) current_xpos#79 (byte) current_xpos#14 Redundant Phi (byte) irq_sprite_ypos#24 (byte) irq_sprite_ypos#0 Redundant Phi (byte) irq_raster_next#24 (byte) irq_raster_next#0 Redundant Phi (byte) irq_sprite_ypos#22 (byte) irq_sprite_ypos#24 @@ -7844,8 +7786,8 @@ Redundant Phi (byte) level_bcd#27 (byte) level_bcd#39 Redundant Phi (byte*) current_piece#22 (byte*) current_piece#36 Redundant Phi (byte) current_piece_char#22 (byte) current_piece_char#32 Redundant Phi (byte) current_orientation#30 (byte) current_orientation#46 -Redundant Phi (byte*) current_piece_gfx#28 (byte*) current_piece_gfx#103 -Redundant Phi (byte) current_xpos#34 (byte) current_xpos#100 +Redundant Phi (byte*) current_piece_gfx#28 (byte*) current_piece_gfx#101 +Redundant Phi (byte) current_xpos#34 (byte) current_xpos#107 Redundant Phi (byte) game_over#21 (byte) game_over#17 Redundant Phi (byte) current_movedown_counter#1 (byte) current_movedown_counter#14 Redundant Phi (byte) current_ypos#0 (byte) current_ypos#17 @@ -7867,7 +7809,7 @@ Redundant Phi (byte) current_movedown_counter#11 (byte) current_movedown_counter Redundant Phi (byte) play_move_down::key_event#1 (byte) play_move_down::key_event#0 Redundant Phi (byte) current_movedown_slow#19 (byte) current_movedown_slow#30 Redundant Phi (byte) current_ypos#14 (byte) current_ypos#29 -Redundant Phi (byte) current_xpos#106 (byte) current_xpos#34 +Redundant Phi (byte) current_xpos#104 (byte) current_xpos#34 Redundant Phi (byte) current_orientation#17 (byte) current_orientation#30 Redundant Phi (word) lines_bcd#25 (word) lines_bcd#22 Redundant Phi (dword) score_bcd#25 (dword) score_bcd#22 @@ -7875,7 +7817,7 @@ Redundant Phi (byte) level#29 (byte) level#26 Redundant Phi (byte) level_bcd#30 (byte) level_bcd#27 Redundant Phi (byte*) current_piece#25 (byte*) current_piece#22 Redundant Phi (byte) current_piece_char#25 (byte) current_piece_char#22 -Redundant Phi (byte*) current_piece_gfx#100 (byte*) current_piece_gfx#28 +Redundant Phi (byte*) current_piece_gfx#31 (byte*) current_piece_gfx#28 Redundant Phi (byte) game_over#24 (byte) game_over#21 Redundant Phi (word) lines_bcd#14 (word) lines_bcd#17 Redundant Phi (dword) score_bcd#13 (dword) score_bcd#16 @@ -7909,11 +7851,11 @@ Redundant Phi (byte) play_collision::l#10 (byte) play_collision::l#6 Redundant Phi (byte) play_collision::xpos#10 (byte) play_collision::col#0 Redundant Phi (byte*) play_collision::playfield_line#1 (byte*) play_collision::playfield_line#0 Redundant Phi (byte) current_ypos#21 (byte) current_ypos#14 -Redundant Phi (byte) current_xpos#49 (byte) current_xpos#106 -Redundant Phi (byte*) current_piece_gfx#53 (byte*) current_piece_gfx#100 +Redundant Phi (byte) current_xpos#49 (byte) current_xpos#104 +Redundant Phi (byte*) current_piece_gfx#52 (byte*) current_piece_gfx#31 Redundant Phi (byte) current_piece_char#57 (byte) current_piece_char#25 Redundant Phi (byte*) current_piece_gfx#20 (byte*) current_piece_gfx#36 -Redundant Phi (byte) current_piece_char#15 (byte) current_piece_char#40 +Redundant Phi (byte) current_piece_char#15 (byte) current_piece_char#41 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 @@ -7940,10 +7882,10 @@ Redundant Phi (byte) render_screen_show#22 (byte) render_screen_show#0 Redundant Phi (byte) render_screen_render#24 (byte) render_screen_render#0 Redundant Phi (byte) current_movedown_slow#43 (byte) current_movedown_slow#0 Redundant Phi (byte*) current_piece#35 (byte*) current_piece#0 -Redundant Phi (byte) current_piece_char#31 (byte) current_piece_char#100 +Redundant Phi (byte) current_piece_char#31 (byte) current_piece_char#34 Redundant Phi (byte) current_orientation#45 (byte) current_orientation#0 -Redundant Phi (byte*) current_piece_gfx#102 (byte*) current_piece_gfx#104 -Redundant Phi (byte) current_xpos#108 (byte) current_xpos#105 +Redundant Phi (byte*) current_piece_gfx#100 (byte*) current_piece_gfx#102 +Redundant Phi (byte) current_xpos#106 (byte) current_xpos#103 Redundant Phi (byte) current_ypos#44 (byte) current_ypos#47 Redundant Phi (byte) game_over#28 (byte) game_over#0 Redundant Phi (byte) level#49 (byte) level#0 @@ -7979,9 +7921,9 @@ Redundant Phi (byte) level_bcd#39 (byte) level_bcd#11 Redundant Phi (byte*) current_piece#36 (byte*) current_piece#20 Redundant Phi (byte) current_piece_char#32 (byte) current_piece_char#19 Redundant Phi (byte) current_orientation#46 (byte) current_orientation#12 -Redundant Phi (byte*) current_piece_gfx#103 (byte*) current_piece_gfx#105 -Redundant Phi (byte) current_xpos#100 (byte) current_xpos#115 -Redundant Phi (byte) render_screen_render#48 (byte) render_screen_render#17 +Redundant Phi (byte*) current_piece_gfx#101 (byte*) current_piece_gfx#103 +Redundant Phi (byte) current_xpos#107 (byte) current_xpos#113 +Redundant Phi (byte) render_screen_render#47 (byte) render_screen_render#17 Redundant Phi (byte) render_screen_showing#29 (byte) render_screen_showing#2 Redundant Phi (byte) keyboard_events_size#17 (byte) keyboard_events_size#13 Redundant Phi (byte) keyboard_modifiers#15 (byte) keyboard_modifiers#14 @@ -8001,13 +7943,13 @@ Redundant Phi (byte) current_xpos#11 (byte) current_xpos#17 Redundant Phi (byte) game_over#18 (byte) game_over#1 Redundant Phi (byte) main::render#3 (byte) main::render#0 Redundant Phi (byte) render_screen_show#46 (byte) render_screen_show#18 -Redundant Phi (byte) render_screen_render#49 (byte) render_screen_render#48 +Redundant Phi (byte) render_screen_render#48 (byte) render_screen_render#47 Redundant Phi (byte) current_movedown_slow#81 (byte) current_movedown_slow#44 Redundant Phi (byte*) current_piece#72 (byte*) current_piece#36 Redundant Phi (byte) current_piece_char#74 (byte) current_piece_char#32 Redundant Phi (byte) current_orientation#78 (byte) current_orientation#46 -Redundant Phi (byte*) current_piece_gfx#90 (byte*) current_piece_gfx#103 -Redundant Phi (byte) current_xpos#101 (byte) current_xpos#100 +Redundant Phi (byte*) current_piece_gfx#88 (byte*) current_piece_gfx#101 +Redundant Phi (byte) current_xpos#100 (byte) current_xpos#107 Redundant Phi (byte) current_ypos#77 (byte) current_ypos#45 Redundant Phi (byte) game_over#65 (byte) game_over#17 Redundant Phi (byte) render_screen_showing#30 (byte) render_screen_showing#29 @@ -8029,8 +7971,8 @@ Redundant Phi (byte) current_movedown_slow#15 (byte) current_movedown_slow#14 Redundant Phi (byte*) current_piece#10 (byte*) current_piece#20 Redundant Phi (byte) current_piece_char#20 (byte) current_piece_char#19 Redundant Phi (byte) current_orientation#13 (byte) current_orientation#12 -Redundant Phi (byte*) current_piece_gfx#12 (byte*) current_piece_gfx#105 -Redundant Phi (byte) current_xpos#13 (byte) current_xpos#115 +Redundant Phi (byte*) current_piece_gfx#12 (byte*) current_piece_gfx#103 +Redundant Phi (byte) current_xpos#13 (byte) current_xpos#113 Redundant Phi (byte) current_ypos#10 (byte) current_ypos#25 Redundant Phi (byte) game_over#10 (byte) game_over#19 Redundant Phi (byte) render_screen_showing#10 (byte) render_screen_showing#13 @@ -8047,8 +7989,8 @@ Redundant Phi (byte) render_moving::ypos2#4 (byte) render_moving::ypos2#2 Redundant Phi (byte) render_moving::l#2 (byte) render_moving::l#4 Redundant Phi (byte) render_screen_render#31 (byte) render_screen_render#14 Redundant Phi (byte) current_xpos#58 (byte) current_xpos#14 -Redundant Phi (byte*) current_piece_gfx#64 (byte*) current_piece_gfx#26 -Redundant Phi (byte) current_piece_char#77 (byte) current_piece_char#49 +Redundant Phi (byte*) current_piece_gfx#63 (byte*) current_piece_gfx#26 +Redundant Phi (byte) current_piece_char#65 (byte) current_piece_char#35 Redundant Phi (byte) render_screen_show#21 (byte) render_screen_show#16 Redundant Phi (byte) render_screen_render#19 (byte) render_screen_render#17 Redundant Phi (byte) render_screen_showing#16 (byte) render_screen_showing#2 @@ -8076,59 +8018,57 @@ Simple Condition (bool~) render_screen_original::$6 [568] if((byte) render_scree Simple Condition (bool~) render_screen_original::$7 [572] if((byte) render_screen_original::y#1!=rangelast(0,24)) goto render_screen_original::@1 Simple Condition (bool~) render_playfield::$5 [591] if((byte) render_playfield::c#1!=rangelast(0,render_playfield::$4)) goto render_playfield::@2 Simple Condition (bool~) render_playfield::$6 [595] if((byte) render_playfield::l#1!=rangelast(2,render_playfield::$1)) goto render_playfield::@1 -Simple Condition (bool~) render_moving::$11 [619] if((byte) render_moving::l#1!=rangelast(0,3)) goto render_moving::@1 -Simple Condition (bool~) render_moving::$7 [625] if((byte) render_moving::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_moving::@5 -Simple Condition (bool~) render_moving::$10 [630] if((byte) render_moving::c#1!=rangelast(0,3)) goto render_moving::@4 -Simple Condition (bool~) render_moving::$9 [634] if((byte) render_moving::xpos#2>=(byte) PLAYFIELD_COLS#0) goto render_moving::@6 -Simple Condition (bool~) sprites_init::$4 [658] if((byte) sprites_init::s#1!=rangelast(0,3)) goto sprites_init::@1 -Simple Condition (bool~) sprites_irq::$1 [704] if(*((byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 -Simple Condition (bool~) sprites_irq::$2 [708] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 -Simple Condition (bool~) sprites_irq::$3 [726] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 -Simple Condition (bool~) sprites_irq::$4 [743] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 -Simple Condition (bool~) play_init::$2 [819] if((byte) play_init::j#1!=rangelast(0,play_init::$0)) goto play_init::@1 -Simple Condition (bool~) play_init::$5 [831] if((byte) play_init::b#1!=rangelast(0,4)) goto play_init::@2 -Simple Condition (bool~) play_movement::$2 [858] if((byte) game_over#14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movement::@1 -Simple Condition (bool~) play_move_down::$1 [899] if((byte) play_move_down::key_event#0!=(byte) KEY_SPACE#0) goto play_move_down::@1 -Simple Condition (bool~) play_move_down::$4 [908] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 -Simple Condition (bool~) play_move_down::$8 [914] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@4 -Simple Condition (bool~) play_move_down::$6 [918] if((byte) current_movedown_counter#12<(byte) current_movedown_fast#0) goto play_move_down::@3 -Simple Condition (bool~) play_move_down::$10 [925] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@5 -Simple Condition (bool~) play_move_down::$13 [940] if((byte~) play_move_down::$12==(byte) COLLISION_NONE#0) goto play_move_down::@6 -Simple Condition (bool~) play_move_leftright::$0 [989] if((byte) play_move_leftright::key_event#0==(byte) KEY_COMMA#0) goto play_move_leftright::@1 -Simple Condition (bool~) play_move_leftright::$10 [1001] if((byte~) play_move_leftright::$8!=(byte) COLLISION_NONE#0) goto play_move_leftright::@5 -Simple Condition (bool~) play_move_leftright::$2 [1005] if((byte) play_move_leftright::key_event#0!=(byte) KEY_DOT#0) goto play_move_leftright::@2 -Simple Condition (bool~) play_move_leftright::$6 [1018] if((byte~) play_move_leftright::$4!=(byte) COLLISION_NONE#0) goto play_move_leftright::@3 -Simple Condition (bool~) play_move_rotate::$0 [1036] if((byte) play_move_rotate::key_event#0==(byte) KEY_Z#0) goto play_move_rotate::@1 -Simple Condition (bool~) play_move_rotate::$1 [1043] if((byte) play_move_rotate::key_event#0==(byte) KEY_X#0) goto play_move_rotate::@2 -Simple Condition (bool~) play_move_rotate::$8 [1065] if((byte~) play_move_rotate::$6!=(byte) COLLISION_NONE#0) goto play_move_rotate::@5 -Simple Condition (bool~) play_collision::$3 [1094] if(*((byte*) play_collision::piece_gfx#2 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -Simple Condition (bool~) play_collision::$14 [1099] if((byte) play_collision::c#1!=rangelast(0,3)) goto play_collision::@2 -Simple Condition (bool~) play_collision::$6 [1104] if((byte) play_collision::ypos2#2<(byte/signed word/word/dword/signed dword~) play_collision::$4) goto play_collision::@4 -Simple Condition (bool~) play_collision::$9 [1109] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -Simple Condition (bool~) play_collision::$11 [1117] if((byte) play_collision::col#2<(byte) PLAYFIELD_COLS#0) goto play_collision::@6 -Simple Condition (bool~) play_collision::$13 [1122] 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::@7 -Simple Condition (bool~) play_collision::$15 [1130] if((byte) play_collision::l#1!=rangelast(0,3)) goto play_collision::@1 -Simple Condition (bool~) play_lock_current::$2 [1145] if(*((byte*) current_piece_gfx#36 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -Simple Condition (bool~) play_lock_current::$3 [1150] if((byte) play_lock_current::c#1!=rangelast(0,3)) goto play_lock_current::@2 -Simple Condition (bool~) play_lock_current::$4 [1157] if((byte) play_lock_current::l#1!=rangelast(0,3)) goto play_lock_current::@1 -Simple Condition (bool~) play_spawn_current::$0 [1163] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 -Simple Condition (bool~) play_spawn_current::$7 [1189] if((byte~) play_spawn_current::$5!=(byte) COLLISION_PLAYFIELD#0) goto play_spawn_current::@4 -Simple Condition (bool~) play_remove_lines::$7 [1220] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@3 -Simple Condition (bool~) play_remove_lines::$8 [1226] if((byte) play_remove_lines::x#1!=rangelast(0,play_remove_lines::$5)) goto play_remove_lines::@2 -Simple Condition (bool~) play_remove_lines::$10 [1232] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 -Simple Condition (bool~) play_remove_lines::$12 [1236] if((byte) play_remove_lines::y#1!=rangelast(0,play_remove_lines::$4)) goto play_remove_lines::@1 -Simple Condition (bool~) play_remove_lines::$13 [1243] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 -Simple Condition (bool~) play_update_score::$1 [1255] if((byte) play_update_score::removed#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_update_score::@1 -Simple Condition (bool~) play_update_score::$8 [1272] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@2 -Simple Condition (bool~) play_increase_level::$0 [1290] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@1 -Simple Condition (bool~) play_increase_level::$3 [1300] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 -Simple Condition (bool~) play_increase_level::$5 [1312] if((byte) play_increase_level::b#1!=rangelast(0,4)) goto play_increase_level::@4 -Simple Condition (bool~) main::$8 [1353] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 -Simple Condition (bool~) main::$12 [1371] if((byte) game_over#19==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@7 -Simple Condition (bool~) main::$15 [1399] if((byte) main::render#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@12 +Simple Condition (bool~) render_moving::$1 [604] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@2 +Simple Condition (bool~) render_moving::$6 [616] if((byte) render_moving::l#1!=rangelast(0,3)) goto render_moving::@1 +Simple Condition (bool~) render_moving::$4 [622] if((byte) render_moving::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_moving::@5 +Simple Condition (bool~) render_moving::$5 [627] if((byte) render_moving::c#1!=rangelast(0,3)) goto render_moving::@4 +Simple Condition (bool~) sprites_init::$4 [650] if((byte) sprites_init::s#1!=rangelast(0,3)) goto sprites_init::@1 +Simple Condition (bool~) sprites_irq::$1 [696] if(*((byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 +Simple Condition (bool~) sprites_irq::$2 [700] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 +Simple Condition (bool~) sprites_irq::$3 [718] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 +Simple Condition (bool~) sprites_irq::$4 [735] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 +Simple Condition (bool~) play_init::$2 [811] if((byte) play_init::j#1!=rangelast(0,play_init::$0)) goto play_init::@1 +Simple Condition (bool~) play_init::$5 [823] if((byte) play_init::b#1!=rangelast(0,4)) goto play_init::@2 +Simple Condition (bool~) play_movement::$2 [850] if((byte) game_over#14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movement::@1 +Simple Condition (bool~) play_move_down::$1 [891] if((byte) play_move_down::key_event#0!=(byte) KEY_SPACE#0) goto play_move_down::@1 +Simple Condition (bool~) play_move_down::$4 [900] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 +Simple Condition (bool~) play_move_down::$8 [906] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@4 +Simple Condition (bool~) play_move_down::$6 [910] if((byte) current_movedown_counter#12<(byte) current_movedown_fast#0) goto play_move_down::@3 +Simple Condition (bool~) play_move_down::$10 [917] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@5 +Simple Condition (bool~) play_move_down::$13 [932] if((byte~) play_move_down::$12==(byte) COLLISION_NONE#0) goto play_move_down::@6 +Simple Condition (bool~) play_move_leftright::$0 [981] if((byte) play_move_leftright::key_event#0==(byte) KEY_COMMA#0) goto play_move_leftright::@1 +Simple Condition (bool~) play_move_leftright::$10 [993] if((byte~) play_move_leftright::$8!=(byte) COLLISION_NONE#0) goto play_move_leftright::@5 +Simple Condition (bool~) play_move_leftright::$2 [997] if((byte) play_move_leftright::key_event#0!=(byte) KEY_DOT#0) goto play_move_leftright::@2 +Simple Condition (bool~) play_move_leftright::$6 [1010] if((byte~) play_move_leftright::$4!=(byte) COLLISION_NONE#0) goto play_move_leftright::@3 +Simple Condition (bool~) play_move_rotate::$0 [1028] if((byte) play_move_rotate::key_event#0==(byte) KEY_Z#0) goto play_move_rotate::@1 +Simple Condition (bool~) play_move_rotate::$1 [1035] if((byte) play_move_rotate::key_event#0==(byte) KEY_X#0) goto play_move_rotate::@2 +Simple Condition (bool~) play_move_rotate::$8 [1057] if((byte~) play_move_rotate::$6!=(byte) COLLISION_NONE#0) goto play_move_rotate::@5 +Simple Condition (bool~) play_collision::$3 [1086] if(*((byte*) play_collision::piece_gfx#2 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 +Simple Condition (bool~) play_collision::$14 [1091] if((byte) play_collision::c#1!=rangelast(0,3)) goto play_collision::@2 +Simple Condition (bool~) play_collision::$6 [1096] if((byte) play_collision::ypos2#2<(byte/signed word/word/dword/signed dword~) play_collision::$4) goto play_collision::@4 +Simple Condition (bool~) play_collision::$9 [1101] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 +Simple Condition (bool~) play_collision::$11 [1109] if((byte) play_collision::col#2<(byte) PLAYFIELD_COLS#0) goto play_collision::@6 +Simple Condition (bool~) play_collision::$13 [1114] 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::@7 +Simple Condition (bool~) play_collision::$15 [1122] if((byte) play_collision::l#1!=rangelast(0,3)) goto play_collision::@1 +Simple Condition (bool~) play_lock_current::$2 [1137] if(*((byte*) current_piece_gfx#36 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 +Simple Condition (bool~) play_lock_current::$3 [1142] if((byte) play_lock_current::c#1!=rangelast(0,3)) goto play_lock_current::@2 +Simple Condition (bool~) play_lock_current::$4 [1149] if((byte) play_lock_current::l#1!=rangelast(0,3)) goto play_lock_current::@1 +Simple Condition (bool~) play_spawn_current::$0 [1155] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 +Simple Condition (bool~) play_spawn_current::$7 [1181] if((byte~) play_spawn_current::$5!=(byte) COLLISION_PLAYFIELD#0) goto play_spawn_current::@4 +Simple Condition (bool~) play_remove_lines::$7 [1212] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@3 +Simple Condition (bool~) play_remove_lines::$8 [1218] if((byte) play_remove_lines::x#1!=rangelast(0,play_remove_lines::$5)) goto play_remove_lines::@2 +Simple Condition (bool~) play_remove_lines::$10 [1224] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 +Simple Condition (bool~) play_remove_lines::$12 [1228] if((byte) play_remove_lines::y#1!=rangelast(0,play_remove_lines::$4)) goto play_remove_lines::@1 +Simple Condition (bool~) play_remove_lines::$13 [1235] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 +Simple Condition (bool~) play_update_score::$1 [1247] if((byte) play_update_score::removed#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_update_score::@1 +Simple Condition (bool~) play_update_score::$8 [1264] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@2 +Simple Condition (bool~) play_increase_level::$0 [1282] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@1 +Simple Condition (bool~) play_increase_level::$3 [1292] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 +Simple Condition (bool~) play_increase_level::$5 [1304] if((byte) play_increase_level::b#1!=rangelast(0,4)) goto play_increase_level::@4 +Simple Condition (bool~) main::$8 [1345] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 +Simple Condition (bool~) main::$12 [1363] if((byte) game_over#19==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@7 +Simple Condition (bool~) main::$15 [1391] if((byte) main::render#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@12 Successful SSA optimization Pass2ConditionalJumpSimplification -Rewriting && if()-condition to two if()s [606] (bool~) render_moving::$4 ← (bool~) render_moving::$1 && (bool~) render_moving::$3 -Successful SSA optimization Pass2ConditionalAndOrRewriting Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 Constant (const byte*) PROCPORT#0 = ((byte*))1 @@ -8445,7 +8385,6 @@ Constant (const byte*) render_screen_original::cols#0 = COLS#0 Constant (const byte) render_playfield::i#0 = PLAYFIELD_COLS#0*2 Constant (const byte/signed word/word/dword/signed dword) render_playfield::$1 = PLAYFIELD_LINES#0-1 Constant (const byte/signed word/word/dword/signed dword) render_playfield::$4 = PLAYFIELD_COLS#0-1 -Constant (const byte/signed word/word/dword/signed dword) render_moving::$2 = 2*PLAYFIELD_LINES#0 Constant (const byte) sprites_init::xpos#0 = 24+sprites_init::$0 Constant (const byte/signed word/word/dword/signed dword) $4 = SPRITES_FIRST_YPOS#0+19 Constant (const byte/signed word/word/dword/signed dword) $5 = SPRITES_FIRST_YPOS#0+21 @@ -8555,7 +8494,7 @@ Consolidated array index constant in *(PLAYFIELD_SPRITE_PTRS_2#0+3) Consolidated array index constant in *(playfield_lines_idx#0+PLAYFIELD_LINES#0) Consolidated array index constant in *(MOVEDOWN_SLOW_SPEEDS#0+level#0) Successful SSA optimization Pass2ConstantAdditionElimination -if() condition always true - replacing block destination [496] if(true) goto main::@2 +if() condition always true - replacing block destination [493] if(true) goto main::@2 Removing PHI-reference to removed block (main::@8) in block main::@11 Removing PHI-reference to removed block (main::@8) in block main::@11 Removing PHI-reference to removed block (main::@8) in block main::@11 @@ -8570,7 +8509,7 @@ Removing PHI-reference to removed block (main::@8) in block main::@11 Removing PHI-reference to removed block (main::@8) in block main::@11 Removing PHI-reference to removed block (main::@8) in block main::@11 Removing PHI-reference to removed block (main::@8) in block main::@11 -if() condition always true - replacing block destination [508] if(true) goto main::@9 +if() condition always true - replacing block destination [505] if(true) goto main::@9 Successful SSA optimization Pass2ConstantIfs Successful SSA optimization PassNEliminateUnusedVars Successful SSA optimization PassNEliminateUnusedVars @@ -8631,7 +8570,6 @@ Culled Empty Block (label) render_show::@3 Culled Empty Block (label) render_show::toD0182_@return Culled Empty Block (label) render_show::@6 Culled Empty Block (label) render_score::@1 -Culled Empty Block (label) render_moving::@6 Culled Empty Block (label) toSpritePtr1_@return Culled Empty Block (label) sprites_irq::toSpritePtr2_@return Culled Empty Block (label) @25 @@ -8676,12 +8614,12 @@ Self Phi Eliminated (byte) render_screen_render#13 Self Phi Eliminated (byte) render_screen_render#14 Self Phi Eliminated (byte) current_xpos#14 Self Phi Eliminated (byte*) current_piece_gfx#26 -Self Phi Eliminated (byte) current_piece_char#49 +Self Phi Eliminated (byte) current_piece_char#35 Self Phi Eliminated (byte) play_collision::col#0 Self Phi Eliminated (byte*) play_collision::piece_gfx#2 Self Phi Eliminated (byte) current_xpos#27 Self Phi Eliminated (byte*) current_piece_gfx#36 -Self Phi Eliminated (byte) current_piece_char#40 +Self Phi Eliminated (byte) current_piece_char#41 Self Phi Eliminated (byte) render_screen_show#16 Self Phi Eliminated (byte) render_screen_render#17 Successful SSA optimization Pass2SelfPhiElimination @@ -8689,19 +8627,19 @@ Redundant Phi (byte) render_screen_original::SPACE#3 (const byte) render_screen_ Redundant Phi (byte) render_screen_render#13 (byte) render_screen_render#21 Redundant Phi (byte) render_screen_render#14 (byte) render_screen_render#30 Redundant Phi (byte) current_xpos#14 (byte) current_xpos#57 -Redundant Phi (byte*) current_piece_gfx#26 (byte*) current_piece_gfx#63 -Redundant Phi (byte) current_piece_char#49 (byte) current_piece_char#76 +Redundant Phi (byte*) current_piece_gfx#26 (byte*) current_piece_gfx#62 +Redundant Phi (byte) current_piece_char#35 (byte) current_piece_char#64 Redundant Phi (byte) play_collision::col#0 (byte) play_collision::xpos#6 Redundant Phi (byte*) play_collision::piece_gfx#2 (byte*) play_collision::piece_gfx#0 -Redundant Phi (byte) current_xpos#27 (byte) current_xpos#115 -Redundant Phi (byte*) current_piece_gfx#36 (byte*) current_piece_gfx#105 -Redundant Phi (byte) current_piece_char#40 (byte) current_piece_char#19 +Redundant Phi (byte) current_xpos#27 (byte) current_xpos#113 +Redundant Phi (byte*) current_piece_gfx#36 (byte*) current_piece_gfx#103 +Redundant Phi (byte) current_piece_char#41 (byte) current_piece_char#19 Redundant Phi (byte) current_movedown_slow#58 (byte) current_movedown_slow#21 Redundant Phi (byte*) current_piece#49 (byte*) current_piece#14 -Redundant Phi (byte) current_piece_char#44 (byte) current_piece_char#14 +Redundant Phi (byte) current_piece_char#45 (byte) current_piece_char#14 Redundant Phi (byte) current_orientation#57 (byte) current_orientation#16 -Redundant Phi (byte*) current_piece_gfx#58 (byte*) current_piece_gfx#16 -Redundant Phi (byte) current_xpos#102 (byte) current_xpos#17 +Redundant Phi (byte*) current_piece_gfx#57 (byte*) current_piece_gfx#16 +Redundant Phi (byte) current_xpos#101 (byte) current_xpos#17 Redundant Phi (byte) current_ypos#28 (byte) current_ypos#17 Redundant Phi (byte) game_over#39 (byte) game_over#14 Redundant Phi (byte) current_movedown_counter#31 (byte) current_movedown_counter#14 @@ -8710,9 +8648,6 @@ Redundant Phi (dword) score_bcd#42 (dword) score_bcd#14 Redundant Phi (byte) level#48 (byte) level#16 Redundant Phi (byte) level_bcd#52 (byte) level_bcd#17 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) render_moving::$1 [184] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@13 -Simple Condition (bool~) render_moving::$3 [514] if((byte) render_moving::ypos2#2<(const byte/signed word/word/dword/signed dword) render_moving::$2) goto render_moving::@2 -Successful SSA optimization Pass2ConditionalJumpSimplification Alias candidate removed (volatile)(byte) sprites_irq::raster_sprite_gfx_modify#0 = (byte/signed word/word/dword/signed dword~) sprites_irq::$0 Inlining constant with var siblings (const byte) keyboard_event_scan::keycode#0 Inlining constant with var siblings (const byte) keyboard_event_scan::row#0 @@ -8813,7 +8748,6 @@ Constant inlined play_init::pli#0 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS Constant inlined play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_move_rotate::return#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined play_move_rotate::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_moving::$2 = (byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0 Constant inlined current_movedown_counter#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_score::$17 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 19 Constant inlined current_movedown_counter#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -8993,9 +8927,9 @@ Simplifying constant integer increment ++0 Successful SSA optimization Pass2ConstantSimplification Added new block during phi lifting main::@41(between main::@11 and main::@1) Added new block during phi lifting render_bcd::@3(between render_bcd and render_bcd::@1) -Added new block during phi lifting render_moving::@14(between render_moving::@3 and render_moving::@1) -Added new block during phi lifting render_moving::@15(between render_moving::@5 and render_moving::@3) -Added new block during phi lifting render_moving::@16(between render_moving::@5 and render_moving::@4) +Added new block during phi lifting render_moving::@11(between render_moving::@3 and render_moving::@1) +Added new block during phi lifting render_moving::@12(between render_moving::@5 and render_moving::@3) +Added new block during phi lifting render_moving::@13(between render_moving::@5 and render_moving::@4) Added new block during phi lifting render_playfield::@5(between render_playfield::@3 and render_playfield::@1) Added new block during phi lifting render_playfield::@6(between render_playfield::@2 and render_playfield::@2) Added new block during phi lifting play_movement::@8(between play_movement::@5 and play_movement::@return) @@ -9085,40 +9019,40 @@ CALL GRAPH Calls in [] to main:12 Calls in [main] to sid_rnd_init:15 render_init:17 sprites_init:19 sprites_irq_init:21 play_init:23 play_spawn_current:25 render_playfield:27 render_moving:32 render_show:43 keyboard_event_scan:45 keyboard_event_get:47 play_movement:53 render_playfield:58 render_moving:64 render_score:66 render_screen_swap:68 Calls in [render_score] to render_bcd:109 render_bcd:114 render_bcd:119 render_bcd:124 render_bcd:129 render_bcd:134 -Calls in [play_movement] to play_move_down:207 play_move_leftright:219 play_move_rotate:224 -Calls in [play_move_rotate] to play_collision:249 -Calls in [play_move_leftright] to play_collision:301 play_collision:318 -Calls in [play_move_down] to keyboard_event_pressed:329 play_collision:349 play_lock_current:354 play_remove_lines:356 play_update_score:360 play_spawn_current:362 -Calls in [play_spawn_current] to play_collision:431 sid_rnd:440 -Calls in [play_update_score] to play_increase_level:460 -Calls in [keyboard_event_scan] to keyboard_matrix_read:580 keyboard_event_pressed:591 keyboard_event_pressed:597 keyboard_event_pressed:604 keyboard_event_pressed:611 -Calls in [render_init] to render_screen_original:717 render_screen_original:719 +Calls in [play_movement] to play_move_down:205 play_move_leftright:217 play_move_rotate:222 +Calls in [play_move_rotate] to play_collision:247 +Calls in [play_move_leftright] to play_collision:299 play_collision:316 +Calls in [play_move_down] to keyboard_event_pressed:327 play_collision:347 play_lock_current:352 play_remove_lines:354 play_update_score:358 play_spawn_current:360 +Calls in [play_spawn_current] to play_collision:429 sid_rnd:438 +Calls in [play_update_score] to play_increase_level:458 +Calls in [keyboard_event_scan] to keyboard_matrix_read:578 keyboard_event_pressed:589 keyboard_event_pressed:595 keyboard_event_pressed:602 keyboard_event_pressed:609 +Calls in [render_init] to render_screen_original:715 render_screen_original:717 Created 162 initial phi equivalence classes Not coalescing [28] current_ypos#100 ← current_ypos#22 -Not coalescing [29] current_xpos#126 ← current_xpos#28 -Not coalescing [30] current_piece_gfx#116 ← current_piece_gfx#21 -Not coalescing [31] current_piece_char#104 ← current_piece_char#16 +Not coalescing [29] current_xpos#124 ← current_xpos#28 +Not coalescing [30] current_piece_gfx#114 ← current_piece_gfx#21 +Not coalescing [31] current_piece_char#102 ← current_piece_char#16 Coalesced [33] current_movedown_slow#92 ← current_movedown_slow#1 -Coalesced [35] current_piece_char#102 ← current_piece_char#16 -Coalesced [36] current_piece_gfx#114 ← current_piece_gfx#21 -Coalesced [37] current_xpos#124 ← current_xpos#28 +Coalesced [35] current_piece_char#100 ← current_piece_char#16 +Coalesced [36] current_piece_gfx#112 ← current_piece_gfx#21 +Coalesced [37] current_xpos#122 ← current_xpos#28 Coalesced [38] current_ypos#98 ← current_ypos#22 Coalesced [39] game_over#86 ← game_over#15 -Not coalescing [57] render_screen_render#67 ← render_screen_render#17 +Not coalescing [57] render_screen_render#65 ← render_screen_render#17 Not coalescing [59] current_ypos#101 ← current_ypos#17 -Not coalescing [60] render_screen_render#66 ← render_screen_render#17 -Not coalescing [61] current_xpos#127 ← current_xpos#17 -Not coalescing [62] current_piece_gfx#117 ← current_piece_gfx#16 -Not coalescing [63] current_piece_char#105 ← current_piece_char#14 +Not coalescing [60] render_screen_render#64 ← render_screen_render#17 +Not coalescing [61] current_xpos#125 ← current_xpos#17 +Not coalescing [62] current_piece_gfx#115 ← current_piece_gfx#16 +Not coalescing [63] current_piece_char#103 ← current_piece_char#14 Coalesced [69] render_screen_show#60 ← render_screen_show#13 -Coalesced [70] render_screen_render#65 ← render_screen_render#11 +Coalesced [70] render_screen_render#63 ← render_screen_render#11 Coalesced [71] current_movedown_slow#93 ← current_movedown_slow#21 Coalesced [72] current_piece#89 ← current_piece#14 -Coalesced [73] current_piece_char#103 ← current_piece_char#14 +Coalesced [73] current_piece_char#101 ← current_piece_char#14 Coalesced [74] current_orientation#92 ← current_orientation#16 -Coalesced [75] current_piece_gfx#115 ← current_piece_gfx#16 -Coalesced [76] current_xpos#125 ← current_xpos#17 +Coalesced [75] current_piece_gfx#113 ← current_piece_gfx#16 +Coalesced [76] current_xpos#123 ← current_xpos#17 Coalesced [77] current_ypos#99 ← current_ypos#17 Coalesced [78] game_over#87 ← game_over#14 Coalesced [79] keyboard_events_size#83 ← keyboard_events_size#16 @@ -9129,10 +9063,10 @@ Coalesced [83] level#98 ← level#16 Coalesced [84] level_bcd#105 ← level_bcd#17 Coalesced (already) [85] current_movedown_slow#91 ← current_movedown_slow#21 Coalesced (already) [86] current_piece#87 ← current_piece#14 -Coalesced (already) [87] current_piece_char#101 ← current_piece_char#14 +Coalesced (already) [87] current_piece_char#99 ← current_piece_char#14 Coalesced (already) [88] current_orientation#91 ← current_orientation#16 -Coalesced (already) [89] current_piece_gfx#113 ← current_piece_gfx#16 -Coalesced (already) [90] current_xpos#123 ← current_xpos#17 +Coalesced (already) [89] current_piece_gfx#111 ← current_piece_gfx#16 +Coalesced (already) [90] current_xpos#121 ← current_xpos#17 Coalesced (already) [91] current_ypos#97 ← current_ypos#17 Coalesced (already) [92] game_over#85 ← game_over#14 Coalesced (already) [93] keyboard_events_size#82 ← keyboard_events_size#16 @@ -9155,241 +9089,241 @@ Coalesced [132] render_bcd::screen#12 ← render_bcd::screen#5 Coalesced [133] render_bcd::bcd#14 ← render_bcd::bcd#5 Coalesced [143] render_bcd::screen_pos#6 ← render_bcd::screen_pos#2 Coalesced [150] render_bcd::screen_pos#5 ← render_bcd::screen_pos#0 -Coalesced [153] render_moving::ypos2#11 ← render_moving::ypos2#0 -Coalesced [157] render_moving::i#14 ← render_moving::i#1 -Coalesced [163] render_moving::ypos2#12 ← render_moving::ypos2#1 -Coalesced [164] render_moving::i#12 ← render_moving::i#8 -Coalesced [165] render_moving::l#11 ← render_moving::l#1 -Coalesced [170] render_moving::i#15 ← render_moving::i#3 -Coalesced [171] render_moving::xpos#7 ← render_moving::xpos#0 -Coalesced [181] render_moving::i#13 ← render_moving::i#10 -Coalesced (already) [182] render_moving::i#16 ← render_moving::i#10 -Coalesced [183] render_moving::xpos#8 ← render_moving::xpos#1 -Coalesced [184] render_moving::c#7 ← render_moving::c#1 -Coalesced [190] render_playfield::i#6 ← render_playfield::i#3 -Coalesced [191] render_playfield::screen_line#3 ← render_playfield::screen_line#0 -Coalesced [201] render_playfield::l#5 ← render_playfield::l#1 -Coalesced [202] render_playfield::i#5 ← render_playfield::i#1 -Coalesced (already) [203] render_playfield::i#7 ← render_playfield::i#1 -Coalesced [204] render_playfield::screen_line#4 ← render_playfield::screen_line#1 -Coalesced [205] render_playfield::c#3 ← render_playfield::c#1 -Coalesced [212] play_movement::return#6 ← play_movement::render#1 -Coalesced [213] current_orientation#93 ← current_orientation#19 -Coalesced [214] current_piece_gfx#118 ← current_piece_gfx#18 -Coalesced [215] current_xpos#128 ← current_xpos#20 -Coalesced [228] play_movement::return#7 ← play_movement::return#0 -Coalesced [229] current_orientation#94 ← current_orientation#24 -Coalesced [230] current_piece_gfx#119 ← current_piece_gfx#19 -Coalesced [231] current_xpos#129 ← current_xpos#24 -Coalesced (already) [234] current_orientation#97 ← current_orientation#19 -Coalesced (already) [235] current_piece_gfx#122 ← current_piece_gfx#18 -Coalesced [240] play_move_rotate::orientation#7 ← play_move_rotate::orientation#2 -Not coalescing [245] current_piece#93 ← current_piece#14 -Coalesced [246] play_collision::orientation#9 ← play_collision::orientation#3 -Coalesced [247] play_collision::ypos#9 ← play_collision::ypos#3 -Coalesced [248] play_collision::xpos#18 ← play_collision::xpos#3 -Coalesced [255] current_orientation#95 ← current_orientation#7 -Coalesced [256] current_piece_gfx#120 ← current_piece_gfx#6 -Coalesced (already) [257] current_orientation#96 ← current_orientation#19 -Coalesced (already) [258] current_piece_gfx#121 ← current_piece_gfx#18 -Coalesced [261] play_move_rotate::orientation#6 ← play_move_rotate::orientation#1 -Coalesced [265] play_collision::ypos2#11 ← play_collision::ypos2#0 -Coalesced [268] play_collision::i#12 ← play_collision::i#3 -Not coalescing [269] play_collision::col#9 ← play_collision::xpos#6 -Coalesced [286] play_collision::ypos2#12 ← play_collision::ypos2#1 -Not coalescing [287] play_collision::i#11 ← play_collision::i#1 -Coalesced [288] play_collision::l#11 ← play_collision::l#1 -Not coalescing [289] play_collision::i#13 ← play_collision::i#1 -Coalesced [290] play_collision::col#10 ← play_collision::col#1 -Coalesced [291] play_collision::c#9 ← play_collision::c#1 -Not coalescing [297] current_piece#92 ← current_piece#14 -Coalesced [298] play_collision::orientation#8 ← play_collision::orientation#2 -Coalesced [299] play_collision::ypos#8 ← play_collision::ypos#2 -Coalesced [300] play_collision::xpos#17 ← play_collision::xpos#2 -Coalesced [306] current_xpos#132 ← current_xpos#5 -Coalesced (already) [309] current_xpos#131 ← current_xpos#20 -Coalesced (already) [310] current_xpos#134 ← current_xpos#20 -Not coalescing [314] current_piece#91 ← current_piece#14 -Coalesced [315] play_collision::orientation#7 ← play_collision::orientation#1 -Coalesced [316] play_collision::ypos#7 ← play_collision::ypos#1 -Coalesced [317] play_collision::xpos#16 ← play_collision::xpos#1 -Coalesced [323] current_xpos#130 ← current_xpos#7 -Coalesced (already) [324] current_xpos#133 ← current_xpos#20 -Coalesced [335] play_move_down::movedown#13 ← play_move_down::movedown#2 -Coalesced [339] play_move_down::movedown#16 ← play_move_down::movedown#3 -Not coalescing [345] current_piece#90 ← current_piece#20 -Coalesced [346] play_collision::orientation#6 ← play_collision::orientation#0 -Coalesced [347] play_collision::ypos#6 ← play_collision::ypos#0 -Coalesced [348] play_collision::xpos#15 ← play_collision::xpos#0 -Coalesced [361] game_over#92 ← game_over#19 -Coalesced [363] current_ypos#102 ← current_ypos#22 -Coalesced [364] lines_bcd#93 ← lines_bcd#17 -Coalesced [365] score_bcd#89 ← score_bcd#16 -Coalesced [366] level#99 ← level#18 -Coalesced [367] current_movedown_slow#94 ← current_movedown_slow#23 -Coalesced [368] level_bcd#106 ← level_bcd#19 -Coalesced [370] current_piece_char#106 ← current_piece_char#16 -Coalesced [371] current_piece_gfx#123 ← current_piece_gfx#21 -Coalesced [372] current_xpos#135 ← current_xpos#28 -Coalesced [373] game_over#88 ← game_over#15 -Coalesced (already) [375] current_ypos#105 ← current_ypos#36 -Coalesced [376] lines_bcd#96 ← lines_bcd#27 -Coalesced [377] score_bcd#92 ← score_bcd#27 -Coalesced [378] level#102 ← level#31 -Coalesced [379] current_movedown_slow#97 ← current_movedown_slow#38 -Coalesced [380] level_bcd#109 ← level_bcd#32 -Coalesced [381] current_piece#98 ← current_piece#27 -Coalesced (already) [382] current_piece_char#109 ← current_piece_char#27 -Coalesced [383] current_orientation#100 ← current_orientation#36 -Coalesced (already) [384] current_piece_gfx#126 ← current_piece_gfx#33 -Coalesced (already) [385] current_xpos#138 ← current_xpos#41 -Coalesced (already) [386] game_over#91 ← game_over#26 -Coalesced [390] current_ypos#103 ← current_ypos#2 -Coalesced (already) [391] lines_bcd#94 ← lines_bcd#19 -Coalesced (already) [392] score_bcd#90 ← score_bcd#18 -Coalesced (already) [393] level#100 ← level#10 -Coalesced (already) [394] current_movedown_slow#95 ← current_movedown_slow#14 -Coalesced (already) [395] level_bcd#107 ← level_bcd#11 -Coalesced (already) [396] current_piece#96 ← current_piece#20 -Coalesced (already) [397] current_piece_char#107 ← current_piece_char#19 -Coalesced (already) [398] current_orientation#98 ← current_orientation#12 -Coalesced (already) [399] current_piece_gfx#124 ← current_piece_gfx#105 -Coalesced (already) [400] current_xpos#136 ← current_xpos#115 -Coalesced (already) [401] game_over#89 ← game_over#19 -Coalesced [402] current_movedown_counter#62 ← current_movedown_counter#12 -Coalesced (already) [403] current_ypos#104 ← current_ypos#25 -Coalesced (already) [404] lines_bcd#95 ← lines_bcd#19 -Coalesced (already) [405] score_bcd#91 ← score_bcd#18 -Coalesced (already) [406] level#101 ← level#10 -Coalesced (already) [407] current_movedown_slow#96 ← current_movedown_slow#14 -Coalesced (already) [408] level_bcd#108 ← level_bcd#11 -Coalesced (already) [409] current_piece#97 ← current_piece#20 -Coalesced (already) [410] current_piece_char#108 ← current_piece_char#19 -Coalesced (already) [411] current_orientation#99 ← current_orientation#12 -Coalesced (already) [412] current_piece_gfx#125 ← current_piece_gfx#105 -Coalesced (already) [413] current_xpos#137 ← current_xpos#115 -Coalesced (already) [414] game_over#90 ← game_over#19 -Coalesced [415] play_move_down::movedown#17 ← play_move_down::movedown#7 -Coalesced [416] play_move_down::movedown#15 ← play_move_down::movedown#10 -Coalesced (already) [417] play_move_down::movedown#14 ← play_move_down::movedown#10 -Coalesced [429] play_collision::ypos#10 ← play_collision::ypos#4 -Coalesced [430] play_collision::xpos#19 ← play_collision::xpos#4 -Coalesced (already) [438] game_over#93 ← game_over#70 -Coalesced [444] play_spawn_current::piece_idx#4 ← play_spawn_current::piece_idx#1 -Coalesced [461] lines_bcd#99 ← lines_bcd#30 -Coalesced [462] score_bcd#95 ← score_bcd#30 -Coalesced [463] level#105 ← level#20 -Coalesced [464] current_movedown_slow#100 ← current_movedown_slow#69 -Coalesced [465] level_bcd#112 ← level_bcd#64 -Coalesced (already) [468] lines_bcd#98 ← lines_bcd#30 -Coalesced (already) [469] score_bcd#94 ← score_bcd#30 -Coalesced (already) [470] level#104 ← level#10 -Coalesced (already) [471] current_movedown_slow#99 ← current_movedown_slow#14 -Coalesced (already) [472] level_bcd#111 ← level_bcd#11 -Coalesced (already) [473] lines_bcd#97 ← lines_bcd#19 -Coalesced (already) [474] score_bcd#93 ← score_bcd#18 -Coalesced (already) [475] level#103 ← level#10 -Coalesced (already) [476] current_movedown_slow#98 ← current_movedown_slow#14 -Coalesced (already) [477] level_bcd#110 ← level_bcd#11 -Coalesced [481] current_movedown_slow#101 ← current_movedown_slow#10 -Coalesced [487] level_bcd#114 ← level_bcd#8 -Coalesced [497] play_increase_level::b#3 ← play_increase_level::b#1 -Coalesced [498] level_bcd#113 ← level_bcd#21 -Coalesced [501] play_remove_lines::r#10 ← play_remove_lines::r#3 -Coalesced [502] play_remove_lines::w#14 ← play_remove_lines::w#12 -Coalesced [516] play_remove_lines::w#16 ← play_remove_lines::w#2 -Coalesced [517] play_remove_lines::removed#13 ← play_remove_lines::removed#1 -Coalesced [521] play_remove_lines::w#18 ← play_remove_lines::w#11 -Coalesced [527] play_remove_lines::w#19 ← play_remove_lines::w#3 -Coalesced [528] play_remove_lines::r#9 ← play_remove_lines::r#1 -Coalesced [529] play_remove_lines::w#13 ← play_remove_lines::w#11 -Coalesced [530] play_remove_lines::y#9 ← play_remove_lines::y#1 -Coalesced [531] play_remove_lines::removed#12 ← play_remove_lines::removed#7 -Coalesced [532] play_remove_lines::w#17 ← play_remove_lines::w#1 -Coalesced (already) [533] play_remove_lines::removed#14 ← play_remove_lines::removed#11 -Coalesced (already) [534] play_remove_lines::r#11 ← play_remove_lines::r#1 -Coalesced (already) [535] play_remove_lines::w#15 ← play_remove_lines::w#1 -Coalesced [536] play_remove_lines::x#5 ← play_remove_lines::x#1 -Coalesced [537] play_remove_lines::full#5 ← play_remove_lines::full#2 -Coalesced (already) [538] play_remove_lines::full#6 ← play_remove_lines::full#4 -Coalesced [540] play_lock_current::ypos2#7 ← play_lock_current::ypos2#0 -Coalesced [544] play_lock_current::i#8 ← play_lock_current::i#3 -Coalesced [545] play_lock_current::col#5 ← play_lock_current::col#0 -Coalesced [557] play_lock_current::ypos2#8 ← play_lock_current::ypos2#1 -Not coalescing [558] play_lock_current::i#7 ← play_lock_current::i#1 -Coalesced [559] play_lock_current::l#7 ← play_lock_current::l#1 -Not coalescing [560] play_lock_current::i#9 ← play_lock_current::i#1 -Coalesced [561] play_lock_current::col#6 ← play_lock_current::col#1 -Coalesced [562] play_lock_current::c#5 ← play_lock_current::c#1 -Coalesced [572] keyboard_event_get::return#6 ← keyboard_event_get::return#1 -Coalesced [573] keyboard_events_size#85 ← keyboard_events_size#4 -Coalesced [576] keyboard_events_size#84 ← keyboard_events_size#13 -Coalesced [577] keyboard_events_size#86 ← keyboard_events_size#19 -Coalesced [585] keyboard_event_scan::keycode#17 ← keyboard_event_scan::keycode#1 -Coalesced (already) [586] keyboard_events_size#88 ← keyboard_events_size#29 -Coalesced [602] keyboard_modifiers#63 ← keyboard_modifiers#3 -Coalesced [609] keyboard_modifiers#65 ← keyboard_modifiers#4 -Coalesced [617] keyboard_modifiers#66 ← keyboard_modifiers#12 -Coalesced [618] keyboard_modifiers#64 ← keyboard_modifiers#11 -Coalesced [619] keyboard_event_scan::row#15 ← keyboard_event_scan::row#1 -Coalesced [620] keyboard_event_scan::keycode#16 ← keyboard_event_scan::keycode#14 -Coalesced (already) [621] keyboard_events_size#87 ← keyboard_events_size#13 -Coalesced [622] keyboard_event_scan::keycode#19 ← keyboard_event_scan::keycode#11 -Coalesced [623] keyboard_events_size#90 ← keyboard_events_size#29 -Coalesced [633] keyboard_events_size#92 ← keyboard_events_size#2 -Coalesced [639] keyboard_event_scan::keycode#18 ← keyboard_event_scan::keycode#15 -Coalesced [640] keyboard_events_size#89 ← keyboard_events_size#30 -Coalesced [641] keyboard_event_scan::col#9 ← keyboard_event_scan::col#1 -Coalesced (already) [642] keyboard_event_scan::keycode#20 ← keyboard_event_scan::keycode#15 -Coalesced (already) [643] keyboard_events_size#91 ← keyboard_events_size#30 -Coalesced [647] keyboard_events_size#95 ← keyboard_events_size#1 -Coalesced (already) [648] keyboard_events_size#94 ← keyboard_events_size#10 -Coalesced (already) [649] keyboard_events_size#93 ← keyboard_events_size#10 -Coalesced [677] play_init::b#3 ← play_init::b#1 -Coalesced [678] play_init::j#3 ← play_init::j#1 -Coalesced [679] play_init::pli#3 ← play_init::pli#1 -Coalesced [680] play_init::idx#3 ← play_init::idx#1 -Coalesced [705] sprites_init::s#3 ← sprites_init::s#1 -Coalesced [706] sprites_init::xpos#3 ← sprites_init::xpos#1 -Coalesced [730] render_init::i#3 ← render_init::i#1 -Coalesced [731] render_init::li_1#3 ← render_init::li_1#1 -Coalesced [732] render_init::li_2#3 ← render_init::li_2#1 -Coalesced [734] render_screen_original::screen#11 ← render_screen_original::screen#9 -Coalesced [736] render_screen_original::screen#13 ← render_screen_original::screen#8 -Coalesced [737] render_screen_original::cols#10 ← render_screen_original::cols#7 -Coalesced [745] render_screen_original::oscr#8 ← render_screen_original::oscr#4 -Coalesced [746] render_screen_original::screen#15 ← render_screen_original::screen#2 -Coalesced [747] render_screen_original::ocols#8 ← render_screen_original::ocols#4 -Coalesced [748] render_screen_original::cols#12 ← render_screen_original::cols#1 -Coalesced [749] render_screen_original::x#8 ← render_screen_original::x#1 -Coalesced [759] render_screen_original::screen#17 ← render_screen_original::screen#3 -Coalesced [760] render_screen_original::cols#14 ← render_screen_original::cols#2 -Coalesced [761] render_screen_original::x#10 ← render_screen_original::x#2 -Coalesced [772] render_screen_original::screen#12 ← render_screen_original::screen#10 -Coalesced [773] render_screen_original::cols#9 ← render_screen_original::cols#3 -Coalesced [774] render_screen_original::oscr#7 ← render_screen_original::oscr#1 -Coalesced [775] render_screen_original::ocols#7 ← render_screen_original::ocols#1 -Coalesced [776] render_screen_original::y#7 ← render_screen_original::y#1 -Coalesced [777] render_screen_original::screen#18 ← render_screen_original::screen#10 -Coalesced [778] render_screen_original::cols#15 ← render_screen_original::cols#3 -Coalesced [779] render_screen_original::x#11 ← render_screen_original::x#3 -Coalesced (already) [780] render_screen_original::oscr#9 ← render_screen_original::oscr#1 -Coalesced [781] render_screen_original::screen#16 ← render_screen_original::screen#3 -Coalesced (already) [782] render_screen_original::ocols#9 ← render_screen_original::ocols#1 -Coalesced [783] render_screen_original::cols#13 ← render_screen_original::cols#2 -Coalesced [784] render_screen_original::x#9 ← render_screen_original::x#2 -Coalesced (already) [785] render_screen_original::screen#14 ← render_screen_original::screen#2 -Coalesced (already) [786] render_screen_original::cols#11 ← render_screen_original::cols#1 -Coalesced [787] render_screen_original::x#7 ← render_screen_original::x#1 -Coalesced [814] irq_raster_next#25 ← irq_raster_next#3 -Coalesced [823] irq_raster_next#27 ← irq_raster_next#2 -Coalesced [828] irq_raster_next#26 ← irq_raster_next#1 +Coalesced [153] render_moving::ypos2#9 ← render_moving::ypos2#0 +Coalesced [157] render_moving::i#12 ← render_moving::i#1 +Coalesced [163] render_moving::ypos2#10 ← render_moving::ypos2#1 +Coalesced [164] render_moving::i#10 ← render_moving::i#8 +Coalesced [165] render_moving::l#9 ← render_moving::l#1 +Coalesced [169] render_moving::i#13 ← render_moving::i#3 +Coalesced [170] render_moving::xpos#5 ← render_moving::xpos#0 +Coalesced [179] render_moving::i#11 ← render_moving::i#2 +Coalesced (already) [180] render_moving::i#14 ← render_moving::i#2 +Coalesced [181] render_moving::xpos#6 ← render_moving::xpos#1 +Coalesced [182] render_moving::c#5 ← render_moving::c#1 +Coalesced [188] render_playfield::i#6 ← render_playfield::i#3 +Coalesced [189] render_playfield::screen_line#3 ← render_playfield::screen_line#0 +Coalesced [199] render_playfield::l#5 ← render_playfield::l#1 +Coalesced [200] render_playfield::i#5 ← render_playfield::i#1 +Coalesced (already) [201] render_playfield::i#7 ← render_playfield::i#1 +Coalesced [202] render_playfield::screen_line#4 ← render_playfield::screen_line#1 +Coalesced [203] render_playfield::c#3 ← render_playfield::c#1 +Coalesced [210] play_movement::return#6 ← play_movement::render#1 +Coalesced [211] current_orientation#93 ← current_orientation#19 +Coalesced [212] current_piece_gfx#116 ← current_piece_gfx#18 +Coalesced [213] current_xpos#126 ← current_xpos#20 +Coalesced [226] play_movement::return#7 ← play_movement::return#0 +Coalesced [227] current_orientation#94 ← current_orientation#24 +Coalesced [228] current_piece_gfx#117 ← current_piece_gfx#19 +Coalesced [229] current_xpos#127 ← current_xpos#24 +Coalesced (already) [232] current_orientation#97 ← current_orientation#19 +Coalesced (already) [233] current_piece_gfx#120 ← current_piece_gfx#18 +Coalesced [238] play_move_rotate::orientation#7 ← play_move_rotate::orientation#2 +Not coalescing [243] current_piece#93 ← current_piece#14 +Coalesced [244] play_collision::orientation#9 ← play_collision::orientation#3 +Coalesced [245] play_collision::ypos#9 ← play_collision::ypos#3 +Coalesced [246] play_collision::xpos#18 ← play_collision::xpos#3 +Coalesced [253] current_orientation#95 ← current_orientation#7 +Coalesced [254] current_piece_gfx#118 ← current_piece_gfx#6 +Coalesced (already) [255] current_orientation#96 ← current_orientation#19 +Coalesced (already) [256] current_piece_gfx#119 ← current_piece_gfx#18 +Coalesced [259] play_move_rotate::orientation#6 ← play_move_rotate::orientation#1 +Coalesced [263] play_collision::ypos2#11 ← play_collision::ypos2#0 +Coalesced [266] play_collision::i#12 ← play_collision::i#3 +Not coalescing [267] play_collision::col#9 ← play_collision::xpos#6 +Coalesced [284] play_collision::ypos2#12 ← play_collision::ypos2#1 +Not coalescing [285] play_collision::i#11 ← play_collision::i#1 +Coalesced [286] play_collision::l#11 ← play_collision::l#1 +Not coalescing [287] play_collision::i#13 ← play_collision::i#1 +Coalesced [288] play_collision::col#10 ← play_collision::col#1 +Coalesced [289] play_collision::c#9 ← play_collision::c#1 +Not coalescing [295] current_piece#92 ← current_piece#14 +Coalesced [296] play_collision::orientation#8 ← play_collision::orientation#2 +Coalesced [297] play_collision::ypos#8 ← play_collision::ypos#2 +Coalesced [298] play_collision::xpos#17 ← play_collision::xpos#2 +Coalesced [304] current_xpos#130 ← current_xpos#5 +Coalesced (already) [307] current_xpos#129 ← current_xpos#20 +Coalesced (already) [308] current_xpos#132 ← current_xpos#20 +Not coalescing [312] current_piece#91 ← current_piece#14 +Coalesced [313] play_collision::orientation#7 ← play_collision::orientation#1 +Coalesced [314] play_collision::ypos#7 ← play_collision::ypos#1 +Coalesced [315] play_collision::xpos#16 ← play_collision::xpos#1 +Coalesced [321] current_xpos#128 ← current_xpos#7 +Coalesced (already) [322] current_xpos#131 ← current_xpos#20 +Coalesced [333] play_move_down::movedown#13 ← play_move_down::movedown#2 +Coalesced [337] play_move_down::movedown#16 ← play_move_down::movedown#3 +Not coalescing [343] current_piece#90 ← current_piece#20 +Coalesced [344] play_collision::orientation#6 ← play_collision::orientation#0 +Coalesced [345] play_collision::ypos#6 ← play_collision::ypos#0 +Coalesced [346] play_collision::xpos#15 ← play_collision::xpos#0 +Coalesced [359] game_over#92 ← game_over#19 +Coalesced [361] current_ypos#102 ← current_ypos#22 +Coalesced [362] lines_bcd#93 ← lines_bcd#17 +Coalesced [363] score_bcd#89 ← score_bcd#16 +Coalesced [364] level#99 ← level#18 +Coalesced [365] current_movedown_slow#94 ← current_movedown_slow#23 +Coalesced [366] level_bcd#106 ← level_bcd#19 +Coalesced [368] current_piece_char#104 ← current_piece_char#16 +Coalesced [369] current_piece_gfx#121 ← current_piece_gfx#21 +Coalesced [370] current_xpos#133 ← current_xpos#28 +Coalesced [371] game_over#88 ← game_over#15 +Coalesced (already) [373] current_ypos#105 ← current_ypos#36 +Coalesced [374] lines_bcd#96 ← lines_bcd#27 +Coalesced [375] score_bcd#92 ← score_bcd#27 +Coalesced [376] level#102 ← level#31 +Coalesced [377] current_movedown_slow#97 ← current_movedown_slow#38 +Coalesced [378] level_bcd#109 ← level_bcd#32 +Coalesced [379] current_piece#98 ← current_piece#27 +Coalesced (already) [380] current_piece_char#107 ← current_piece_char#27 +Coalesced [381] current_orientation#100 ← current_orientation#36 +Coalesced (already) [382] current_piece_gfx#124 ← current_piece_gfx#33 +Coalesced (already) [383] current_xpos#136 ← current_xpos#41 +Coalesced (already) [384] game_over#91 ← game_over#26 +Coalesced [388] current_ypos#103 ← current_ypos#2 +Coalesced (already) [389] lines_bcd#94 ← lines_bcd#19 +Coalesced (already) [390] score_bcd#90 ← score_bcd#18 +Coalesced (already) [391] level#100 ← level#10 +Coalesced (already) [392] current_movedown_slow#95 ← current_movedown_slow#14 +Coalesced (already) [393] level_bcd#107 ← level_bcd#11 +Coalesced (already) [394] current_piece#96 ← current_piece#20 +Coalesced (already) [395] current_piece_char#105 ← current_piece_char#19 +Coalesced (already) [396] current_orientation#98 ← current_orientation#12 +Coalesced (already) [397] current_piece_gfx#122 ← current_piece_gfx#103 +Coalesced (already) [398] current_xpos#134 ← current_xpos#113 +Coalesced (already) [399] game_over#89 ← game_over#19 +Coalesced [400] current_movedown_counter#62 ← current_movedown_counter#12 +Coalesced (already) [401] current_ypos#104 ← current_ypos#25 +Coalesced (already) [402] lines_bcd#95 ← lines_bcd#19 +Coalesced (already) [403] score_bcd#91 ← score_bcd#18 +Coalesced (already) [404] level#101 ← level#10 +Coalesced (already) [405] current_movedown_slow#96 ← current_movedown_slow#14 +Coalesced (already) [406] level_bcd#108 ← level_bcd#11 +Coalesced (already) [407] current_piece#97 ← current_piece#20 +Coalesced (already) [408] current_piece_char#106 ← current_piece_char#19 +Coalesced (already) [409] current_orientation#99 ← current_orientation#12 +Coalesced (already) [410] current_piece_gfx#123 ← current_piece_gfx#103 +Coalesced (already) [411] current_xpos#135 ← current_xpos#113 +Coalesced (already) [412] game_over#90 ← game_over#19 +Coalesced [413] play_move_down::movedown#17 ← play_move_down::movedown#7 +Coalesced [414] play_move_down::movedown#15 ← play_move_down::movedown#10 +Coalesced (already) [415] play_move_down::movedown#14 ← play_move_down::movedown#10 +Coalesced [427] play_collision::ypos#10 ← play_collision::ypos#4 +Coalesced [428] play_collision::xpos#19 ← play_collision::xpos#4 +Coalesced (already) [436] game_over#93 ← game_over#70 +Coalesced [442] play_spawn_current::piece_idx#4 ← play_spawn_current::piece_idx#1 +Coalesced [459] lines_bcd#99 ← lines_bcd#30 +Coalesced [460] score_bcd#95 ← score_bcd#30 +Coalesced [461] level#105 ← level#20 +Coalesced [462] current_movedown_slow#100 ← current_movedown_slow#69 +Coalesced [463] level_bcd#112 ← level_bcd#64 +Coalesced (already) [466] lines_bcd#98 ← lines_bcd#30 +Coalesced (already) [467] score_bcd#94 ← score_bcd#30 +Coalesced (already) [468] level#104 ← level#10 +Coalesced (already) [469] current_movedown_slow#99 ← current_movedown_slow#14 +Coalesced (already) [470] level_bcd#111 ← level_bcd#11 +Coalesced (already) [471] lines_bcd#97 ← lines_bcd#19 +Coalesced (already) [472] score_bcd#93 ← score_bcd#18 +Coalesced (already) [473] level#103 ← level#10 +Coalesced (already) [474] current_movedown_slow#98 ← current_movedown_slow#14 +Coalesced (already) [475] level_bcd#110 ← level_bcd#11 +Coalesced [479] current_movedown_slow#101 ← current_movedown_slow#10 +Coalesced [485] level_bcd#114 ← level_bcd#8 +Coalesced [495] play_increase_level::b#3 ← play_increase_level::b#1 +Coalesced [496] level_bcd#113 ← level_bcd#21 +Coalesced [499] play_remove_lines::r#10 ← play_remove_lines::r#3 +Coalesced [500] play_remove_lines::w#14 ← play_remove_lines::w#12 +Coalesced [514] play_remove_lines::w#16 ← play_remove_lines::w#2 +Coalesced [515] play_remove_lines::removed#13 ← play_remove_lines::removed#1 +Coalesced [519] play_remove_lines::w#18 ← play_remove_lines::w#11 +Coalesced [525] play_remove_lines::w#19 ← play_remove_lines::w#3 +Coalesced [526] play_remove_lines::r#9 ← play_remove_lines::r#1 +Coalesced [527] play_remove_lines::w#13 ← play_remove_lines::w#11 +Coalesced [528] play_remove_lines::y#9 ← play_remove_lines::y#1 +Coalesced [529] play_remove_lines::removed#12 ← play_remove_lines::removed#7 +Coalesced [530] play_remove_lines::w#17 ← play_remove_lines::w#1 +Coalesced (already) [531] play_remove_lines::removed#14 ← play_remove_lines::removed#11 +Coalesced (already) [532] play_remove_lines::r#11 ← play_remove_lines::r#1 +Coalesced (already) [533] play_remove_lines::w#15 ← play_remove_lines::w#1 +Coalesced [534] play_remove_lines::x#5 ← play_remove_lines::x#1 +Coalesced [535] play_remove_lines::full#5 ← play_remove_lines::full#2 +Coalesced (already) [536] play_remove_lines::full#6 ← play_remove_lines::full#4 +Coalesced [538] play_lock_current::ypos2#7 ← play_lock_current::ypos2#0 +Coalesced [542] play_lock_current::i#8 ← play_lock_current::i#3 +Coalesced [543] play_lock_current::col#5 ← play_lock_current::col#0 +Coalesced [555] play_lock_current::ypos2#8 ← play_lock_current::ypos2#1 +Not coalescing [556] play_lock_current::i#7 ← play_lock_current::i#1 +Coalesced [557] play_lock_current::l#7 ← play_lock_current::l#1 +Not coalescing [558] play_lock_current::i#9 ← play_lock_current::i#1 +Coalesced [559] play_lock_current::col#6 ← play_lock_current::col#1 +Coalesced [560] play_lock_current::c#5 ← play_lock_current::c#1 +Coalesced [570] keyboard_event_get::return#6 ← keyboard_event_get::return#1 +Coalesced [571] keyboard_events_size#85 ← keyboard_events_size#4 +Coalesced [574] keyboard_events_size#84 ← keyboard_events_size#13 +Coalesced [575] keyboard_events_size#86 ← keyboard_events_size#19 +Coalesced [583] keyboard_event_scan::keycode#17 ← keyboard_event_scan::keycode#1 +Coalesced (already) [584] keyboard_events_size#88 ← keyboard_events_size#29 +Coalesced [600] keyboard_modifiers#63 ← keyboard_modifiers#3 +Coalesced [607] keyboard_modifiers#65 ← keyboard_modifiers#4 +Coalesced [615] keyboard_modifiers#66 ← keyboard_modifiers#12 +Coalesced [616] keyboard_modifiers#64 ← keyboard_modifiers#11 +Coalesced [617] keyboard_event_scan::row#15 ← keyboard_event_scan::row#1 +Coalesced [618] keyboard_event_scan::keycode#16 ← keyboard_event_scan::keycode#14 +Coalesced (already) [619] keyboard_events_size#87 ← keyboard_events_size#13 +Coalesced [620] keyboard_event_scan::keycode#19 ← keyboard_event_scan::keycode#11 +Coalesced [621] keyboard_events_size#90 ← keyboard_events_size#29 +Coalesced [631] keyboard_events_size#92 ← keyboard_events_size#2 +Coalesced [637] keyboard_event_scan::keycode#18 ← keyboard_event_scan::keycode#15 +Coalesced [638] keyboard_events_size#89 ← keyboard_events_size#30 +Coalesced [639] keyboard_event_scan::col#9 ← keyboard_event_scan::col#1 +Coalesced (already) [640] keyboard_event_scan::keycode#20 ← keyboard_event_scan::keycode#15 +Coalesced (already) [641] keyboard_events_size#91 ← keyboard_events_size#30 +Coalesced [645] keyboard_events_size#95 ← keyboard_events_size#1 +Coalesced (already) [646] keyboard_events_size#94 ← keyboard_events_size#10 +Coalesced (already) [647] keyboard_events_size#93 ← keyboard_events_size#10 +Coalesced [675] play_init::b#3 ← play_init::b#1 +Coalesced [676] play_init::j#3 ← play_init::j#1 +Coalesced [677] play_init::pli#3 ← play_init::pli#1 +Coalesced [678] play_init::idx#3 ← play_init::idx#1 +Coalesced [703] sprites_init::s#3 ← sprites_init::s#1 +Coalesced [704] sprites_init::xpos#3 ← sprites_init::xpos#1 +Coalesced [728] render_init::i#3 ← render_init::i#1 +Coalesced [729] render_init::li_1#3 ← render_init::li_1#1 +Coalesced [730] render_init::li_2#3 ← render_init::li_2#1 +Coalesced [732] render_screen_original::screen#11 ← render_screen_original::screen#9 +Coalesced [734] render_screen_original::screen#13 ← render_screen_original::screen#8 +Coalesced [735] render_screen_original::cols#10 ← render_screen_original::cols#7 +Coalesced [743] render_screen_original::oscr#8 ← render_screen_original::oscr#4 +Coalesced [744] render_screen_original::screen#15 ← render_screen_original::screen#2 +Coalesced [745] render_screen_original::ocols#8 ← render_screen_original::ocols#4 +Coalesced [746] render_screen_original::cols#12 ← render_screen_original::cols#1 +Coalesced [747] render_screen_original::x#8 ← render_screen_original::x#1 +Coalesced [757] render_screen_original::screen#17 ← render_screen_original::screen#3 +Coalesced [758] render_screen_original::cols#14 ← render_screen_original::cols#2 +Coalesced [759] render_screen_original::x#10 ← render_screen_original::x#2 +Coalesced [770] render_screen_original::screen#12 ← render_screen_original::screen#10 +Coalesced [771] render_screen_original::cols#9 ← render_screen_original::cols#3 +Coalesced [772] render_screen_original::oscr#7 ← render_screen_original::oscr#1 +Coalesced [773] render_screen_original::ocols#7 ← render_screen_original::ocols#1 +Coalesced [774] render_screen_original::y#7 ← render_screen_original::y#1 +Coalesced [775] render_screen_original::screen#18 ← render_screen_original::screen#10 +Coalesced [776] render_screen_original::cols#15 ← render_screen_original::cols#3 +Coalesced [777] render_screen_original::x#11 ← render_screen_original::x#3 +Coalesced (already) [778] render_screen_original::oscr#9 ← render_screen_original::oscr#1 +Coalesced [779] render_screen_original::screen#16 ← render_screen_original::screen#3 +Coalesced (already) [780] render_screen_original::ocols#9 ← render_screen_original::ocols#1 +Coalesced [781] render_screen_original::cols#13 ← render_screen_original::cols#2 +Coalesced [782] render_screen_original::x#9 ← render_screen_original::x#2 +Coalesced (already) [783] render_screen_original::screen#14 ← render_screen_original::screen#2 +Coalesced (already) [784] render_screen_original::cols#11 ← render_screen_original::cols#1 +Coalesced [785] render_screen_original::x#7 ← render_screen_original::x#1 +Coalesced [812] irq_raster_next#25 ← irq_raster_next#3 +Coalesced [821] irq_raster_next#27 ← irq_raster_next#2 +Coalesced [826] irq_raster_next#26 ← irq_raster_next#1 Coalesced down to 91 phi equivalence classes Culled Empty Block (label) main::@41 Culled Empty Block (label) render_bcd::@3 -Culled Empty Block (label) render_moving::@14 -Culled Empty Block (label) render_moving::@15 -Culled Empty Block (label) render_moving::@16 +Culled Empty Block (label) render_moving::@11 +Culled Empty Block (label) render_moving::@12 +Culled Empty Block (label) render_moving::@13 Culled Empty Block (label) render_playfield::@5 Culled Empty Block (label) render_playfield::@6 Culled Empty Block (label) play_movement::@8 @@ -9551,9 +9485,9 @@ main::@30: scope:[main] from main::@29 to:main::@31 main::@31: scope:[main] from main::@30 [28] (byte~) current_ypos#100 ← (byte) current_ypos#22 - [29] (byte~) current_xpos#126 ← (byte) current_xpos#28 - [30] (byte*~) current_piece_gfx#116 ← (byte*) current_piece_gfx#21 - [31] (byte~) current_piece_char#104 ← (byte) current_piece_char#16 + [29] (byte~) current_xpos#124 ← (byte) current_xpos#28 + [30] (byte*~) current_piece_gfx#114 ← (byte*) current_piece_gfx#21 + [31] (byte~) current_piece_char#102 ← (byte) current_piece_char#16 [32] call render_moving [33] (byte*~) current_piece#88 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) to:main::@1 @@ -9566,8 +9500,8 @@ main::@1: scope:[main] from main::@11 main::@31 main::@39 [34] (byte) keyboard_events_size#19 ← phi( main::@11/(byte) keyboard_events_size#16 main::@31/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@39/(byte) keyboard_events_size#16 ) [34] (byte) game_over#19 ← phi( main::@11/(byte) game_over#14 main::@31/(byte) game_over#15 main::@39/(byte) game_over#14 ) [34] (byte) current_ypos#25 ← phi( main::@11/(byte) current_ypos#17 main::@31/(byte) current_ypos#22 main::@39/(byte) current_ypos#17 ) - [34] (byte) current_xpos#115 ← phi( main::@11/(byte) current_xpos#17 main::@31/(byte) current_xpos#28 main::@39/(byte) current_xpos#17 ) - [34] (byte*) current_piece_gfx#105 ← phi( main::@11/(byte*) current_piece_gfx#16 main::@31/(byte*) current_piece_gfx#21 main::@39/(byte*) current_piece_gfx#16 ) + [34] (byte) current_xpos#113 ← phi( main::@11/(byte) current_xpos#17 main::@31/(byte) current_xpos#28 main::@39/(byte) current_xpos#17 ) + [34] (byte*) current_piece_gfx#103 ← phi( main::@11/(byte*) current_piece_gfx#16 main::@31/(byte*) current_piece_gfx#21 main::@39/(byte*) current_piece_gfx#16 ) [34] (byte) current_orientation#12 ← phi( main::@11/(byte) current_orientation#16 main::@31/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@39/(byte) current_orientation#16 ) [34] (byte) current_piece_char#19 ← phi( main::@11/(byte) current_piece_char#14 main::@31/(byte) current_piece_char#16 main::@39/(byte) current_piece_char#14 ) [34] (byte*) current_piece#20 ← phi( main::@11/(byte*) current_piece#14 main::@31/(byte*~) current_piece#88 main::@39/(byte*) current_piece#14 ) @@ -9610,15 +9544,15 @@ main::@11: scope:[main] from main::@36 [50] if((byte) main::render#1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 to:main::@23 main::@23: scope:[main] from main::@11 - [51] (byte~) render_screen_render#67 ← (byte) render_screen_render#17 + [51] (byte~) render_screen_render#65 ← (byte) render_screen_render#17 [52] call render_playfield to:main::@37 main::@37: scope:[main] from main::@23 [53] (byte~) current_ypos#101 ← (byte) current_ypos#17 - [54] (byte~) render_screen_render#66 ← (byte) render_screen_render#17 - [55] (byte~) current_xpos#127 ← (byte) current_xpos#17 - [56] (byte*~) current_piece_gfx#117 ← (byte*) current_piece_gfx#16 - [57] (byte~) current_piece_char#105 ← (byte) current_piece_char#14 + [54] (byte~) render_screen_render#64 ← (byte) render_screen_render#17 + [55] (byte~) current_xpos#125 ← (byte) current_xpos#17 + [56] (byte*~) current_piece_gfx#115 ← (byte*) current_piece_gfx#16 + [57] (byte~) current_piece_char#103 ← (byte) current_piece_char#14 [58] call render_moving to:main::@38 main::@38: scope:[main] from main::@37 @@ -9701,10 +9635,10 @@ render_bcd::@return: scope:[render_bcd] from render_bcd::@1 [100] return to:@return render_moving: scope:[render_moving] from main::@31 main::@37 - [101] (byte) current_piece_char#76 ← phi( main::@31/(byte~) current_piece_char#104 main::@37/(byte~) current_piece_char#105 ) - [101] (byte*) current_piece_gfx#63 ← phi( main::@31/(byte*~) current_piece_gfx#116 main::@37/(byte*~) current_piece_gfx#117 ) - [101] (byte) current_xpos#57 ← phi( main::@31/(byte~) current_xpos#126 main::@37/(byte~) current_xpos#127 ) - [101] (byte) render_screen_render#30 ← phi( main::@31/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@37/(byte~) render_screen_render#66 ) + [101] (byte) current_piece_char#64 ← phi( main::@31/(byte~) current_piece_char#102 main::@37/(byte~) current_piece_char#103 ) + [101] (byte*) current_piece_gfx#62 ← phi( main::@31/(byte*~) current_piece_gfx#114 main::@37/(byte*~) current_piece_gfx#115 ) + [101] (byte) current_xpos#57 ← phi( main::@31/(byte~) current_xpos#124 main::@37/(byte~) current_xpos#125 ) + [101] (byte) render_screen_render#30 ← phi( main::@31/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@37/(byte~) render_screen_render#64 ) [101] (byte) current_ypos#11 ← phi( main::@31/(byte~) current_ypos#100 main::@37/(byte~) current_ypos#101 ) [102] (byte) render_moving::ypos2#0 ← (byte) current_ypos#11 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:render_moving::@1 @@ -9712,13 +9646,13 @@ render_moving::@1: scope:[render_moving] from render_moving render_moving::@3 [103] (byte) render_moving::l#4 ← phi( render_moving/(byte/signed byte/word/signed word/dword/signed dword) 0 render_moving::@3/(byte) render_moving::l#1 ) [103] (byte) render_moving::i#3 ← phi( render_moving/(byte/signed byte/word/signed word/dword/signed dword) 0 render_moving::@3/(byte) render_moving::i#8 ) [103] (byte) render_moving::ypos2#2 ← phi( render_moving/(byte) render_moving::ypos2#0 render_moving::@3/(byte) render_moving::ypos2#1 ) - [104] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@13 - to:render_moving::@7 -render_moving::@7: scope:[render_moving] from render_moving::@1 render_moving::@13 + [104] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@2 + to:render_moving::@6 +render_moving::@6: scope:[render_moving] from render_moving::@1 [105] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 to:render_moving::@3 -render_moving::@3: scope:[render_moving] from render_moving::@5 render_moving::@7 - [106] (byte) render_moving::i#8 ← phi( render_moving::@5/(byte) render_moving::i#10 render_moving::@7/(byte) render_moving::i#1 ) +render_moving::@3: scope:[render_moving] from render_moving::@5 render_moving::@6 + [106] (byte) render_moving::i#8 ← phi( render_moving::@5/(byte) render_moving::i#2 render_moving::@6/(byte) render_moving::i#1 ) [107] (byte) render_moving::ypos2#1 ← (byte) render_moving::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [108] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 [109] if((byte) render_moving::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@1 @@ -9726,909 +9660,903 @@ render_moving::@3: scope:[render_moving] from render_moving::@5 render_moving:: render_moving::@return: scope:[render_moving] from render_moving::@3 [110] return to:@return -render_moving::@13: scope:[render_moving] from render_moving::@1 - [111] if((byte) render_moving::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_moving::@2 - to:render_moving::@7 -render_moving::@2: scope:[render_moving] from render_moving::@13 - [112] (byte~) render_moving::$5 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 - [113] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$5) - [114] (byte) render_moving::xpos#0 ← (byte) current_xpos#57 +render_moving::@2: scope:[render_moving] from render_moving::@1 + [111] (byte~) render_moving::$2 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 + [112] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$2) + [113] (byte) render_moving::xpos#0 ← (byte) current_xpos#57 to:render_moving::@4 render_moving::@4: scope:[render_moving] from render_moving::@2 render_moving::@5 - [115] (byte) render_moving::c#2 ← phi( render_moving::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_moving::@5/(byte) render_moving::c#1 ) - [115] (byte) render_moving::xpos#2 ← phi( render_moving::@2/(byte) render_moving::xpos#0 render_moving::@5/(byte) render_moving::xpos#1 ) - [115] (byte) render_moving::i#4 ← phi( render_moving::@2/(byte) render_moving::i#3 render_moving::@5/(byte) render_moving::i#10 ) - [116] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_moving::i#4) - [117] (byte) render_moving::i#10 ← ++ (byte) render_moving::i#4 - [118] if((byte) render_moving::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_moving::@5 - to:render_moving::@9 -render_moving::@9: scope:[render_moving] from render_moving::@4 - [119] if((byte) render_moving::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_moving::@5 - to:render_moving::@10 -render_moving::@10: scope:[render_moving] from render_moving::@9 - [120] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#76 + [114] (byte) render_moving::c#2 ← phi( render_moving::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_moving::@5/(byte) render_moving::c#1 ) + [114] (byte) render_moving::xpos#2 ← phi( render_moving::@2/(byte) render_moving::xpos#0 render_moving::@5/(byte) render_moving::xpos#1 ) + [114] (byte) render_moving::i#4 ← phi( render_moving::@2/(byte) render_moving::i#3 render_moving::@5/(byte) render_moving::i#2 ) + [115] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#62 + (byte) render_moving::i#4) + [116] (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 + [117] if((byte) render_moving::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_moving::@5 + to:render_moving::@8 +render_moving::@8: scope:[render_moving] from render_moving::@4 + [118] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#64 to:render_moving::@5 -render_moving::@5: scope:[render_moving] from render_moving::@10 render_moving::@4 render_moving::@9 - [121] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 - [122] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 - [123] if((byte) render_moving::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@4 +render_moving::@5: scope:[render_moving] from render_moving::@4 render_moving::@8 + [119] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 + [120] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 + [121] if((byte) render_moving::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@4 to:render_moving::@3 render_playfield: scope:[render_playfield] from main::@23 main::@30 - [124] (byte) render_screen_render#21 ← phi( main::@23/(byte~) render_screen_render#67 main::@30/(byte/signed byte/word/signed word/dword/signed dword) 64 ) + [122] (byte) render_screen_render#21 ← phi( main::@23/(byte~) render_screen_render#65 main::@30/(byte/signed byte/word/signed word/dword/signed dword) 64 ) to:render_playfield::@1 render_playfield::@1: scope:[render_playfield] from render_playfield render_playfield::@3 - [125] (byte) render_playfield::i#3 ← phi( render_playfield/(const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::i#1 ) - [125] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::l#1 ) - [126] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [127] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 - [128] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) + [123] (byte) render_playfield::i#3 ← phi( render_playfield/(const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::i#1 ) + [123] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::l#1 ) + [124] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [125] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 + [126] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) to:render_playfield::@2 render_playfield::@2: scope:[render_playfield] from render_playfield::@1 render_playfield::@2 - [129] (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 ) - [129] (byte*) render_playfield::screen_line#2 ← phi( render_playfield::@1/(byte*) render_playfield::screen_line#0 render_playfield::@2/(byte*) render_playfield::screen_line#1 ) - [129] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) - [130] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) - [131] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 - [132] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 - [133] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 - [134] 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 + [127] (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 ) + [127] (byte*) render_playfield::screen_line#2 ← phi( render_playfield::@1/(byte*) render_playfield::screen_line#0 render_playfield::@2/(byte*) render_playfield::screen_line#1 ) + [127] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) + [128] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) + [129] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 + [130] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 + [131] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 + [132] 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 - [135] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 - [136] 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 + [133] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 + [134] 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 - [137] return + [135] return to:@return play_movement: scope:[play_movement] from main::@7 - [138] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 - [139] call play_move_down - [140] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 + [136] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 + [137] call play_move_down + [138] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 to:play_movement::@5 play_movement::@5: scope:[play_movement] from play_movement - [141] (byte~) play_movement::$0 ← (byte) play_move_down::return#0 - [142] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 - [143] if((byte) game_over#14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movement::@1 + [139] (byte~) play_movement::$0 ← (byte) play_move_down::return#0 + [140] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 + [141] if((byte) game_over#14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movement::@1 to:play_movement::@return play_movement::@return: scope:[play_movement] from play_movement::@5 play_movement::@7 - [144] (byte) current_xpos#17 ← phi( play_movement::@5/(byte) current_xpos#20 play_movement::@7/(byte) current_xpos#24 ) - [144] (byte*) current_piece_gfx#16 ← phi( play_movement::@5/(byte*) current_piece_gfx#18 play_movement::@7/(byte*) current_piece_gfx#19 ) - [144] (byte) current_orientation#16 ← phi( play_movement::@5/(byte) current_orientation#19 play_movement::@7/(byte) current_orientation#24 ) - [144] (byte) play_movement::return#2 ← phi( play_movement::@5/(byte) play_movement::render#1 play_movement::@7/(byte) play_movement::return#0 ) - [145] return + [142] (byte) current_xpos#17 ← phi( play_movement::@5/(byte) current_xpos#20 play_movement::@7/(byte) current_xpos#24 ) + [142] (byte*) current_piece_gfx#16 ← phi( play_movement::@5/(byte*) current_piece_gfx#18 play_movement::@7/(byte*) current_piece_gfx#19 ) + [142] (byte) current_orientation#16 ← phi( play_movement::@5/(byte) current_orientation#19 play_movement::@7/(byte) current_orientation#24 ) + [142] (byte) play_movement::return#2 ← phi( play_movement::@5/(byte) play_movement::render#1 play_movement::@7/(byte) play_movement::return#0 ) + [143] return to:@return play_movement::@1: scope:[play_movement] from play_movement::@5 - [146] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 - [147] call play_move_leftright - [148] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 + [144] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 + [145] call play_move_leftright + [146] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 to:play_movement::@6 play_movement::@6: scope:[play_movement] from play_movement::@1 - [149] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 - [150] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 - [151] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 - [152] call play_move_rotate - [153] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 + [147] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 + [148] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 + [149] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 + [150] call play_move_rotate + [151] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 to:play_movement::@7 play_movement::@7: scope:[play_movement] from play_movement::@6 - [154] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 - [155] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 + [152] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 + [153] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 to:play_movement::@return play_move_rotate: scope:[play_move_rotate] from play_movement::@6 - [156] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 + [154] 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 - [157] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 + [155] 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 - [158] (byte*) current_piece_gfx#19 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#6 play_move_rotate::@14/(byte*) current_piece_gfx#18 play_move_rotate::@6/(byte*) current_piece_gfx#18 ) - [158] (byte) current_orientation#24 ← phi( play_move_rotate::@11/(byte) current_orientation#7 play_move_rotate::@14/(byte) current_orientation#19 play_move_rotate::@6/(byte) current_orientation#19 ) - [158] (byte) play_move_rotate::return#2 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [159] return + [156] (byte*) current_piece_gfx#19 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#6 play_move_rotate::@14/(byte*) current_piece_gfx#18 play_move_rotate::@6/(byte*) current_piece_gfx#18 ) + [156] (byte) current_orientation#24 ← phi( play_move_rotate::@11/(byte) current_orientation#7 play_move_rotate::@14/(byte) current_orientation#19 play_move_rotate::@6/(byte) current_orientation#19 ) + [156] (byte) play_move_rotate::return#2 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [157] return to:@return play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6 - [160] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#19 + (byte/signed byte/word/signed word/dword/signed dword) 16 - [161] (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 + [158] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#19 + (byte/signed byte/word/signed word/dword/signed dword) 16 + [159] (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 - [162] (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 ) - [163] (byte) play_collision::xpos#3 ← (byte) current_xpos#24 - [164] (byte) play_collision::ypos#3 ← (byte) current_ypos#17 - [165] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 - [166] (byte*~) current_piece#93 ← (byte*) current_piece#14 - [167] call play_collision - [168] (byte) play_collision::return#14 ← (byte) play_collision::return#15 + [160] (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 ) + [161] (byte) play_collision::xpos#3 ← (byte) current_xpos#24 + [162] (byte) play_collision::ypos#3 ← (byte) current_ypos#17 + [163] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 + [164] (byte*~) current_piece#93 ← (byte*) current_piece#14 + [165] call play_collision + [166] (byte) play_collision::return#14 ← (byte) play_collision::return#15 to:play_move_rotate::@14 play_move_rotate::@14: scope:[play_move_rotate] from play_move_rotate::@4 - [169] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#14 - [170] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return + [167] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#14 + [168] 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 - [171] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 - [172] (byte*) current_piece_gfx#6 ← (byte*) current_piece#14 + (byte) current_orientation#7 + [169] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 + [170] (byte*) current_piece_gfx#6 ← (byte*) current_piece#14 + (byte) current_orientation#7 to:play_move_rotate::@return play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate - [173] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#19 - (byte/signed byte/word/signed word/dword/signed dword) 16 - [174] (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 + [171] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#19 - (byte/signed byte/word/signed word/dword/signed dword) 16 + [172] (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 play_spawn_current::@3 - [175] (byte) play_collision::xpos#6 ← 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 play_spawn_current::@3/(byte) play_collision::xpos#4 ) - [175] (byte) play_collision::ypos#5 ← 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 play_spawn_current::@3/(byte) play_collision::ypos#4 ) - [175] (byte) play_collision::orientation#5 ← 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 play_spawn_current::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [175] (byte*) current_piece#16 ← phi( play_move_down::@12/(byte*~) current_piece#90 play_move_leftright::@1/(byte*~) current_piece#91 play_move_leftright::@7/(byte*~) current_piece#92 play_move_rotate::@4/(byte*~) current_piece#93 play_spawn_current::@3/(byte*~) current_piece#94 ) - [176] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#16 + (byte) play_collision::orientation#5 - [177] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [173] (byte) play_collision::xpos#6 ← 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 play_spawn_current::@3/(byte) play_collision::xpos#4 ) + [173] (byte) play_collision::ypos#5 ← 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 play_spawn_current::@3/(byte) play_collision::ypos#4 ) + [173] (byte) play_collision::orientation#5 ← 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 play_spawn_current::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [173] (byte*) current_piece#16 ← phi( play_move_down::@12/(byte*~) current_piece#90 play_move_leftright::@1/(byte*~) current_piece#91 play_move_leftright::@7/(byte*~) current_piece#92 play_move_rotate::@4/(byte*~) current_piece#93 play_spawn_current::@3/(byte*~) current_piece#94 ) + [174] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#16 + (byte) play_collision::orientation#5 + [175] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (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 - [178] (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 ) - [178] (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 ) - [178] (byte) play_collision::ypos2#2 ← phi( play_collision/(byte) play_collision::ypos2#0 play_collision::@20/(byte) play_collision::ypos2#1 ) - [179] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) - [180] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#6 + [176] (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 ) + [176] (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 ) + [176] (byte) play_collision::ypos2#2 ← phi( play_collision/(byte) play_collision::ypos2#0 play_collision::@20/(byte) play_collision::ypos2#1 ) + [177] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) + [178] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#6 to:play_collision::@2 play_collision::@2: scope:[play_collision] from play_collision::@1 play_collision::@21 - [181] (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 ) - [181] (byte) play_collision::col#2 ← phi( play_collision::@1/(byte~) play_collision::col#9 play_collision::@21/(byte) play_collision::col#1 ) - [181] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@21/(byte~) play_collision::i#13 ) - [182] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 - [183] 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 + [179] (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 ) + [179] (byte) play_collision::col#2 ← phi( play_collision::@1/(byte~) play_collision::col#9 play_collision::@21/(byte) play_collision::col#1 ) + [179] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@21/(byte~) play_collision::i#13 ) + [180] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 + [181] 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 - [184] 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 + [182] 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 - [185] (byte) play_collision::return#15 ← 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 ) - [186] return + [183] (byte) play_collision::return#15 ← 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 ) + [184] return to:@return play_collision::@4: scope:[play_collision] from play_collision::@8 - [187] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 - [188] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 + [185] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 + [186] 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 - [189] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 + [187] 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 - [190] 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 + [188] 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 - [191] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 - [192] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 - [193] if((byte) play_collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@21 + [189] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 + [190] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 + [191] 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 - [194] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [195] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 - [196] if((byte) play_collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@20 + [192] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [193] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 + [194] 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 - [197] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 + [195] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 to:play_collision::@1 play_collision::@21: scope:[play_collision] from play_collision::@3 - [198] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 + [196] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 to:play_collision::@2 play_move_leftright: scope:[play_move_leftright] from play_movement::@1 - [199] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 + [197] 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 - [200] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return + [198] 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 - [201] (byte) play_collision::xpos#2 ← (byte) current_xpos#20 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [202] (byte) play_collision::ypos#2 ← (byte) current_ypos#17 - [203] (byte) play_collision::orientation#2 ← (byte) current_orientation#19 - [204] (byte*~) current_piece#92 ← (byte*) current_piece#14 - [205] call play_collision - [206] (byte) play_collision::return#13 ← (byte) play_collision::return#15 + [199] (byte) play_collision::xpos#2 ← (byte) current_xpos#20 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [200] (byte) play_collision::ypos#2 ← (byte) current_ypos#17 + [201] (byte) play_collision::orientation#2 ← (byte) current_orientation#19 + [202] (byte*~) current_piece#92 ← (byte*) current_piece#14 + [203] call play_collision + [204] (byte) play_collision::return#13 ← (byte) play_collision::return#15 to:play_move_leftright::@15 play_move_leftright::@15: scope:[play_move_leftright] from play_move_leftright::@7 - [207] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 - [208] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [205] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 + [206] 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 - [209] (byte) current_xpos#5 ← ++ (byte) current_xpos#20 + [207] (byte) current_xpos#5 ← ++ (byte) current_xpos#20 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 - [210] (byte) current_xpos#24 ← phi( play_move_leftright::@11/(byte) current_xpos#7 play_move_leftright::@15/(byte) current_xpos#20 play_move_leftright::@8/(byte) current_xpos#5 play_move_leftright::@14/(byte) current_xpos#20 play_move_leftright::@6/(byte) current_xpos#20 ) - [210] (byte) play_move_leftright::return#2 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [211] return + [208] (byte) current_xpos#24 ← phi( play_move_leftright::@11/(byte) current_xpos#7 play_move_leftright::@15/(byte) current_xpos#20 play_move_leftright::@8/(byte) current_xpos#5 play_move_leftright::@14/(byte) current_xpos#20 play_move_leftright::@6/(byte) current_xpos#20 ) + [208] (byte) play_move_leftright::return#2 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [209] return to:@return play_move_leftright::@1: scope:[play_move_leftright] from play_move_leftright - [212] (byte) play_collision::xpos#1 ← (byte) current_xpos#20 - (byte/signed byte/word/signed word/dword/signed dword) 1 - [213] (byte) play_collision::ypos#1 ← (byte) current_ypos#17 - [214] (byte) play_collision::orientation#1 ← (byte) current_orientation#19 - [215] (byte*~) current_piece#91 ← (byte*) current_piece#14 - [216] call play_collision - [217] (byte) play_collision::return#1 ← (byte) play_collision::return#15 + [210] (byte) play_collision::xpos#1 ← (byte) current_xpos#20 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [211] (byte) play_collision::ypos#1 ← (byte) current_ypos#17 + [212] (byte) play_collision::orientation#1 ← (byte) current_orientation#19 + [213] (byte*~) current_piece#91 ← (byte*) current_piece#14 + [214] call play_collision + [215] (byte) play_collision::return#1 ← (byte) play_collision::return#15 to:play_move_leftright::@14 play_move_leftright::@14: scope:[play_move_leftright] from play_move_leftright::@1 - [218] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 - [219] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [216] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + [217] 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 - [220] (byte) current_xpos#7 ← -- (byte) current_xpos#20 + [218] (byte) current_xpos#7 ← -- (byte) current_xpos#20 to:play_move_leftright::@return play_move_down: scope:[play_move_down] from play_movement - [221] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 - [222] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 + [219] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 + [220] 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 - [223] phi() + [221] phi() to:play_move_down::@1 play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down::@8 - [224] (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 ) - [225] call keyboard_event_pressed - [226] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + [222] (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 ) + [223] call keyboard_event_pressed + [224] (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 - [227] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 - [228] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 + [225] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + [226] 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 - [229] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast#0) goto play_move_down::@2 + [227] if((byte) current_movedown_counter#12<(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 - [230] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 + [228] (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 - [231] (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 ) - [232] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@4 + [229] (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 ) + [230] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@4 to:play_move_down::@11 play_move_down::@11: scope:[play_move_down] from play_move_down::@2 - [233] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 + [231] (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 - [234] (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 ) - [235] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return + [232] (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 ) + [233] 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 - [236] (byte) play_collision::ypos#0 ← (byte) current_ypos#25 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [237] (byte) play_collision::xpos#0 ← (byte) current_xpos#115 - [238] (byte) play_collision::orientation#0 ← (byte) current_orientation#12 - [239] (byte*~) current_piece#90 ← (byte*) current_piece#20 - [240] call play_collision - [241] (byte) play_collision::return#0 ← (byte) play_collision::return#15 + [234] (byte) play_collision::ypos#0 ← (byte) current_ypos#25 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [235] (byte) play_collision::xpos#0 ← (byte) current_xpos#113 + [236] (byte) play_collision::orientation#0 ← (byte) current_orientation#12 + [237] (byte*~) current_piece#90 ← (byte*) current_piece#20 + [238] call play_collision + [239] (byte) play_collision::return#0 ← (byte) play_collision::return#15 to:play_move_down::@18 play_move_down::@18: scope:[play_move_down] from play_move_down::@12 - [242] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 - [243] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 + [240] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + [241] 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 - [244] phi() - [245] call play_lock_current + [242] phi() + [243] call play_lock_current to:play_move_down::@19 play_move_down::@19: scope:[play_move_down] from play_move_down::@13 - [246] phi() - [247] call play_remove_lines - [248] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 + [244] phi() + [245] call play_remove_lines + [246] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 to:play_move_down::@20 play_move_down::@20: scope:[play_move_down] from play_move_down::@19 - [249] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 - [250] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 - [251] call play_update_score + [247] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 + [248] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 + [249] call play_update_score to:play_move_down::@21 play_move_down::@21: scope:[play_move_down] from play_move_down::@20 - [252] phi() - [253] call play_spawn_current - [254] (byte*~) current_piece#95 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + [250] phi() + [251] call play_spawn_current + [252] (byte*~) current_piece#95 ← (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::@21 play_move_down::@6 - [255] (byte) game_over#26 ← phi( play_move_down::@21/(byte) game_over#15 play_move_down::@6/(byte) game_over#19 ) - [255] (byte) current_xpos#41 ← phi( play_move_down::@21/(byte) current_xpos#28 play_move_down::@6/(byte) current_xpos#115 ) - [255] (byte*) current_piece_gfx#33 ← phi( play_move_down::@21/(byte*) current_piece_gfx#21 play_move_down::@6/(byte*) current_piece_gfx#105 ) - [255] (byte) current_orientation#36 ← phi( play_move_down::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#12 ) - [255] (byte) current_piece_char#27 ← phi( play_move_down::@21/(byte) current_piece_char#16 play_move_down::@6/(byte) current_piece_char#19 ) - [255] (byte*) current_piece#27 ← phi( play_move_down::@21/(byte*~) current_piece#95 play_move_down::@6/(byte*) current_piece#20 ) - [255] (byte) level_bcd#32 ← phi( play_move_down::@21/(byte) level_bcd#19 play_move_down::@6/(byte) level_bcd#11 ) - [255] (byte) current_movedown_slow#38 ← phi( play_move_down::@21/(byte) current_movedown_slow#23 play_move_down::@6/(byte) current_movedown_slow#14 ) - [255] (byte) level#31 ← phi( play_move_down::@21/(byte) level#18 play_move_down::@6/(byte) level#10 ) - [255] (dword) score_bcd#27 ← phi( play_move_down::@21/(dword) score_bcd#16 play_move_down::@6/(dword) score_bcd#18 ) - [255] (word) lines_bcd#27 ← phi( play_move_down::@21/(word) lines_bcd#17 play_move_down::@6/(word) lines_bcd#19 ) - [255] (byte) current_ypos#36 ← phi( play_move_down::@21/(byte) current_ypos#22 play_move_down::@6/(byte) current_ypos#2 ) + [253] (byte) game_over#26 ← phi( play_move_down::@21/(byte) game_over#15 play_move_down::@6/(byte) game_over#19 ) + [253] (byte) current_xpos#41 ← phi( play_move_down::@21/(byte) current_xpos#28 play_move_down::@6/(byte) current_xpos#113 ) + [253] (byte*) current_piece_gfx#33 ← phi( play_move_down::@21/(byte*) current_piece_gfx#21 play_move_down::@6/(byte*) current_piece_gfx#103 ) + [253] (byte) current_orientation#36 ← phi( play_move_down::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#12 ) + [253] (byte) current_piece_char#27 ← phi( play_move_down::@21/(byte) current_piece_char#16 play_move_down::@6/(byte) current_piece_char#19 ) + [253] (byte*) current_piece#27 ← phi( play_move_down::@21/(byte*~) current_piece#95 play_move_down::@6/(byte*) current_piece#20 ) + [253] (byte) level_bcd#32 ← phi( play_move_down::@21/(byte) level_bcd#19 play_move_down::@6/(byte) level_bcd#11 ) + [253] (byte) current_movedown_slow#38 ← phi( play_move_down::@21/(byte) current_movedown_slow#23 play_move_down::@6/(byte) current_movedown_slow#14 ) + [253] (byte) level#31 ← phi( play_move_down::@21/(byte) level#18 play_move_down::@6/(byte) level#10 ) + [253] (dword) score_bcd#27 ← phi( play_move_down::@21/(dword) score_bcd#16 play_move_down::@6/(dword) score_bcd#18 ) + [253] (word) lines_bcd#27 ← phi( play_move_down::@21/(word) lines_bcd#17 play_move_down::@6/(word) lines_bcd#19 ) + [253] (byte) current_ypos#36 ← phi( play_move_down::@21/(byte) current_ypos#22 play_move_down::@6/(byte) current_ypos#2 ) to:play_move_down::@return play_move_down::@return: scope:[play_move_down] from play_move_down::@4 play_move_down::@7 - [256] (byte) game_over#14 ← phi( play_move_down::@4/(byte) game_over#19 play_move_down::@7/(byte) game_over#26 ) - [256] (byte) current_xpos#20 ← phi( play_move_down::@4/(byte) current_xpos#115 play_move_down::@7/(byte) current_xpos#41 ) - [256] (byte*) current_piece_gfx#18 ← phi( play_move_down::@4/(byte*) current_piece_gfx#105 play_move_down::@7/(byte*) current_piece_gfx#33 ) - [256] (byte) current_orientation#19 ← phi( play_move_down::@4/(byte) current_orientation#12 play_move_down::@7/(byte) current_orientation#36 ) - [256] (byte) current_piece_char#14 ← phi( play_move_down::@4/(byte) current_piece_char#19 play_move_down::@7/(byte) current_piece_char#27 ) - [256] (byte*) current_piece#14 ← phi( play_move_down::@4/(byte*) current_piece#20 play_move_down::@7/(byte*) current_piece#27 ) - [256] (byte) level_bcd#17 ← phi( play_move_down::@4/(byte) level_bcd#11 play_move_down::@7/(byte) level_bcd#32 ) - [256] (byte) current_movedown_slow#21 ← phi( play_move_down::@4/(byte) current_movedown_slow#14 play_move_down::@7/(byte) current_movedown_slow#38 ) - [256] (byte) level#16 ← phi( play_move_down::@4/(byte) level#10 play_move_down::@7/(byte) level#31 ) - [256] (dword) score_bcd#14 ← phi( play_move_down::@4/(dword) score_bcd#18 play_move_down::@7/(dword) score_bcd#27 ) - [256] (word) lines_bcd#15 ← phi( play_move_down::@4/(word) lines_bcd#19 play_move_down::@7/(word) lines_bcd#27 ) - [256] (byte) current_ypos#17 ← phi( play_move_down::@4/(byte) current_ypos#25 play_move_down::@7/(byte) current_ypos#36 ) - [256] (byte) current_movedown_counter#14 ← phi( play_move_down::@4/(byte) current_movedown_counter#12 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [256] (byte) play_move_down::return#3 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [257] return + [254] (byte) game_over#14 ← phi( play_move_down::@4/(byte) game_over#19 play_move_down::@7/(byte) game_over#26 ) + [254] (byte) current_xpos#20 ← phi( play_move_down::@4/(byte) current_xpos#113 play_move_down::@7/(byte) current_xpos#41 ) + [254] (byte*) current_piece_gfx#18 ← phi( play_move_down::@4/(byte*) current_piece_gfx#103 play_move_down::@7/(byte*) current_piece_gfx#33 ) + [254] (byte) current_orientation#19 ← phi( play_move_down::@4/(byte) current_orientation#12 play_move_down::@7/(byte) current_orientation#36 ) + [254] (byte) current_piece_char#14 ← phi( play_move_down::@4/(byte) current_piece_char#19 play_move_down::@7/(byte) current_piece_char#27 ) + [254] (byte*) current_piece#14 ← phi( play_move_down::@4/(byte*) current_piece#20 play_move_down::@7/(byte*) current_piece#27 ) + [254] (byte) level_bcd#17 ← phi( play_move_down::@4/(byte) level_bcd#11 play_move_down::@7/(byte) level_bcd#32 ) + [254] (byte) current_movedown_slow#21 ← phi( play_move_down::@4/(byte) current_movedown_slow#14 play_move_down::@7/(byte) current_movedown_slow#38 ) + [254] (byte) level#16 ← phi( play_move_down::@4/(byte) level#10 play_move_down::@7/(byte) level#31 ) + [254] (dword) score_bcd#14 ← phi( play_move_down::@4/(dword) score_bcd#18 play_move_down::@7/(dword) score_bcd#27 ) + [254] (word) lines_bcd#15 ← phi( play_move_down::@4/(word) lines_bcd#19 play_move_down::@7/(word) lines_bcd#27 ) + [254] (byte) current_ypos#17 ← phi( play_move_down::@4/(byte) current_ypos#25 play_move_down::@7/(byte) current_ypos#36 ) + [254] (byte) current_movedown_counter#14 ← phi( play_move_down::@4/(byte) current_movedown_counter#12 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [254] (byte) play_move_down::return#3 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [255] return to:@return play_move_down::@6: scope:[play_move_down] from play_move_down::@18 - [258] (byte) current_ypos#2 ← ++ (byte) current_ypos#25 + [256] (byte) current_ypos#2 ← ++ (byte) current_ypos#25 to:play_move_down::@7 play_spawn_current: scope:[play_spawn_current] from main::@29 play_move_down::@21 - [259] (byte) game_over#70 ← phi( main::@29/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@21/(byte) game_over#19 ) + [257] (byte) game_over#70 ← phi( main::@29/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@21/(byte) game_over#19 ) to:play_spawn_current::@1 play_spawn_current::@1: scope:[play_spawn_current] from play_spawn_current play_spawn_current::@9 - [260] (byte) play_spawn_current::piece_idx#2 ← phi( play_spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 7 play_spawn_current::@9/(byte) play_spawn_current::piece_idx#1 ) - [261] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 + [258] (byte) play_spawn_current::piece_idx#2 ← phi( play_spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 7 play_spawn_current::@9/(byte) play_spawn_current::piece_idx#1 ) + [259] 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 - [262] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [263] (byte) current_piece_char#16 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) - [264] (byte*) current_piece_gfx#21 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 - [265] (byte) current_xpos#28 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) - [266] (byte) current_ypos#22 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) - [267] (byte) play_collision::xpos#4 ← (byte) current_xpos#28 - [268] (byte) play_collision::ypos#4 ← (byte) current_ypos#22 - [269] (byte*~) current_piece#94 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) - [270] call play_collision - [271] (byte) play_collision::return#10 ← (byte) play_collision::return#15 + [260] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [261] (byte) current_piece_char#16 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) + [262] (byte*) current_piece_gfx#21 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 + [263] (byte) current_xpos#28 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) + [264] (byte) current_ypos#22 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) + [265] (byte) play_collision::xpos#4 ← (byte) current_xpos#28 + [266] (byte) play_collision::ypos#4 ← (byte) current_ypos#22 + [267] (byte*~) current_piece#94 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + [268] call play_collision + [269] (byte) play_collision::return#10 ← (byte) play_collision::return#15 to:play_spawn_current::@10 play_spawn_current::@10: scope:[play_spawn_current] from play_spawn_current::@3 - [272] (byte~) play_spawn_current::$5 ← (byte) play_collision::return#10 - [273] if((byte~) play_spawn_current::$5!=(const byte) COLLISION_PLAYFIELD#0) goto play_spawn_current::@11 + [270] (byte~) play_spawn_current::$5 ← (byte) play_collision::return#10 + [271] if((byte~) play_spawn_current::$5!=(const byte) COLLISION_PLAYFIELD#0) goto play_spawn_current::@11 to:play_spawn_current::@return play_spawn_current::@return: scope:[play_spawn_current] from play_spawn_current::@10 play_spawn_current::@11 - [274] (byte) game_over#15 ← phi( play_spawn_current::@11/(byte) game_over#70 play_spawn_current::@10/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [275] return + [272] (byte) game_over#15 ← phi( play_spawn_current::@11/(byte) game_over#70 play_spawn_current::@10/(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [273] return to:@return play_spawn_current::@11: scope:[play_spawn_current] from play_spawn_current::@10 - [276] phi() + [274] phi() to:play_spawn_current::@return play_spawn_current::@2: scope:[play_spawn_current] from play_spawn_current::@1 - [277] phi() - [278] call sid_rnd - [279] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + [275] phi() + [276] call sid_rnd + [277] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 to:play_spawn_current::@9 play_spawn_current::@9: scope:[play_spawn_current] from play_spawn_current::@2 - [280] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 - [281] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [278] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 + [279] (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 - [282] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) + [280] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) to:sid_rnd::@return sid_rnd::@return: scope:[sid_rnd] from sid_rnd - [283] return + [281] return to:@return play_update_score: scope:[play_update_score] from play_move_down::@20 - [284] if((byte) play_update_score::removed#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_update_score::@return + [282] if((byte) play_update_score::removed#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_update_score::@return to:play_update_score::@3 play_update_score::@3: scope:[play_update_score] from play_update_score - [285] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 - [286] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 - [287] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 - [288] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) + [283] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 + [284] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 + [285] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 + [286] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) asm { sed } - [290] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 - [291] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 + [288] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 + [289] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 asm { cld } - [293] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 - [294] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 - [295] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return + [291] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 + [292] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 + [293] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return to:play_update_score::@4 play_update_score::@4: scope:[play_update_score] from play_update_score::@3 - [296] phi() - [297] call play_increase_level + [294] phi() + [295] call play_increase_level to:play_update_score::@return play_update_score::@return: scope:[play_update_score] from play_update_score play_update_score::@3 play_update_score::@4 - [298] (byte) level_bcd#19 ← phi( play_update_score/(byte) level_bcd#11 play_update_score::@3/(byte) level_bcd#11 play_update_score::@4/(byte) level_bcd#64 ) - [298] (byte) current_movedown_slow#23 ← phi( play_update_score/(byte) current_movedown_slow#14 play_update_score::@3/(byte) current_movedown_slow#14 play_update_score::@4/(byte) current_movedown_slow#69 ) - [298] (byte) level#18 ← phi( play_update_score/(byte) level#10 play_update_score::@3/(byte) level#10 play_update_score::@4/(byte) level#20 ) - [298] (dword) score_bcd#16 ← phi( play_update_score/(dword) score_bcd#18 play_update_score::@3/(dword) score_bcd#30 play_update_score::@4/(dword) score_bcd#30 ) - [298] (word) lines_bcd#17 ← phi( play_update_score/(word) lines_bcd#19 play_update_score::@3/(word) lines_bcd#30 play_update_score::@4/(word) lines_bcd#30 ) - [299] return + [296] (byte) level_bcd#19 ← phi( play_update_score/(byte) level_bcd#11 play_update_score::@3/(byte) level_bcd#11 play_update_score::@4/(byte) level_bcd#64 ) + [296] (byte) current_movedown_slow#23 ← phi( play_update_score/(byte) current_movedown_slow#14 play_update_score::@3/(byte) current_movedown_slow#14 play_update_score::@4/(byte) current_movedown_slow#69 ) + [296] (byte) level#18 ← phi( play_update_score/(byte) level#10 play_update_score::@3/(byte) level#10 play_update_score::@4/(byte) level#20 ) + [296] (dword) score_bcd#16 ← phi( play_update_score/(dword) score_bcd#18 play_update_score::@3/(dword) score_bcd#30 play_update_score::@4/(dword) score_bcd#30 ) + [296] (word) lines_bcd#17 ← phi( play_update_score/(word) lines_bcd#19 play_update_score::@3/(word) lines_bcd#30 play_update_score::@4/(word) lines_bcd#30 ) + [297] return to:@return play_increase_level: scope:[play_increase_level] from play_update_score::@4 - [300] (byte) level#20 ← ++ (byte) level#10 - [301] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 + [298] (byte) level#20 ← ++ (byte) level#10 + [299] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 to:play_increase_level::@5 play_increase_level::@5: scope:[play_increase_level] from play_increase_level - [302] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) + [300] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) to:play_increase_level::@2 play_increase_level::@2: scope:[play_increase_level] from play_increase_level play_increase_level::@5 - [303] (byte) current_movedown_slow#69 ← phi( play_increase_level/(byte/signed byte/word/signed word/dword/signed dword) 1 play_increase_level::@5/(byte) current_movedown_slow#10 ) - [304] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 - [305] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 - [306] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 + [301] (byte) current_movedown_slow#69 ← phi( play_increase_level/(byte/signed byte/word/signed word/dword/signed dword) 1 play_increase_level::@5/(byte) current_movedown_slow#10 ) + [302] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 + [303] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [304] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 to:play_increase_level::@7 play_increase_level::@7: scope:[play_increase_level] from play_increase_level::@2 - [307] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 + [305] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 to:play_increase_level::@3 play_increase_level::@3: scope:[play_increase_level] from play_increase_level::@2 play_increase_level::@7 - [308] (byte) level_bcd#64 ← phi( play_increase_level::@2/(byte) level_bcd#21 play_increase_level::@7/(byte) level_bcd#8 ) + [306] (byte) level_bcd#64 ← phi( play_increase_level::@2/(byte) level_bcd#21 play_increase_level::@7/(byte) level_bcd#8 ) asm { sed } to:play_increase_level::@4 play_increase_level::@4: scope:[play_increase_level] from play_increase_level::@3 play_increase_level::@4 - [310] (byte) play_increase_level::b#2 ← phi( play_increase_level::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 play_increase_level::@4/(byte) play_increase_level::b#1 ) - [311] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 - [312] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) - [313] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 - [314] if((byte) play_increase_level::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_increase_level::@4 + [308] (byte) play_increase_level::b#2 ← phi( play_increase_level::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 play_increase_level::@4/(byte) play_increase_level::b#1 ) + [309] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 + [310] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) + [311] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 + [312] if((byte) play_increase_level::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_increase_level::@4 to:play_increase_level::@8 play_increase_level::@8: scope:[play_increase_level] from play_increase_level::@4 asm { cld } to:play_increase_level::@return play_increase_level::@return: scope:[play_increase_level] from play_increase_level::@8 - [316] return + [314] return to:@return play_remove_lines: scope:[play_remove_lines] from play_move_down::@19 - [317] phi() + [315] phi() to:play_remove_lines::@1 play_remove_lines::@1: scope:[play_remove_lines] from play_remove_lines play_remove_lines::@4 - [318] (byte) play_remove_lines::removed#11 ← phi( play_remove_lines/(byte/signed byte/word/signed word/dword/signed dword) 0 play_remove_lines::@4/(byte) play_remove_lines::removed#7 ) - [318] (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 ) - [318] (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 ) - [318] (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 ) + [316] (byte) play_remove_lines::removed#11 ← phi( play_remove_lines/(byte/signed byte/word/signed word/dword/signed dword) 0 play_remove_lines::@4/(byte) play_remove_lines::removed#7 ) + [316] (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 ) + [316] (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 ) + [316] (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 - [319] (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 ) - [319] (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 ) - [319] (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 ) - [319] (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 ) - [320] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) - [321] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 - [322] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@18 + [317] (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 ) + [317] (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 ) + [317] (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 ) + [317] (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 ) + [318] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) + [319] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 + [320] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@18 to:play_remove_lines::@3 play_remove_lines::@3: scope:[play_remove_lines] from play_remove_lines::@18 play_remove_lines::@2 - [323] (byte) play_remove_lines::full#2 ← phi( play_remove_lines::@18/(byte) play_remove_lines::full#4 play_remove_lines::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [324] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 - [325] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 - [326] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 - [327] 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 + [321] (byte) play_remove_lines::full#2 ← phi( play_remove_lines::@18/(byte) play_remove_lines::full#4 play_remove_lines::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [322] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 + [323] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 + [324] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 + [325] 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 - [328] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 + [326] 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 - [329] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 - [330] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 + [327] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 + [328] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 to:play_remove_lines::@4 play_remove_lines::@4: scope:[play_remove_lines] from play_remove_lines::@10 play_remove_lines::@9 - [331] (byte) play_remove_lines::removed#7 ← phi( play_remove_lines::@10/(byte) play_remove_lines::removed#1 play_remove_lines::@9/(byte) play_remove_lines::removed#11 ) - [331] (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 ) - [332] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 - [333] 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 + [329] (byte) play_remove_lines::removed#7 ← phi( play_remove_lines::@10/(byte) play_remove_lines::removed#1 play_remove_lines::@9/(byte) play_remove_lines::removed#11 ) + [329] (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 ) + [330] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 + [331] 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 - [334] (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 ) - [335] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 + [332] (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 ) + [333] 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 - [336] return + [334] return to:@return play_remove_lines::@6: scope:[play_remove_lines] from play_remove_lines::@5 - [337] *((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 - [338] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 + [335] *((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 + [336] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 to:play_remove_lines::@5 play_remove_lines::@18: scope:[play_remove_lines] from play_remove_lines::@2 - [339] phi() + [337] phi() to:play_remove_lines::@3 play_lock_current: scope:[play_lock_current] from play_move_down::@13 - [340] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#25 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [338] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#25 << (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 - [341] (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 ) - [341] (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 ) - [341] (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 ) - [342] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) - [343] (byte) play_lock_current::col#0 ← (byte) current_xpos#115 + [339] (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 ) + [339] (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 ) + [339] (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 ) + [340] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) + [341] (byte) play_lock_current::col#0 ← (byte) current_xpos#113 to:play_lock_current::@2 play_lock_current::@2: scope:[play_lock_current] from play_lock_current::@1 play_lock_current::@8 - [344] (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 ) - [344] (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 ) - [344] (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 ) - [345] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 - [346] if(*((byte*) current_piece_gfx#105 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 + [342] (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 ) + [342] (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 ) + [342] (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 ) + [343] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 + [344] if(*((byte*) current_piece_gfx#103 + (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 - [347] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#19 + [345] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#19 to:play_lock_current::@3 play_lock_current::@3: scope:[play_lock_current] from play_lock_current::@2 play_lock_current::@4 - [348] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 - [349] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 - [350] if((byte) play_lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@8 + [346] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 + [347] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 + [348] 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 - [351] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [352] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 - [353] if((byte) play_lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@7 + [349] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [350] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 + [351] 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 - [354] return + [352] return to:@return play_lock_current::@7: scope:[play_lock_current] from play_lock_current::@5 - [355] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 + [353] (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 - [356] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 + [354] (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 - [357] (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 ) - [358] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 - [359] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) - [360] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 - [361] (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) + [355] (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 ) + [356] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 + [357] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) + [358] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [359] (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 - [362] return + [360] return to:@return keyboard_event_get: scope:[keyboard_event_get] from main::@34 - [363] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return + [361] 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 - [364] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 - [365] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) + [362] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 + [363] (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 - [366] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) - [366] (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 ) - [367] return + [364] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) + [364] (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 ) + [365] return to:@return keyboard_event_scan: scope:[keyboard_event_scan] from main::@33 - [368] phi() + [366] phi() to:keyboard_event_scan::@1 keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@3 - [369] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) - [369] (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 ) - [369] (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 ) - [370] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 - [371] call keyboard_matrix_read - [372] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + [367] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) + [367] (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 ) + [367] (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 ) + [368] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 + [369] call keyboard_matrix_read + [370] (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 - [373] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 - [374] 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 + [371] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 + [372] 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 - [375] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 + [373] (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 - [376] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) - [376] (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 ) - [377] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 - [378] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 + [374] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) + [374] (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 ) + [375] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 + [376] 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 - [379] phi() - [380] call keyboard_event_pressed - [381] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + [377] phi() + [378] call keyboard_event_pressed + [379] (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 - [382] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 - [383] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 + [380] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + [381] 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 - [384] phi() + [382] phi() to:keyboard_event_scan::@9 keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@21 keyboard_event_scan::@26 - [385] (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 ) - [386] call keyboard_event_pressed - [387] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + [383] (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 ) + [384] call keyboard_event_pressed + [385] (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 - [388] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 - [389] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 + [386] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + [387] 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 - [390] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 + [388] (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 - [391] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) - [392] call keyboard_event_pressed - [393] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + [389] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) + [390] call keyboard_event_pressed + [391] (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 - [394] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 - [395] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 + [392] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + [393] 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 - [396] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 + [394] (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 - [397] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) - [398] call keyboard_event_pressed - [399] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + [395] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) + [396] call keyboard_event_pressed + [397] (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 - [400] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 - [401] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return + [398] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + [399] 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 - [402] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 + [400] (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 - [403] return + [401] return to:@return keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@25 keyboard_event_scan::@5 - [404] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) - [404] (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 ) - [404] (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 ) - [405] (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) - [406] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) - [407] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 + [402] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) + [402] (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 ) + [402] (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 ) + [403] (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) + [404] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) + [405] 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 - [408] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 + [406] 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 - [409] (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) - [410] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 + [407] (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) + [408] 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 - [411] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 - [412] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 + [409] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 + [410] (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 - [413] (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 ) - [414] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 - [415] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 - [416] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 + [411] (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 ) + [412] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 + [413] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 + [414] 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 - [417] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 + [415] *((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 - [418] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 - [419] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 - [420] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 + [416] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 + [417] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 + [418] (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 - [421] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) - [422] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) + [419] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) + [420] (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 - [423] return + [421] return to:@return render_show: scope:[render_show] from main::@6 - [424] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 + [422] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 to:render_show::toD0182 render_show::toD0182: scope:[render_show] from render_show - [425] phi() + [423] phi() to:render_show::@2 render_show::@2: scope:[render_show] from render_show::toD0181 render_show::toD0182 - [426] (byte) render_show::d018val#3 ← phi( render_show::toD0181/(const byte) render_show::toD0181_return#0 render_show::toD0182/(const byte) render_show::toD0182_return#0 ) - [427] *((const byte*) D018#0) ← (byte) render_show::d018val#3 - [428] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 + [424] (byte) render_show::d018val#3 ← phi( render_show::toD0181/(const byte) render_show::toD0181_return#0 render_show::toD0182/(const byte) render_show::toD0182_return#0 ) + [425] *((const byte*) D018#0) ← (byte) render_show::d018val#3 + [426] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 to:render_show::@return render_show::@return: scope:[render_show] from render_show::@2 - [429] return + [427] return to:@return render_show::toD0181: scope:[render_show] from render_show - [430] phi() + [428] phi() to:render_show::@2 play_init: scope:[play_init] from main::@28 - [431] phi() + [429] phi() to:play_init::@1 play_init::@1: scope:[play_init] from play_init play_init::@1 - [432] (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 ) - [432] (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 ) - [432] (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 ) - [433] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [434] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 - [435] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 - [436] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 - [437] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 - [438] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 - [439] 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 + [430] (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 ) + [430] (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 ) + [430] (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 ) + [431] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [432] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 + [433] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 + [434] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 + [435] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 + [436] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 + [437] 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::@3 play_init::@3: scope:[play_init] from play_init::@1 - [440] *((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 - [441] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0) + [438] *((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 + [439] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0) to:play_init::@2 play_init::@2: scope:[play_init] from play_init::@2 play_init::@3 - [442] (byte) play_init::b#2 ← phi( play_init::@2/(byte) play_init::b#1 play_init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [443] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 - [444] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) - [445] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 - [446] if((byte) play_init::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_init::@2 + [440] (byte) play_init::b#2 ← phi( play_init::@2/(byte) play_init::b#1 play_init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [441] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 + [442] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) + [443] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 + [444] if((byte) play_init::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_init::@2 to:play_init::@return play_init::@return: scope:[play_init] from play_init::@2 - [447] return + [445] return to:@return sprites_irq_init: scope:[sprites_irq_init] from main::@27 asm { sei } - [449] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 + [447] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 asm { ldaCIA1_INTERRUPT } - [451] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 - [452] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 - [453] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [454] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 - [455] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 - [456] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 - [457] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() + [449] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 + [450] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 + [451] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 + [452] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 + [453] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 + [454] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 + [455] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() asm { cli } to:sprites_irq_init::@return sprites_irq_init::@return: scope:[sprites_irq_init] from sprites_irq_init - [459] return + [457] return to:@return sprites_init: scope:[sprites_init] from main::@26 - [460] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 - [461] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [462] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) - [463] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) + [458] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + [459] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [460] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) + [461] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) to:sprites_init::@1 sprites_init::@1: scope:[sprites_init] from sprites_init sprites_init::@1 - [464] (byte) sprites_init::xpos#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 sprites_init::@1/(byte) sprites_init::xpos#1 ) - [464] (byte) sprites_init::s#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 0 sprites_init::@1/(byte) sprites_init::s#1 ) - [465] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [466] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 - [467] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 - [468] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 - [469] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 - [470] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 + [462] (byte) sprites_init::xpos#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 sprites_init::@1/(byte) sprites_init::xpos#1 ) + [462] (byte) sprites_init::s#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 0 sprites_init::@1/(byte) sprites_init::s#1 ) + [463] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [464] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 + [465] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 + [466] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 + [467] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 + [468] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 to:sprites_init::@return sprites_init::@return: scope:[sprites_init] from sprites_init::@1 - [471] return + [469] return to:@return render_init: scope:[render_init] from main::@25 - [472] phi() + [470] phi() to:render_init::vicSelectGfxBank1 render_init::vicSelectGfxBank1: scope:[render_init] from render_init - [473] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [471] *((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 - [474] phi() + [472] phi() to:render_init::vicSelectGfxBank1_@1 render_init::vicSelectGfxBank1_@1: scope:[render_init] from render_init::vicSelectGfxBank1_toDd001 - [475] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 + [473] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 to:render_init::@3 render_init::@3: scope:[render_init] from render_init::vicSelectGfxBank1_@1 - [476] *((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 - [477] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 - [478] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 - [479] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 - [480] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 - [481] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 - [482] call render_screen_original + [474] *((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 + [475] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 + [476] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 + [477] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 + [478] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 + [479] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 + [480] call render_screen_original to:render_init::@4 render_init::@4: scope:[render_init] from render_init::@3 - [483] phi() - [484] call render_screen_original + [481] phi() + [482] call render_screen_original to:render_init::@1 render_init::@1: scope:[render_init] from render_init::@1 render_init::@4 - [485] (byte*) render_init::li_2#2 ← phi( render_init::@1/(byte*) render_init::li_2#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) - [485] (byte*) render_init::li_1#2 ← phi( render_init::@1/(byte*) render_init::li_1#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) - [485] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [486] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [487] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 - [488] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [489] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 - [490] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [491] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [492] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 - [493] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 + [483] (byte*) render_init::li_2#2 ← phi( render_init::@1/(byte*) render_init::li_2#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) + [483] (byte*) render_init::li_1#2 ← phi( render_init::@1/(byte*) render_init::li_1#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) + [483] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [484] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [485] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 + [486] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [487] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 + [488] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [489] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [490] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 + [491] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 to:render_init::@return render_init::@return: scope:[render_init] from render_init::@1 - [494] return + [492] return to:@return render_screen_original: scope:[render_screen_original] from render_init::@3 render_init::@4 - [495] (byte*) render_screen_original::screen#9 ← phi( render_init::@3/(const byte*) PLAYFIELD_SCREEN_1#0 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0 ) + [493] (byte*) render_screen_original::screen#9 ← phi( render_init::@3/(const byte*) PLAYFIELD_SCREEN_1#0 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0 ) to:render_screen_original::@1 render_screen_original::@1: scope:[render_screen_original] from render_screen_original render_screen_original::@7 - [496] (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 ) - [496] (byte*) render_screen_original::ocols#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::ocols#1 ) - [496] (byte*) render_screen_original::oscr#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::oscr#1 ) - [496] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS#0 render_screen_original::@7/(byte*) render_screen_original::cols#3 ) - [496] (byte*) render_screen_original::screen#8 ← phi( render_screen_original/(byte*) render_screen_original::screen#9 render_screen_original::@7/(byte*) render_screen_original::screen#10 ) + [494] (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 ) + [494] (byte*) render_screen_original::ocols#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::ocols#1 ) + [494] (byte*) render_screen_original::oscr#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::oscr#1 ) + [494] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS#0 render_screen_original::@7/(byte*) render_screen_original::cols#3 ) + [494] (byte*) render_screen_original::screen#8 ← phi( render_screen_original/(byte*) render_screen_original::screen#9 render_screen_original::@7/(byte*) render_screen_original::screen#10 ) to:render_screen_original::@2 render_screen_original::@2: scope:[render_screen_original] from render_screen_original::@1 render_screen_original::@2 - [497] (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 ) - [497] (byte*) render_screen_original::cols#4 ← phi( render_screen_original::@1/(byte*) render_screen_original::cols#7 render_screen_original::@2/(byte*) render_screen_original::cols#1 ) - [497] (byte*) render_screen_original::screen#5 ← phi( render_screen_original::@1/(byte*) render_screen_original::screen#8 render_screen_original::@2/(byte*) render_screen_original::screen#2 ) - [498] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 - [499] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 - [500] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 - [501] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 - [502] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 - [503] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 + [495] (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 ) + [495] (byte*) render_screen_original::cols#4 ← phi( render_screen_original::@1/(byte*) render_screen_original::cols#7 render_screen_original::@2/(byte*) render_screen_original::cols#1 ) + [495] (byte*) render_screen_original::screen#5 ← phi( render_screen_original::@1/(byte*) render_screen_original::screen#8 render_screen_original::@2/(byte*) render_screen_original::screen#2 ) + [496] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 + [497] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 + [498] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 + [499] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 + [500] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 + [501] 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 - [504] (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 ) - [504] (byte*) render_screen_original::cols#5 ← phi( render_screen_original::@2/(byte*) render_screen_original::cols#1 render_screen_original::@3/(byte*) render_screen_original::cols#2 ) - [504] (byte*) render_screen_original::ocols#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::ocols#4 render_screen_original::@3/(byte*) render_screen_original::ocols#1 ) - [504] (byte*) render_screen_original::screen#6 ← phi( render_screen_original::@2/(byte*) render_screen_original::screen#2 render_screen_original::@3/(byte*) render_screen_original::screen#3 ) - [504] (byte*) render_screen_original::oscr#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::oscr#4 render_screen_original::@3/(byte*) render_screen_original::oscr#1 ) - [505] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) - [506] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 - [507] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 - [508] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) - [509] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 - [510] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 - [511] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 - [512] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 + [502] (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 ) + [502] (byte*) render_screen_original::cols#5 ← phi( render_screen_original::@2/(byte*) render_screen_original::cols#1 render_screen_original::@3/(byte*) render_screen_original::cols#2 ) + [502] (byte*) render_screen_original::ocols#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::ocols#4 render_screen_original::@3/(byte*) render_screen_original::ocols#1 ) + [502] (byte*) render_screen_original::screen#6 ← phi( render_screen_original::@2/(byte*) render_screen_original::screen#2 render_screen_original::@3/(byte*) render_screen_original::screen#3 ) + [502] (byte*) render_screen_original::oscr#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::oscr#4 render_screen_original::@3/(byte*) render_screen_original::oscr#1 ) + [503] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) + [504] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 + [505] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 + [506] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) + [507] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 + [508] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 + [509] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 + [510] 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 - [513] (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 ) - [513] (byte*) render_screen_original::cols#6 ← phi( render_screen_original::@3/(byte*) render_screen_original::cols#2 render_screen_original::@4/(byte*) render_screen_original::cols#3 ) - [513] (byte*) render_screen_original::screen#7 ← phi( render_screen_original::@3/(byte*) render_screen_original::screen#3 render_screen_original::@4/(byte*) render_screen_original::screen#10 ) - [514] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 - [515] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 - [516] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 - [517] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 - [518] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 - [519] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 + [511] (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 ) + [511] (byte*) render_screen_original::cols#6 ← phi( render_screen_original::@3/(byte*) render_screen_original::cols#2 render_screen_original::@4/(byte*) render_screen_original::cols#3 ) + [511] (byte*) render_screen_original::screen#7 ← phi( render_screen_original::@3/(byte*) render_screen_original::screen#3 render_screen_original::@4/(byte*) render_screen_original::screen#10 ) + [512] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 + [513] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 + [514] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 + [515] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 + [516] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 + [517] 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 - [520] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 - [521] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 + [518] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 + [519] 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 - [522] return + [520] return to:@return sid_rnd_init: scope:[sid_rnd_init] from main - [523] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 - [524] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 + [521] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 + [522] *((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 - [525] return + [523] return to:@return sprites_irq: scope:[sprites_irq] from asm { cld } - [527] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 - [528] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 - [529] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 - [530] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 - [531] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 - [532] (byte/signed word/word/dword/signed dword~) sprites_irq::$0 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [533] (byte) sprites_irq::raster_sprite_gfx_modify#0 ← (byte/signed word/word/dword/signed dword~) sprites_irq::$0 + [525] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 + [526] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 + [527] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 + [528] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 + [529] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 + [530] (byte/signed word/word/dword/signed dword~) sprites_irq::$0 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [531] (byte) sprites_irq::raster_sprite_gfx_modify#0 ← (byte/signed word/word/dword/signed dword~) sprites_irq::$0 to:sprites_irq::@1 sprites_irq::@1: scope:[sprites_irq] from sprites_irq sprites_irq::@1 - [534] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 + [532] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 to:sprites_irq::@8 sprites_irq::@8: scope:[sprites_irq] from sprites_irq::@1 - [535] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 - [536] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 + [533] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 + [534] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 to:sprites_irq::@9 sprites_irq::@9: scope:[sprites_irq] from sprites_irq::@8 - [537] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 - [538] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 - [539] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 - [540] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 - [541] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 - [542] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 + [535] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 + [536] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 + [537] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 + [538] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 + [539] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 + [540] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 to:sprites_irq::@3 sprites_irq::@3: scope:[sprites_irq] from sprites_irq::@2 sprites_irq::@9 - [543] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 - [544] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 + [541] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 + [542] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 to:sprites_irq::@11 sprites_irq::@11: scope:[sprites_irq] from sprites_irq::@3 - [545] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 + [543] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 to:sprites_irq::@12 sprites_irq::@12: scope:[sprites_irq] from sprites_irq::@11 - [546] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 - [547] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [548] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 + [544] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 + [545] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [546] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:sprites_irq::@7 sprites_irq::@7: scope:[sprites_irq] from sprites_irq::@12 sprites_irq::@15 sprites_irq::@5 - [549] (byte) irq_raster_next#4 ← phi( sprites_irq::@12/(byte) irq_raster_next#3 sprites_irq::@15/(byte) irq_raster_next#1 sprites_irq::@5/(byte) irq_raster_next#2 ) - [550] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 - [551] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 + [547] (byte) irq_raster_next#4 ← phi( sprites_irq::@12/(byte) irq_raster_next#3 sprites_irq::@15/(byte) irq_raster_next#1 sprites_irq::@5/(byte) irq_raster_next#2 ) + [548] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 + [549] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 to:sprites_irq::@return sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@7 - [552] return + [550] return to:@return sprites_irq::@5: scope:[sprites_irq] from sprites_irq::@11 - [553] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [554] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 - [555] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [556] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 + [551] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [552] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 + [553] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [554] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:sprites_irq::@7 sprites_irq::@4: scope:[sprites_irq] from sprites_irq::@3 - [557] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [558] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 + [555] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [556] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 to:sprites_irq::toSpritePtr2 sprites_irq::toSpritePtr2: scope:[sprites_irq] from sprites_irq::@4 - [559] phi() + [557] phi() to:sprites_irq::@15 sprites_irq::@15: scope:[sprites_irq] from sprites_irq::toSpritePtr2 - [560] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 + [558] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 to:sprites_irq::@7 sprites_irq::@2: scope:[sprites_irq] from sprites_irq::@8 - [561] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 - [562] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 - [563] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 - [564] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 - [565] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 - [566] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 + [559] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 + [560] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 + [561] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 + [562] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 + [563] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 + [564] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 to:sprites_irq::@3 @@ -10858,35 +10786,35 @@ VARIABLE REGISTER WEIGHTS (byte*~) current_piece#94 4.0 (byte*~) current_piece#95 4.0 (byte) current_piece_char -(byte~) current_piece_char#104 4.0 -(byte~) current_piece_char#105 22.0 +(byte~) current_piece_char#102 4.0 +(byte~) current_piece_char#103 22.0 (byte) current_piece_char#14 3.628571428571428 (byte) current_piece_char#16 0.32 (byte) current_piece_char#19 187.38888888888889 (byte) current_piece_char#27 6.0 -(byte) current_piece_char#76 46.09090909090909 +(byte) current_piece_char#64 50.699999999999996 (byte*) current_piece_gfx -(byte*) current_piece_gfx#105 187.38888888888889 -(byte*~) current_piece_gfx#116 2.0 -(byte*~) current_piece_gfx#117 11.0 +(byte*) current_piece_gfx#103 187.38888888888889 +(byte*~) current_piece_gfx#114 2.0 +(byte*~) current_piece_gfx#115 11.0 (byte*) current_piece_gfx#16 7.055555555555554 (byte*) current_piece_gfx#18 0.3571428571428571 (byte*) current_piece_gfx#19 1.3333333333333333 (byte*) current_piece_gfx#21 0.3333333333333333 (byte*) current_piece_gfx#33 6.0 (byte*) current_piece_gfx#6 4.0 -(byte*) current_piece_gfx#63 46.09090909090909 +(byte*) current_piece_gfx#62 50.699999999999996 (byte) current_xpos -(byte) current_xpos#115 20.75925925925926 -(byte~) current_xpos#126 1.3333333333333333 -(byte~) current_xpos#127 7.333333333333333 +(byte) current_xpos#113 20.75925925925926 +(byte~) current_xpos#124 1.3333333333333333 +(byte~) current_xpos#125 7.333333333333333 (byte) current_xpos#17 7.055555555555554 (byte) current_xpos#20 0.7692307692307692 (byte) current_xpos#24 0.4666666666666666 (byte) current_xpos#28 0.43478260869565216 (byte) current_xpos#41 6.0 (byte) current_xpos#5 4.0 -(byte) current_xpos#57 5.181818181818182 +(byte) current_xpos#57 5.7 (byte) current_xpos#7 4.0 (byte) current_ypos (byte~) current_ypos#100 1.0 @@ -11273,31 +11201,31 @@ VARIABLE REGISTER WEIGHTS (byte*) render_init::vicSelectGfxBank1_toDd001_gfx (byte) render_init::vicSelectGfxBank1_toDd001_return (void()) render_moving() -(byte~) render_moving::$5 202.0 +(byte~) render_moving::$2 202.0 (byte) render_moving::c (byte) render_moving::c#1 1501.5 -(byte) render_moving::c#2 286.0 +(byte) render_moving::c#2 333.6666666666667 (byte) render_moving::current_cell (byte) render_moving::current_cell#0 1001.0 (byte) render_moving::i (byte) render_moving::i#1 202.0 -(byte) render_moving::i#10 429.0 -(byte) render_moving::i#3 50.5 +(byte) render_moving::i#2 500.5 +(byte) render_moving::i#3 60.599999999999994 (byte) render_moving::i#4 1552.0 (byte) render_moving::i#8 300.75 (byte) render_moving::l (byte) render_moving::l#1 151.5 -(byte) render_moving::l#4 11.222222222222221 +(byte) render_moving::l#4 12.625 (byte*) render_moving::screen_line -(byte*) render_moving::screen_line#0 100.18181818181819 +(byte*) render_moving::screen_line#0 110.19999999999999 (byte) render_moving::xpos (byte) render_moving::xpos#0 202.0 (byte) render_moving::xpos#1 667.3333333333334 -(byte) render_moving::xpos#2 684.1666666666667 +(byte) render_moving::xpos#2 620.8 (byte) render_moving::ypos2 (byte) render_moving::ypos2#0 4.0 (byte) render_moving::ypos2#1 67.33333333333333 -(byte) render_moving::ypos2#2 29.823529411764707 +(byte) render_moving::ypos2#2 27.06666666666667 (void()) render_playfield() (byte~) render_playfield::$2 202.0 (byte~) render_playfield::$3 202.0 @@ -11363,9 +11291,9 @@ VARIABLE REGISTER WEIGHTS (byte) render_screen_render#11 3.25 (byte) render_screen_render#17 0.7551020408163266 (byte) render_screen_render#21 8.615384615384615 -(byte) render_screen_render#30 5.090909090909091 -(byte~) render_screen_render#66 5.5 -(byte~) render_screen_render#67 22.0 +(byte) render_screen_render#30 5.6 +(byte~) render_screen_render#64 5.5 +(byte~) render_screen_render#65 22.0 (byte) render_screen_show (byte) render_screen_show#13 4.333333333333333 (byte) render_screen_show#16 0.48571428571428577 @@ -11458,16 +11386,16 @@ Initial phi equivalence classes [ render_bcd::bcd#6 render_bcd::bcd#0 render_bcd::bcd#1 render_bcd::bcd#2 render_bcd::bcd#3 render_bcd::bcd#4 render_bcd::bcd#5 ] [ render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 ] [ current_ypos#11 current_ypos#100 current_ypos#101 ] -[ render_screen_render#30 render_screen_render#66 ] -[ current_xpos#57 current_xpos#126 current_xpos#127 ] -[ current_piece_gfx#63 current_piece_gfx#116 current_piece_gfx#117 ] -[ current_piece_char#76 current_piece_char#104 current_piece_char#105 ] +[ render_screen_render#30 render_screen_render#64 ] +[ current_xpos#57 current_xpos#124 current_xpos#125 ] +[ current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 ] +[ current_piece_char#64 current_piece_char#102 current_piece_char#103 ] [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] [ render_moving::l#4 render_moving::l#1 ] -[ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#10 render_moving::i#1 ] +[ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] [ render_moving::c#2 render_moving::c#1 ] -[ render_screen_render#21 render_screen_render#67 ] +[ render_screen_render#21 render_screen_render#65 ] [ render_playfield::l#2 render_playfield::l#1 ] [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] @@ -11496,8 +11424,8 @@ Initial phi equivalence classes [ current_piece#27 current_piece#95 current_piece#20 current_piece#14 current_piece#88 ] [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] -[ current_piece_gfx#33 current_piece_gfx#105 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] -[ current_xpos#41 current_xpos#115 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] +[ current_piece_gfx#33 current_piece_gfx#103 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] +[ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] [ play_move_down::return#3 ] [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] @@ -11552,7 +11480,7 @@ Added variable render_bcd::$4 to zero page equivalence class [ render_bcd::$4 ] Added variable render_bcd::$5 to zero page equivalence class [ render_bcd::$5 ] Added variable render_bcd::$6 to zero page equivalence class [ render_bcd::$6 ] Added variable render_bcd::screen_pos#1 to zero page equivalence class [ render_bcd::screen_pos#1 ] -Added variable render_moving::$5 to zero page equivalence class [ render_moving::$5 ] +Added variable render_moving::$2 to zero page equivalence class [ render_moving::$2 ] Added variable render_moving::screen_line#0 to zero page equivalence class [ render_moving::screen_line#0 ] Added variable render_moving::current_cell#0 to zero page equivalence class [ render_moving::current_cell#0 ] Added variable render_playfield::$2 to zero page equivalence class [ render_playfield::$2 ] @@ -11657,16 +11585,16 @@ Complete equivalence classes [ render_bcd::bcd#6 render_bcd::bcd#0 render_bcd::bcd#1 render_bcd::bcd#2 render_bcd::bcd#3 render_bcd::bcd#4 render_bcd::bcd#5 ] [ render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 ] [ current_ypos#11 current_ypos#100 current_ypos#101 ] -[ render_screen_render#30 render_screen_render#66 ] -[ current_xpos#57 current_xpos#126 current_xpos#127 ] -[ current_piece_gfx#63 current_piece_gfx#116 current_piece_gfx#117 ] -[ current_piece_char#76 current_piece_char#104 current_piece_char#105 ] +[ render_screen_render#30 render_screen_render#64 ] +[ current_xpos#57 current_xpos#124 current_xpos#125 ] +[ current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 ] +[ current_piece_char#64 current_piece_char#102 current_piece_char#103 ] [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] [ render_moving::l#4 render_moving::l#1 ] -[ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#10 render_moving::i#1 ] +[ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] [ render_moving::c#2 render_moving::c#1 ] -[ render_screen_render#21 render_screen_render#67 ] +[ render_screen_render#21 render_screen_render#65 ] [ render_playfield::l#2 render_playfield::l#1 ] [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] @@ -11695,8 +11623,8 @@ Complete equivalence classes [ current_piece#27 current_piece#95 current_piece#20 current_piece#14 current_piece#88 ] [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] -[ current_piece_gfx#33 current_piece_gfx#105 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] -[ current_xpos#41 current_xpos#115 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] +[ current_piece_gfx#33 current_piece_gfx#103 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] +[ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] [ play_move_down::return#3 ] [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] @@ -11751,7 +11679,7 @@ Complete equivalence classes [ render_bcd::$5 ] [ render_bcd::$6 ] [ render_bcd::screen_pos#1 ] -[ render_moving::$5 ] +[ render_moving::$2 ] [ render_moving::screen_line#0 ] [ render_moving::current_cell#0 ] [ render_playfield::$2 ] @@ -11855,16 +11783,16 @@ Allocated zp ZP_BYTE:11 [ render_bcd::only_low#6 ] Allocated zp ZP_BYTE:12 [ render_bcd::bcd#6 render_bcd::bcd#0 render_bcd::bcd#1 render_bcd::bcd#2 render_bcd::bcd#3 render_bcd::bcd#4 render_bcd::bcd#5 ] Allocated zp ZP_WORD:13 [ render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 ] Allocated zp ZP_BYTE:15 [ current_ypos#11 current_ypos#100 current_ypos#101 ] -Allocated zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#66 ] -Allocated zp ZP_BYTE:17 [ current_xpos#57 current_xpos#126 current_xpos#127 ] -Allocated zp ZP_WORD:18 [ current_piece_gfx#63 current_piece_gfx#116 current_piece_gfx#117 ] -Allocated zp ZP_BYTE:20 [ current_piece_char#76 current_piece_char#104 current_piece_char#105 ] +Allocated zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 ] +Allocated zp ZP_BYTE:17 [ current_xpos#57 current_xpos#124 current_xpos#125 ] +Allocated zp ZP_WORD:18 [ current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 ] +Allocated zp ZP_BYTE:20 [ current_piece_char#64 current_piece_char#102 current_piece_char#103 ] Allocated zp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] Allocated zp ZP_BYTE:22 [ render_moving::l#4 render_moving::l#1 ] -Allocated zp ZP_BYTE:23 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#10 render_moving::i#1 ] +Allocated zp ZP_BYTE:23 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] Allocated zp ZP_BYTE:24 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] Allocated zp ZP_BYTE:25 [ render_moving::c#2 render_moving::c#1 ] -Allocated zp ZP_BYTE:26 [ render_screen_render#21 render_screen_render#67 ] +Allocated zp ZP_BYTE:26 [ render_screen_render#21 render_screen_render#65 ] Allocated zp ZP_BYTE:27 [ render_playfield::l#2 render_playfield::l#1 ] Allocated zp ZP_BYTE:28 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] Allocated zp ZP_WORD:29 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] @@ -11893,8 +11821,8 @@ Allocated zp ZP_BYTE:57 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 le Allocated zp ZP_WORD:58 [ current_piece#27 current_piece#95 current_piece#20 current_piece#14 current_piece#88 ] Allocated zp ZP_BYTE:60 [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] Allocated zp ZP_BYTE:61 [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] -Allocated zp ZP_WORD:62 [ current_piece_gfx#33 current_piece_gfx#105 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] -Allocated zp ZP_BYTE:64 [ current_xpos#41 current_xpos#115 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] +Allocated zp ZP_WORD:62 [ current_piece_gfx#33 current_piece_gfx#103 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] +Allocated zp ZP_BYTE:64 [ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] Allocated zp ZP_BYTE:65 [ play_move_down::return#3 ] Allocated zp ZP_BYTE:66 [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] Allocated zp ZP_BYTE:67 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] @@ -11949,7 +11877,7 @@ Allocated zp ZP_BYTE:122 [ render_bcd::$4 ] Allocated zp ZP_BYTE:123 [ render_bcd::$5 ] Allocated zp ZP_BYTE:124 [ render_bcd::$6 ] Allocated zp ZP_WORD:125 [ render_bcd::screen_pos#1 ] -Allocated zp ZP_BYTE:127 [ render_moving::$5 ] +Allocated zp ZP_BYTE:127 [ render_moving::$2 ] Allocated zp ZP_WORD:128 [ render_moving::screen_line#0 ] Allocated zp ZP_BYTE:130 [ render_moving::current_cell#0 ] Allocated zp ZP_BYTE:131 [ render_playfield::$2 ] @@ -12166,18 +12094,18 @@ INITIAL ASM .label render_screen_render_21 = $1a .label render_screen_render_30 = $10 .label current_xpos_57 = $11 - .label current_piece_gfx_63 = $12 - .label current_piece_char_76 = $14 + .label current_piece_gfx_62 = $12 + .label current_piece_char_64 = $14 .label current_ypos_100 = $f .label current_ypos_101 = $f - .label render_screen_render_66 = $10 - .label current_xpos_126 = $11 - .label current_xpos_127 = $11 - .label current_piece_gfx_116 = $12 - .label current_piece_gfx_117 = $12 - .label current_piece_char_104 = $14 - .label current_piece_char_105 = $14 - .label render_screen_render_67 = $1a + .label render_screen_render_64 = $10 + .label current_xpos_124 = $11 + .label current_xpos_125 = $11 + .label current_piece_gfx_114 = $12 + .label current_piece_gfx_115 = $12 + .label current_piece_char_102 = $14 + .label current_piece_char_103 = $14 + .label render_screen_render_65 = $1a .label current_piece_90 = $23 .label current_piece_91 = $23 .label current_piece_92 = $23 @@ -12247,7 +12175,7 @@ main: { //SEG27 asm { sei } sei //SEG28 [17] call render_init - //SEG29 [472] phi from main::@25 to render_init [phi:main::@25->render_init] + //SEG29 [470] phi from main::@25 to render_init [phi:main::@25->render_init] render_init_from_b25: jsr render_init //SEG30 [18] phi from main::@25 to main::@26 [phi:main::@25->main::@26] @@ -12270,7 +12198,7 @@ main: { //SEG37 main::@28 b28: //SEG38 [23] call play_init - //SEG39 [431] phi from main::@28 to play_init [phi:main::@28->play_init] + //SEG39 [429] phi from main::@28 to play_init [phi:main::@28->play_init] play_init_from_b28: jsr play_init //SEG40 [24] phi from main::@28 to main::@29 [phi:main::@28->main::@29] @@ -12279,9 +12207,9 @@ main: { //SEG41 main::@29 b29: //SEG42 [25] call play_spawn_current - //SEG43 [259] phi from main::@29 to play_spawn_current [phi:main::@29->play_spawn_current] + //SEG43 [257] phi from main::@29 to play_spawn_current [phi:main::@29->play_spawn_current] play_spawn_current_from_b29: - //SEG44 [259] phi (byte) game_over#70 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@29->play_spawn_current#0] -- vbuz1=vbuc1 + //SEG44 [257] phi (byte) game_over#70 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@29->play_spawn_current#0] -- vbuz1=vbuc1 lda #0 sta game_over jsr play_spawn_current @@ -12291,9 +12219,9 @@ main: { //SEG46 main::@30 b30: //SEG47 [27] call render_playfield - //SEG48 [124] phi from main::@30 to render_playfield [phi:main::@30->render_playfield] + //SEG48 [122] phi from main::@30 to render_playfield [phi:main::@30->render_playfield] render_playfield_from_b30: - //SEG49 [124] phi (byte) render_screen_render#21 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@30->render_playfield#0] -- vbuz1=vbuc1 + //SEG49 [122] phi (byte) render_screen_render#21 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@30->render_playfield#0] -- vbuz1=vbuc1 lda #$40 sta render_screen_render_21 jsr render_playfield @@ -12303,23 +12231,23 @@ main: { //SEG51 [28] (byte~) current_ypos#100 ← (byte) current_ypos#22 -- vbuz1=vbuz2 lda current_ypos sta current_ypos_100 - //SEG52 [29] (byte~) current_xpos#126 ← (byte) current_xpos#28 -- vbuz1=vbuz2 + //SEG52 [29] (byte~) current_xpos#124 ← (byte) current_xpos#28 -- vbuz1=vbuz2 lda current_xpos - sta current_xpos_126 - //SEG53 [30] (byte*~) current_piece_gfx#116 ← (byte*) current_piece_gfx#21 -- pbuz1=pbuz2 + sta current_xpos_124 + //SEG53 [30] (byte*~) current_piece_gfx#114 ← (byte*) current_piece_gfx#21 -- pbuz1=pbuz2 lda current_piece_gfx - sta current_piece_gfx_116 + sta current_piece_gfx_114 lda current_piece_gfx+1 - sta current_piece_gfx_116+1 - //SEG54 [31] (byte~) current_piece_char#104 ← (byte) current_piece_char#16 -- vbuz1=vbuz2 + sta current_piece_gfx_114+1 + //SEG54 [31] (byte~) current_piece_char#102 ← (byte) current_piece_char#16 -- vbuz1=vbuz2 lda current_piece_char - sta current_piece_char_104 + sta current_piece_char_102 //SEG55 [32] call render_moving //SEG56 [101] phi from main::@31 to render_moving [phi:main::@31->render_moving] render_moving_from_b31: - //SEG57 [101] phi (byte) current_piece_char#76 = (byte~) current_piece_char#104 [phi:main::@31->render_moving#0] -- register_copy - //SEG58 [101] phi (byte*) current_piece_gfx#63 = (byte*~) current_piece_gfx#116 [phi:main::@31->render_moving#1] -- register_copy - //SEG59 [101] phi (byte) current_xpos#57 = (byte~) current_xpos#126 [phi:main::@31->render_moving#2] -- register_copy + //SEG57 [101] phi (byte) current_piece_char#64 = (byte~) current_piece_char#102 [phi:main::@31->render_moving#0] -- register_copy + //SEG58 [101] phi (byte*) current_piece_gfx#62 = (byte*~) current_piece_gfx#114 [phi:main::@31->render_moving#1] -- register_copy + //SEG59 [101] phi (byte) current_xpos#57 = (byte~) current_xpos#124 [phi:main::@31->render_moving#2] -- register_copy //SEG60 [101] phi (byte) render_screen_render#30 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@31->render_moving#3] -- vbuz1=vbuc1 lda #$40 sta render_screen_render_30 @@ -12359,8 +12287,8 @@ main: { sta keyboard_events_size //SEG70 [34] phi (byte) game_over#19 = (byte) game_over#15 [phi:main::@31->main::@1#6] -- register_copy //SEG71 [34] phi (byte) current_ypos#25 = (byte) current_ypos#22 [phi:main::@31->main::@1#7] -- register_copy - //SEG72 [34] phi (byte) current_xpos#115 = (byte) current_xpos#28 [phi:main::@31->main::@1#8] -- register_copy - //SEG73 [34] phi (byte*) current_piece_gfx#105 = (byte*) current_piece_gfx#21 [phi:main::@31->main::@1#9] -- register_copy + //SEG72 [34] phi (byte) current_xpos#113 = (byte) current_xpos#28 [phi:main::@31->main::@1#8] -- register_copy + //SEG73 [34] phi (byte*) current_piece_gfx#103 = (byte*) current_piece_gfx#21 [phi:main::@31->main::@1#9] -- register_copy //SEG74 [34] phi (byte) current_orientation#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#10] -- vbuz1=vbuc1 lda #0 sta current_orientation @@ -12384,8 +12312,8 @@ main: { //SEG86 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@11->main::@1#5] -- register_copy //SEG87 [34] phi (byte) game_over#19 = (byte) game_over#14 [phi:main::@11->main::@1#6] -- register_copy //SEG88 [34] phi (byte) current_ypos#25 = (byte) current_ypos#17 [phi:main::@11->main::@1#7] -- register_copy - //SEG89 [34] phi (byte) current_xpos#115 = (byte) current_xpos#17 [phi:main::@11->main::@1#8] -- register_copy - //SEG90 [34] phi (byte*) current_piece_gfx#105 = (byte*) current_piece_gfx#16 [phi:main::@11->main::@1#9] -- register_copy + //SEG89 [34] phi (byte) current_xpos#113 = (byte) current_xpos#17 [phi:main::@11->main::@1#8] -- register_copy + //SEG90 [34] phi (byte*) current_piece_gfx#103 = (byte*) current_piece_gfx#16 [phi:main::@11->main::@1#9] -- register_copy //SEG91 [34] phi (byte) current_orientation#12 = (byte) current_orientation#16 [phi:main::@11->main::@1#10] -- register_copy //SEG92 [34] phi (byte) current_piece_char#19 = (byte) current_piece_char#14 [phi:main::@11->main::@1#11] -- register_copy //SEG93 [34] phi (byte*) current_piece#20 = (byte*) current_piece#14 [phi:main::@11->main::@1#12] -- register_copy @@ -12413,7 +12341,7 @@ main: { //SEG102 main::@33 b33: //SEG103 [39] call keyboard_event_scan - //SEG104 [368] phi from main::@33 to keyboard_event_scan [phi:main::@33->keyboard_event_scan] + //SEG104 [366] phi from main::@33 to keyboard_event_scan [phi:main::@33->keyboard_event_scan] keyboard_event_scan_from_b33: jsr keyboard_event_scan //SEG105 [40] phi from main::@33 to main::@34 [phi:main::@33->main::@34] @@ -12468,13 +12396,13 @@ main: { jmp b23 //SEG122 main::@23 b23: - //SEG123 [51] (byte~) render_screen_render#67 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 + //SEG123 [51] (byte~) render_screen_render#65 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 lda render_screen_render - sta render_screen_render_67 + sta render_screen_render_65 //SEG124 [52] call render_playfield - //SEG125 [124] phi from main::@23 to render_playfield [phi:main::@23->render_playfield] + //SEG125 [122] phi from main::@23 to render_playfield [phi:main::@23->render_playfield] render_playfield_from_b23: - //SEG126 [124] phi (byte) render_screen_render#21 = (byte~) render_screen_render#67 [phi:main::@23->render_playfield#0] -- register_copy + //SEG126 [122] phi (byte) render_screen_render#21 = (byte~) render_screen_render#65 [phi:main::@23->render_playfield#0] -- register_copy jsr render_playfield jmp b37 //SEG127 main::@37 @@ -12482,27 +12410,27 @@ main: { //SEG128 [53] (byte~) current_ypos#101 ← (byte) current_ypos#17 -- vbuz1=vbuz2 lda current_ypos sta current_ypos_101 - //SEG129 [54] (byte~) render_screen_render#66 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 + //SEG129 [54] (byte~) render_screen_render#64 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 lda render_screen_render - sta render_screen_render_66 - //SEG130 [55] (byte~) current_xpos#127 ← (byte) current_xpos#17 -- vbuz1=vbuz2 + sta render_screen_render_64 + //SEG130 [55] (byte~) current_xpos#125 ← (byte) current_xpos#17 -- vbuz1=vbuz2 lda current_xpos - sta current_xpos_127 - //SEG131 [56] (byte*~) current_piece_gfx#117 ← (byte*) current_piece_gfx#16 -- pbuz1=pbuz2 + sta current_xpos_125 + //SEG131 [56] (byte*~) current_piece_gfx#115 ← (byte*) current_piece_gfx#16 -- pbuz1=pbuz2 lda current_piece_gfx - sta current_piece_gfx_117 + sta current_piece_gfx_115 lda current_piece_gfx+1 - sta current_piece_gfx_117+1 - //SEG132 [57] (byte~) current_piece_char#105 ← (byte) current_piece_char#14 -- vbuz1=vbuz2 + sta current_piece_gfx_115+1 + //SEG132 [57] (byte~) current_piece_char#103 ← (byte) current_piece_char#14 -- vbuz1=vbuz2 lda current_piece_char - sta current_piece_char_105 + sta current_piece_char_103 //SEG133 [58] call render_moving //SEG134 [101] phi from main::@37 to render_moving [phi:main::@37->render_moving] render_moving_from_b37: - //SEG135 [101] phi (byte) current_piece_char#76 = (byte~) current_piece_char#105 [phi:main::@37->render_moving#0] -- register_copy - //SEG136 [101] phi (byte*) current_piece_gfx#63 = (byte*~) current_piece_gfx#117 [phi:main::@37->render_moving#1] -- register_copy - //SEG137 [101] phi (byte) current_xpos#57 = (byte~) current_xpos#127 [phi:main::@37->render_moving#2] -- register_copy - //SEG138 [101] phi (byte) render_screen_render#30 = (byte~) render_screen_render#66 [phi:main::@37->render_moving#3] -- register_copy + //SEG135 [101] phi (byte) current_piece_char#64 = (byte~) current_piece_char#103 [phi:main::@37->render_moving#0] -- register_copy + //SEG136 [101] phi (byte*) current_piece_gfx#62 = (byte*~) current_piece_gfx#115 [phi:main::@37->render_moving#1] -- register_copy + //SEG137 [101] phi (byte) current_xpos#57 = (byte~) current_xpos#125 [phi:main::@37->render_moving#2] -- register_copy + //SEG138 [101] phi (byte) render_screen_render#30 = (byte~) render_screen_render#64 [phi:main::@37->render_moving#3] -- register_copy //SEG139 [101] phi (byte) current_ypos#11 = (byte~) current_ypos#101 [phi:main::@37->render_moving#4] -- register_copy jsr render_moving //SEG140 [59] phi from main::@37 to main::@38 [phi:main::@37->main::@38] @@ -12529,8 +12457,8 @@ main: { //SEG152 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@39->main::@1#5] -- register_copy //SEG153 [34] phi (byte) game_over#19 = (byte) game_over#14 [phi:main::@39->main::@1#6] -- register_copy //SEG154 [34] phi (byte) current_ypos#25 = (byte) current_ypos#17 [phi:main::@39->main::@1#7] -- register_copy - //SEG155 [34] phi (byte) current_xpos#115 = (byte) current_xpos#17 [phi:main::@39->main::@1#8] -- register_copy - //SEG156 [34] phi (byte*) current_piece_gfx#105 = (byte*) current_piece_gfx#16 [phi:main::@39->main::@1#9] -- register_copy + //SEG155 [34] phi (byte) current_xpos#113 = (byte) current_xpos#17 [phi:main::@39->main::@1#8] -- register_copy + //SEG156 [34] phi (byte*) current_piece_gfx#103 = (byte*) current_piece_gfx#16 [phi:main::@39->main::@1#9] -- register_copy //SEG157 [34] phi (byte) current_orientation#12 = (byte) current_orientation#16 [phi:main::@39->main::@1#10] -- register_copy //SEG158 [34] phi (byte) current_piece_char#19 = (byte) current_piece_char#14 [phi:main::@39->main::@1#11] -- register_copy //SEG159 [34] phi (byte*) current_piece#20 = (byte*) current_piece#14 [phi:main::@39->main::@1#12] -- register_copy @@ -12827,7 +12755,7 @@ render_bcd: { } //SEG249 render_moving render_moving: { - .label _5 = $7f + .label _2 = $7f .label ypos2 = $15 .label screen_line = $80 .label xpos = $18 @@ -12857,24 +12785,24 @@ render_moving: { jmp b1 //SEG259 render_moving::@1 b1: - //SEG260 [104] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@13 -- vbuz1_gt_vbuc1_then_la1 + //SEG260 [104] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@2 -- vbuz1_gt_vbuc1_then_la1 lda ypos2 cmp #2 beq !+ - bcs b13 + bcs b2 !: - jmp b7 - //SEG261 render_moving::@7 - b7: + jmp b6 + //SEG261 render_moving::@6 + b6: //SEG262 [105] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz1_plus_vbuc1 lda #4 clc adc i sta i - //SEG263 [106] phi from render_moving::@5 render_moving::@7 to render_moving::@3 [phi:render_moving::@5/render_moving::@7->render_moving::@3] + //SEG263 [106] phi from render_moving::@5 render_moving::@6 to render_moving::@3 [phi:render_moving::@5/render_moving::@6->render_moving::@3] b3_from_b5: - b3_from_b7: - //SEG264 [106] phi (byte) render_moving::i#8 = (byte) render_moving::i#10 [phi:render_moving::@5/render_moving::@7->render_moving::@3#0] -- register_copy + b3_from_b6: + //SEG264 [106] phi (byte) render_moving::i#8 = (byte) render_moving::i#2 [phi:render_moving::@5/render_moving::@6->render_moving::@3#0] -- register_copy jmp b3 //SEG265 render_moving::@3 b3: @@ -12894,83 +12822,69 @@ render_moving: { breturn: //SEG270 [110] return rts - //SEG271 render_moving::@13 - b13: - //SEG272 [111] if((byte) render_moving::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_moving::@2 -- vbuz1_lt_vbuc1_then_la1 - lda ypos2 - cmp #2*PLAYFIELD_LINES - bcc b2 - jmp b7 - //SEG273 render_moving::@2 + //SEG271 render_moving::@2 b2: - //SEG274 [112] (byte~) render_moving::$5 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 -- vbuz1=vbuz2_plus_vbuz3 + //SEG272 [111] (byte~) render_moving::$2 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 -- vbuz1=vbuz2_plus_vbuz3 lda render_screen_render_30 clc adc ypos2 - sta _5 - //SEG275 [113] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$5) -- pbuz1=pptc1_derefidx_vbuz2 - ldy _5 + sta _2 + //SEG273 [112] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$2) -- pbuz1=pptc1_derefidx_vbuz2 + ldy _2 lda screen_lines_1,y sta screen_line lda screen_lines_1+1,y sta screen_line+1 - //SEG276 [114] (byte) render_moving::xpos#0 ← (byte) current_xpos#57 -- vbuz1=vbuz2 + //SEG274 [113] (byte) render_moving::xpos#0 ← (byte) current_xpos#57 -- vbuz1=vbuz2 lda current_xpos_57 sta xpos - //SEG277 [115] phi from render_moving::@2 to render_moving::@4 [phi:render_moving::@2->render_moving::@4] + //SEG275 [114] phi from render_moving::@2 to render_moving::@4 [phi:render_moving::@2->render_moving::@4] b4_from_b2: - //SEG278 [115] phi (byte) render_moving::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving::@2->render_moving::@4#0] -- vbuz1=vbuc1 + //SEG276 [114] phi (byte) render_moving::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving::@2->render_moving::@4#0] -- vbuz1=vbuc1 lda #0 sta c - //SEG279 [115] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#0 [phi:render_moving::@2->render_moving::@4#1] -- register_copy - //SEG280 [115] phi (byte) render_moving::i#4 = (byte) render_moving::i#3 [phi:render_moving::@2->render_moving::@4#2] -- register_copy + //SEG277 [114] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#0 [phi:render_moving::@2->render_moving::@4#1] -- register_copy + //SEG278 [114] phi (byte) render_moving::i#4 = (byte) render_moving::i#3 [phi:render_moving::@2->render_moving::@4#2] -- register_copy jmp b4 - //SEG281 [115] phi from render_moving::@5 to render_moving::@4 [phi:render_moving::@5->render_moving::@4] + //SEG279 [114] phi from render_moving::@5 to render_moving::@4 [phi:render_moving::@5->render_moving::@4] b4_from_b5: - //SEG282 [115] phi (byte) render_moving::c#2 = (byte) render_moving::c#1 [phi:render_moving::@5->render_moving::@4#0] -- register_copy - //SEG283 [115] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#1 [phi:render_moving::@5->render_moving::@4#1] -- register_copy - //SEG284 [115] phi (byte) render_moving::i#4 = (byte) render_moving::i#10 [phi:render_moving::@5->render_moving::@4#2] -- register_copy + //SEG280 [114] phi (byte) render_moving::c#2 = (byte) render_moving::c#1 [phi:render_moving::@5->render_moving::@4#0] -- register_copy + //SEG281 [114] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#1 [phi:render_moving::@5->render_moving::@4#1] -- register_copy + //SEG282 [114] phi (byte) render_moving::i#4 = (byte) render_moving::i#2 [phi:render_moving::@5->render_moving::@4#2] -- register_copy jmp b4 - //SEG285 render_moving::@4 + //SEG283 render_moving::@4 b4: - //SEG286 [116] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_moving::i#4) -- vbuz1=pbuz2_derefidx_vbuz3 + //SEG284 [115] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#62 + (byte) render_moving::i#4) -- vbuz1=pbuz2_derefidx_vbuz3 ldy i - lda (current_piece_gfx_63),y + lda (current_piece_gfx_62),y sta current_cell - //SEG287 [117] (byte) render_moving::i#10 ← ++ (byte) render_moving::i#4 -- vbuz1=_inc_vbuz1 + //SEG285 [116] (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 -- vbuz1=_inc_vbuz1 inc i - //SEG288 [118] if((byte) render_moving::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_moving::@5 -- vbuz1_eq_0_then_la1 + //SEG286 [117] if((byte) render_moving::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_moving::@5 -- vbuz1_eq_0_then_la1 lda current_cell cmp #0 beq b5 - jmp b9 - //SEG289 render_moving::@9 - b9: - //SEG290 [119] if((byte) render_moving::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_moving::@5 -- vbuz1_ge_vbuc1_then_la1 - lda xpos - cmp #PLAYFIELD_COLS - bcs b5 - jmp b10 - //SEG291 render_moving::@10 - b10: - //SEG292 [120] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#76 -- pbuz1_derefidx_vbuz2=vbuz3 - lda current_piece_char_76 + jmp b8 + //SEG287 render_moving::@8 + b8: + //SEG288 [118] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#64 -- pbuz1_derefidx_vbuz2=vbuz3 + lda current_piece_char_64 ldy xpos sta (screen_line),y jmp b5 - //SEG293 render_moving::@5 + //SEG289 render_moving::@5 b5: - //SEG294 [121] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG290 [119] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG295 [122] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 -- vbuz1=_inc_vbuz1 + //SEG291 [120] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG296 [123] if((byte) render_moving::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG292 [121] if((byte) render_moving::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@4 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #4 bne b4_from_b5 jmp b3_from_b5 } -//SEG297 render_playfield +//SEG293 render_playfield render_playfield: { .label _2 = $83 .label _3 = $84 @@ -12978,87 +12892,87 @@ render_playfield: { .label i = $1c .label c = $1f .label l = $1b - //SEG298 [125] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + //SEG294 [123] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] b1_from_render_playfield: - //SEG299 [125] phi (byte) render_playfield::i#3 = (const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 + //SEG295 [123] phi (byte) render_playfield::i#3 = (const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 lda #PLAYFIELD_COLS*2 sta i - //SEG300 [125] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 + //SEG296 [123] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 lda #2 sta l jmp b1 - //SEG301 [125] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG297 [123] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] b1_from_b3: - //SEG302 [125] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG303 [125] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //SEG298 [123] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + //SEG299 [123] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy jmp b1 - //SEG304 render_playfield::@1 + //SEG300 render_playfield::@1 b1: - //SEG305 [126] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG301 [124] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda l asl sta _2 - //SEG306 [127] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 -- vbuz1=vbuz2_plus_vbuz3 + //SEG302 [125] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 -- vbuz1=vbuz2_plus_vbuz3 lda render_screen_render_21 clc adc _2 sta _3 - //SEG307 [128] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG303 [126] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy _3 lda screen_lines_1,y sta screen_line lda screen_lines_1+1,y sta screen_line+1 - //SEG308 [129] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG304 [127] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] b2_from_b1: - //SEG309 [129] 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 + //SEG305 [127] 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 - //SEG310 [129] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG311 [129] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //SEG306 [127] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + //SEG307 [127] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy jmp b2 - //SEG312 [129] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG308 [127] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] b2_from_b2: - //SEG313 [129] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG314 [129] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG315 [129] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //SEG309 [127] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + //SEG310 [127] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + //SEG311 [127] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy jmp b2 - //SEG316 render_playfield::@2 + //SEG312 render_playfield::@2 b2: - //SEG317 [130] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG313 [128] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy i lda playfield,y ldy #0 sta (screen_line),y - //SEG318 [131] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 + //SEG314 [129] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 inc screen_line bne !+ inc screen_line+1 !: - //SEG319 [132] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG315 [130] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG320 [133] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 + //SEG316 [131] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG321 [134] 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 + //SEG317 [132] 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 - //SEG322 render_playfield::@3 + //SEG318 render_playfield::@3 b3: - //SEG323 [135] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG319 [133] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG324 [136] 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 + //SEG320 [134] 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 - //SEG325 render_playfield::@return + //SEG321 render_playfield::@return breturn: - //SEG326 [137] return + //SEG322 [135] return rts } -//SEG327 play_movement +//SEG323 play_movement play_movement: { .label _0 = $87 .label _3 = $8a @@ -13068,84 +12982,84 @@ play_movement: { .label return = $20 .label key_event = $76 .label return_3 = $77 - //SEG328 [138] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 -- vbuz1=vbuz2 + //SEG324 [136] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_down.key_event - //SEG329 [139] call play_move_down + //SEG325 [137] call play_move_down jsr play_move_down - //SEG330 [140] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuz1=vbuz2 + //SEG326 [138] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuz1=vbuz2 lda play_move_down.return_3 sta play_move_down.return jmp b5 - //SEG331 play_movement::@5 + //SEG327 play_movement::@5 b5: - //SEG332 [141] (byte~) play_movement::$0 ← (byte) play_move_down::return#0 -- vbuz1=vbuz2 + //SEG328 [139] (byte~) play_movement::$0 ← (byte) play_move_down::return#0 -- vbuz1=vbuz2 lda play_move_down.return sta _0 - //SEG333 [142] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 -- vbuz1=vbuc1_plus_vbuz2 + //SEG329 [140] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 -- vbuz1=vbuc1_plus_vbuz2 lda #0 clc adc _0 sta render - //SEG334 [143] if((byte) game_over#14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movement::@1 -- vbuz1_eq_0_then_la1 + //SEG330 [141] if((byte) game_over#14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movement::@1 -- vbuz1_eq_0_then_la1 lda game_over cmp #0 beq b1 - //SEG335 [144] phi from play_movement::@5 play_movement::@7 to play_movement::@return [phi:play_movement::@5/play_movement::@7->play_movement::@return] + //SEG331 [142] phi from play_movement::@5 play_movement::@7 to play_movement::@return [phi:play_movement::@5/play_movement::@7->play_movement::@return] breturn_from_b5: breturn_from_b7: - //SEG336 [144] phi (byte) current_xpos#17 = (byte) current_xpos#20 [phi:play_movement::@5/play_movement::@7->play_movement::@return#0] -- register_copy - //SEG337 [144] phi (byte*) current_piece_gfx#16 = (byte*) current_piece_gfx#18 [phi:play_movement::@5/play_movement::@7->play_movement::@return#1] -- register_copy - //SEG338 [144] phi (byte) current_orientation#16 = (byte) current_orientation#19 [phi:play_movement::@5/play_movement::@7->play_movement::@return#2] -- register_copy - //SEG339 [144] phi (byte) play_movement::return#2 = (byte) play_movement::render#1 [phi:play_movement::@5/play_movement::@7->play_movement::@return#3] -- register_copy + //SEG332 [142] phi (byte) current_xpos#17 = (byte) current_xpos#20 [phi:play_movement::@5/play_movement::@7->play_movement::@return#0] -- register_copy + //SEG333 [142] phi (byte*) current_piece_gfx#16 = (byte*) current_piece_gfx#18 [phi:play_movement::@5/play_movement::@7->play_movement::@return#1] -- register_copy + //SEG334 [142] phi (byte) current_orientation#16 = (byte) current_orientation#19 [phi:play_movement::@5/play_movement::@7->play_movement::@return#2] -- register_copy + //SEG335 [142] phi (byte) play_movement::return#2 = (byte) play_movement::render#1 [phi:play_movement::@5/play_movement::@7->play_movement::@return#3] -- register_copy jmp breturn - //SEG340 play_movement::@return + //SEG336 play_movement::@return breturn: - //SEG341 [145] return + //SEG337 [143] return rts - //SEG342 play_movement::@1 + //SEG338 play_movement::@1 b1: - //SEG343 [146] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 -- vbuz1=vbuz2 + //SEG339 [144] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_leftright.key_event - //SEG344 [147] call play_move_leftright + //SEG340 [145] call play_move_leftright jsr play_move_leftright - //SEG345 [148] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 -- vbuz1=vbuz2 + //SEG341 [146] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 -- vbuz1=vbuz2 lda play_move_leftright.return_2 sta play_move_leftright.return jmp b6 - //SEG346 play_movement::@6 + //SEG342 play_movement::@6 b6: - //SEG347 [149] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 -- vbuz1=vbuz2 + //SEG343 [147] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 -- vbuz1=vbuz2 lda play_move_leftright.return sta _3 - //SEG348 [150] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 -- vbuz1=vbuz2_plus_vbuz3 + //SEG344 [148] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 -- vbuz1=vbuz2_plus_vbuz3 lda render clc adc _3 sta render_2 - //SEG349 [151] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 -- vbuz1=vbuz2 + //SEG345 [149] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_rotate.key_event - //SEG350 [152] call play_move_rotate + //SEG346 [150] call play_move_rotate jsr play_move_rotate - //SEG351 [153] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 -- vbuz1=vbuz2 + //SEG347 [151] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 -- vbuz1=vbuz2 lda play_move_rotate.return_2 sta play_move_rotate.return jmp b7 - //SEG352 play_movement::@7 + //SEG348 play_movement::@7 b7: - //SEG353 [154] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 -- vbuz1=vbuz2 + //SEG349 [152] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 -- vbuz1=vbuz2 lda play_move_rotate.return sta _4 - //SEG354 [155] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 -- vbuz1=vbuz2_plus_vbuz3 + //SEG350 [153] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 -- vbuz1=vbuz2_plus_vbuz3 lda render_2 clc adc _4 sta return jmp breturn_from_b7 } -//SEG355 play_move_rotate +//SEG351 play_move_rotate play_move_rotate: { .label _2 = $8f .label _4 = $92 @@ -13154,90 +13068,90 @@ play_move_rotate: { .label return = $8d .label orientation = $22 .label return_2 = $21 - //SEG356 [156] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuz1_eq_vbuc1_then_la1 + //SEG352 [154] 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 - //SEG357 play_move_rotate::@6 + //SEG353 play_move_rotate::@6 b6: - //SEG358 [157] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuz1_eq_vbuc1_then_la1 + //SEG354 [155] 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 - //SEG359 [158] 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] + //SEG355 [156] 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: - //SEG360 [158] phi (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#18 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy - //SEG361 [158] phi (byte) current_orientation#24 = (byte) current_orientation#19 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy - //SEG362 [158] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuz1=vbuc1 + //SEG356 [156] phi (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#18 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + //SEG357 [156] phi (byte) current_orientation#24 = (byte) current_orientation#19 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy + //SEG358 [156] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuz1=vbuc1 lda #0 sta return_2 jmp breturn - //SEG363 play_move_rotate::@return + //SEG359 play_move_rotate::@return breturn: - //SEG364 [159] return + //SEG360 [157] return rts - //SEG365 play_move_rotate::@2 + //SEG361 play_move_rotate::@2 b2: - //SEG366 [160] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#19 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_plus_vbuc1 + //SEG362 [158] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#19 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_plus_vbuc1 lda #$10 clc adc current_orientation sta _2 - //SEG367 [161] (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 + //SEG363 [159] (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 - //SEG368 [162] 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] + //SEG364 [160] 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: - //SEG369 [162] 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 + //SEG365 [160] 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 - //SEG370 play_move_rotate::@4 + //SEG366 play_move_rotate::@4 b4: - //SEG371 [163] (byte) play_collision::xpos#3 ← (byte) current_xpos#24 -- vbuz1=vbuz2 + //SEG367 [161] (byte) play_collision::xpos#3 ← (byte) current_xpos#24 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG372 [164] (byte) play_collision::ypos#3 ← (byte) current_ypos#17 -- vbuz1=vbuz2 + //SEG368 [162] (byte) play_collision::ypos#3 ← (byte) current_ypos#17 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG373 [165] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG369 [163] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta play_collision.orientation - //SEG374 [166] (byte*~) current_piece#93 ← (byte*) current_piece#14 -- pbuz1=pbuz2 + //SEG370 [164] (byte*~) current_piece#93 ← (byte*) current_piece#14 -- pbuz1=pbuz2 lda current_piece sta current_piece_93 lda current_piece+1 sta current_piece_93+1 - //SEG375 [167] call play_collision - //SEG376 [175] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] + //SEG371 [165] call play_collision + //SEG372 [173] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] play_collision_from_b4: - //SEG377 [175] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy - //SEG378 [175] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy - //SEG379 [175] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy - //SEG380 [175] phi (byte*) current_piece#16 = (byte*~) current_piece#93 [phi:play_move_rotate::@4->play_collision#3] -- register_copy + //SEG373 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy + //SEG374 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy + //SEG375 [173] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy + //SEG376 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#93 [phi:play_move_rotate::@4->play_collision#3] -- register_copy jsr play_collision - //SEG381 [168] (byte) play_collision::return#14 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 + //SEG377 [166] (byte) play_collision::return#14 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 lda play_collision.return_15 sta play_collision.return_14 jmp b14 - //SEG382 play_move_rotate::@14 + //SEG378 play_move_rotate::@14 b14: - //SEG383 [169] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 + //SEG379 [167] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 lda play_collision.return_14 sta _6 - //SEG384 [170] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG380 [168] 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 - //SEG385 play_move_rotate::@11 + //SEG381 play_move_rotate::@11 b11: - //SEG386 [171] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG382 [169] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG387 [172] (byte*) current_piece_gfx#6 ← (byte*) current_piece#14 + (byte) current_orientation#7 -- pbuz1=pbuz2_plus_vbuz3 + //SEG383 [170] (byte*) current_piece_gfx#6 ← (byte*) current_piece#14 + (byte) current_orientation#7 -- pbuz1=pbuz2_plus_vbuz3 lda current_orientation clc adc current_piece @@ -13245,28 +13159,28 @@ play_move_rotate: { lda #0 adc current_piece+1 sta current_piece_gfx+1 - //SEG388 [158] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG384 [156] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] breturn_from_b11: - //SEG389 [158] phi (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#6 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG390 [158] phi (byte) current_orientation#24 = (byte) current_orientation#7 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG391 [158] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuz1=vbuc1 + //SEG385 [156] phi (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#6 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG386 [156] phi (byte) current_orientation#24 = (byte) current_orientation#7 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy + //SEG387 [156] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuz1=vbuc1 lda #1 sta return_2 jmp breturn - //SEG392 play_move_rotate::@1 + //SEG388 play_move_rotate::@1 b1: - //SEG393 [173] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#19 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_minus_vbuc1 + //SEG389 [171] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#19 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_minus_vbuc1 lda current_orientation sec sbc #$10 sta _4 - //SEG394 [174] (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 + //SEG390 [172] (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 } -//SEG395 play_collision +//SEG391 play_collision play_collision: { .label _7 = $98 .label xpos = $27 @@ -13289,7 +13203,7 @@ play_collision: { .label i_3 = $2a .label i_11 = $2a .label i_13 = $2a - //SEG396 [176] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#16 + (byte) play_collision::orientation#5 -- pbuz1=pbuz2_plus_vbuz3 + //SEG392 [174] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#16 + (byte) play_collision::orientation#5 -- pbuz1=pbuz2_plus_vbuz3 lda orientation clc adc current_piece_16 @@ -13297,290 +13211,290 @@ play_collision: { lda #0 adc current_piece_16+1 sta piece_gfx+1 - //SEG397 [177] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG393 [175] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda ypos asl sta ypos2 - //SEG398 [178] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] + //SEG394 [176] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] b1_from_play_collision: - //SEG399 [178] 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 + //SEG395 [176] 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 - //SEG400 [178] 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 + //SEG396 [176] 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 - //SEG401 [178] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy + //SEG397 [176] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy jmp b1 - //SEG402 play_collision::@1 + //SEG398 play_collision::@1 b1: - //SEG403 [179] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG399 [177] (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 - //SEG404 [180] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#6 -- vbuz1=vbuz2 + //SEG400 [178] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#6 -- vbuz1=vbuz2 lda xpos sta col - //SEG405 [181] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] + //SEG401 [179] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] b2_from_b1: - //SEG406 [181] 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 + //SEG402 [179] 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 - //SEG407 [181] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy - //SEG408 [181] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy + //SEG403 [179] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy + //SEG404 [179] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy jmp b2 - //SEG409 play_collision::@2 + //SEG405 play_collision::@2 b2: - //SEG410 [182] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG406 [180] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG411 [183] 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 + //SEG407 [181] 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 - //SEG412 play_collision::@8 + //SEG408 play_collision::@8 b8: - //SEG413 [184] 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 + //SEG409 [182] 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 - //SEG414 [185] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] + //SEG410 [183] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] breturn_from_b8: - //SEG415 [185] phi (byte) play_collision::return#15 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG411 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_BOTTOM sta return_15 jmp breturn - //SEG416 play_collision::@return + //SEG412 play_collision::@return breturn: - //SEG417 [186] return + //SEG413 [184] return rts - //SEG418 play_collision::@4 + //SEG414 play_collision::@4 b4: - //SEG419 [187] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG415 [185] (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 - //SEG420 [188] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuz1_eq_0_then_la1 + //SEG416 [186] 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 - //SEG421 [185] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] + //SEG417 [183] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] breturn_from_b4: - //SEG422 [185] phi (byte) play_collision::return#15 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG418 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_LEFT sta return_15 jmp breturn - //SEG423 play_collision::@5 + //SEG419 play_collision::@5 b5: - //SEG424 [189] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG420 [187] 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 - //SEG425 [185] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] + //SEG421 [183] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] breturn_from_b5: - //SEG426 [185] phi (byte) play_collision::return#15 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG422 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_RIGHT sta return_15 jmp breturn - //SEG427 play_collision::@6 + //SEG423 play_collision::@6 b6: - //SEG428 [190] 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 + //SEG424 [188] 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 - //SEG429 [185] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] + //SEG425 [183] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] breturn_from_b6: - //SEG430 [185] phi (byte) play_collision::return#15 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG426 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_PLAYFIELD sta return_15 jmp breturn - //SEG431 play_collision::@3 + //SEG427 play_collision::@3 b3: - //SEG432 [191] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG428 [189] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG433 [192] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuz1=_inc_vbuz1 + //SEG429 [190] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG434 [193] 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 + //SEG430 [191] 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 - //SEG435 play_collision::@17 + //SEG431 play_collision::@17 b17: - //SEG436 [194] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG432 [192] (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 - //SEG437 [195] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG433 [193] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG438 [196] 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 + //SEG434 [194] 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 - //SEG439 [185] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] + //SEG435 [183] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] breturn_from_b17: - //SEG440 [185] phi (byte) play_collision::return#15 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG436 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_NONE sta return_15 jmp breturn - //SEG441 play_collision::@20 + //SEG437 play_collision::@20 b20: - //SEG442 [197] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG438 [195] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG443 [178] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] + //SEG439 [176] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] b1_from_b20: - //SEG444 [178] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy - //SEG445 [178] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy - //SEG446 [178] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy + //SEG440 [176] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy + //SEG441 [176] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy + //SEG442 [176] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy jmp b1 - //SEG447 play_collision::@21 + //SEG443 play_collision::@21 b21: - //SEG448 [198] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG444 [196] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG449 [181] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] + //SEG445 [179] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] b2_from_b21: - //SEG450 [181] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy - //SEG451 [181] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy - //SEG452 [181] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy + //SEG446 [179] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy + //SEG447 [179] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy + //SEG448 [179] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy jmp b2 } -//SEG453 play_move_leftright +//SEG449 play_move_leftright play_move_leftright: { .label _4 = $9a .label _8 = $9c .label key_event = $88 .label return = $89 .label return_2 = $2e - //SEG454 [199] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuz1_eq_vbuc1_then_la1 + //SEG450 [197] 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 - //SEG455 play_move_leftright::@6 + //SEG451 play_move_leftright::@6 b6: - //SEG456 [200] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG452 [198] 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 - //SEG457 play_move_leftright::@7 + //SEG453 play_move_leftright::@7 b7: - //SEG458 [201] (byte) play_collision::xpos#2 ← (byte) current_xpos#20 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG454 [199] (byte) play_collision::xpos#2 ← (byte) current_xpos#20 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_xpos iny sty play_collision.xpos - //SEG459 [202] (byte) play_collision::ypos#2 ← (byte) current_ypos#17 -- vbuz1=vbuz2 + //SEG455 [200] (byte) play_collision::ypos#2 ← (byte) current_ypos#17 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG460 [203] (byte) play_collision::orientation#2 ← (byte) current_orientation#19 -- vbuz1=vbuz2 + //SEG456 [201] (byte) play_collision::orientation#2 ← (byte) current_orientation#19 -- vbuz1=vbuz2 lda current_orientation sta play_collision.orientation - //SEG461 [204] (byte*~) current_piece#92 ← (byte*) current_piece#14 -- pbuz1=pbuz2 + //SEG457 [202] (byte*~) current_piece#92 ← (byte*) current_piece#14 -- pbuz1=pbuz2 lda current_piece sta current_piece_92 lda current_piece+1 sta current_piece_92+1 - //SEG462 [205] call play_collision - //SEG463 [175] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] + //SEG458 [203] call play_collision + //SEG459 [173] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] play_collision_from_b7: - //SEG464 [175] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy - //SEG465 [175] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy - //SEG466 [175] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy - //SEG467 [175] phi (byte*) current_piece#16 = (byte*~) current_piece#92 [phi:play_move_leftright::@7->play_collision#3] -- register_copy + //SEG460 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy + //SEG461 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy + //SEG462 [173] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy + //SEG463 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#92 [phi:play_move_leftright::@7->play_collision#3] -- register_copy jsr play_collision - //SEG468 [206] (byte) play_collision::return#13 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 + //SEG464 [204] (byte) play_collision::return#13 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 lda play_collision.return_15 sta play_collision.return_13 jmp b15 - //SEG469 play_move_leftright::@15 + //SEG465 play_move_leftright::@15 b15: - //SEG470 [207] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 -- vbuz1=vbuz2 + //SEG466 [205] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 -- vbuz1=vbuz2 lda play_collision.return_13 sta _4 - //SEG471 [208] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG467 [206] 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 - //SEG472 play_move_leftright::@8 + //SEG468 play_move_leftright::@8 b8: - //SEG473 [209] (byte) current_xpos#5 ← ++ (byte) current_xpos#20 -- vbuz1=_inc_vbuz1 + //SEG469 [207] (byte) current_xpos#5 ← ++ (byte) current_xpos#20 -- vbuz1=_inc_vbuz1 inc current_xpos - //SEG474 [210] 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] + //SEG470 [208] 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: - //SEG475 [210] phi (byte) current_xpos#24 = (byte) current_xpos#7 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy - //SEG476 [210] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuz1=vbuc1 + //SEG471 [208] phi (byte) current_xpos#24 = (byte) current_xpos#7 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy + //SEG472 [208] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuz1=vbuc1 lda #1 sta return_2 jmp breturn - //SEG477 [210] 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] + //SEG473 [208] 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: - //SEG478 [210] phi (byte) current_xpos#24 = (byte) current_xpos#20 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy - //SEG479 [210] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuz1=vbuc1 + //SEG474 [208] phi (byte) current_xpos#24 = (byte) current_xpos#20 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy + //SEG475 [208] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuz1=vbuc1 lda #0 sta return_2 jmp breturn - //SEG480 play_move_leftright::@return + //SEG476 play_move_leftright::@return breturn: - //SEG481 [211] return + //SEG477 [209] return rts - //SEG482 play_move_leftright::@1 + //SEG478 play_move_leftright::@1 b1: - //SEG483 [212] (byte) play_collision::xpos#1 ← (byte) current_xpos#20 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //SEG479 [210] (byte) play_collision::xpos#1 ← (byte) current_xpos#20 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 ldx current_xpos dex stx play_collision.xpos - //SEG484 [213] (byte) play_collision::ypos#1 ← (byte) current_ypos#17 -- vbuz1=vbuz2 + //SEG480 [211] (byte) play_collision::ypos#1 ← (byte) current_ypos#17 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG485 [214] (byte) play_collision::orientation#1 ← (byte) current_orientation#19 -- vbuz1=vbuz2 + //SEG481 [212] (byte) play_collision::orientation#1 ← (byte) current_orientation#19 -- vbuz1=vbuz2 lda current_orientation sta play_collision.orientation - //SEG486 [215] (byte*~) current_piece#91 ← (byte*) current_piece#14 -- pbuz1=pbuz2 + //SEG482 [213] (byte*~) current_piece#91 ← (byte*) current_piece#14 -- pbuz1=pbuz2 lda current_piece sta current_piece_91 lda current_piece+1 sta current_piece_91+1 - //SEG487 [216] call play_collision - //SEG488 [175] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] + //SEG483 [214] call play_collision + //SEG484 [173] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] play_collision_from_b1: - //SEG489 [175] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy - //SEG490 [175] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy - //SEG491 [175] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy - //SEG492 [175] phi (byte*) current_piece#16 = (byte*~) current_piece#91 [phi:play_move_leftright::@1->play_collision#3] -- register_copy + //SEG485 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy + //SEG486 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy + //SEG487 [173] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy + //SEG488 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#91 [phi:play_move_leftright::@1->play_collision#3] -- register_copy jsr play_collision - //SEG493 [217] (byte) play_collision::return#1 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 + //SEG489 [215] (byte) play_collision::return#1 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 lda play_collision.return_15 sta play_collision.return_1 jmp b14 - //SEG494 play_move_leftright::@14 + //SEG490 play_move_leftright::@14 b14: - //SEG495 [218] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 -- vbuz1=vbuz2 + //SEG491 [216] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 -- vbuz1=vbuz2 lda play_collision.return_1 sta _8 - //SEG496 [219] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG492 [217] 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 - //SEG497 play_move_leftright::@11 + //SEG493 play_move_leftright::@11 b11: - //SEG498 [220] (byte) current_xpos#7 ← -- (byte) current_xpos#20 -- vbuz1=_dec_vbuz1 + //SEG494 [218] (byte) current_xpos#7 ← -- (byte) current_xpos#20 -- vbuz1=_dec_vbuz1 dec current_xpos jmp breturn_from_b11 } -//SEG499 play_move_down +//SEG495 play_move_down play_move_down: { .label _2 = $9e .label _12 = $a0 @@ -13589,395 +13503,395 @@ play_move_down: { .label movedown = $2f .label removed = $a2 .label return_3 = $41 - //SEG500 [221] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 -- vbuz1=_inc_vbuz1 + //SEG496 [219] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG501 [222] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG497 [220] 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 - //SEG502 [223] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG498 [221] 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 - //SEG503 play_move_down::@8 + //SEG499 play_move_down::@8 b8: - //SEG504 [224] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG500 [222] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] b1_from_b8: - //SEG505 [224] 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 + //SEG501 [222] 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 - //SEG506 [224] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG502 [222] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b1_from_play_move_down: - //SEG507 [224] 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 + //SEG503 [222] 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 - //SEG508 play_move_down::@1 + //SEG504 play_move_down::@1 b1: - //SEG509 [225] call keyboard_event_pressed - //SEG510 [357] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG505 [223] call keyboard_event_pressed + //SEG506 [355] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] keyboard_event_pressed_from_b1: - //SEG511 [357] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG507 [355] 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 - //SEG512 [226] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG508 [224] (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 - //SEG513 play_move_down::@17 + //SEG509 play_move_down::@17 b17: - //SEG514 [227] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 -- vbuz1=vbuz2 + //SEG510 [225] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_12 sta _2 - //SEG515 [228] 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 + //SEG511 [226] 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 - //SEG516 play_move_down::@9 + //SEG512 play_move_down::@9 b9: - //SEG517 [229] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG513 [227] if((byte) current_movedown_counter#12<(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 - //SEG518 play_move_down::@10 + //SEG514 play_move_down::@10 b10: - //SEG519 [230] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuz1=_inc_vbuz1 + //SEG515 [228] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuz1=_inc_vbuz1 inc movedown - //SEG520 [231] 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] + //SEG516 [229] 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: - //SEG521 [231] 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 + //SEG517 [229] 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 - //SEG522 play_move_down::@2 + //SEG518 play_move_down::@2 b2: - //SEG523 [232] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@4 -- vbuz1_lt_vbuz2_then_la1 + //SEG519 [230] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@4 -- vbuz1_lt_vbuz2_then_la1 lda current_movedown_counter cmp current_movedown_slow bcc b4_from_b2 jmp b11 - //SEG524 play_move_down::@11 + //SEG520 play_move_down::@11 b11: - //SEG525 [233] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuz1=_inc_vbuz1 + //SEG521 [231] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuz1=_inc_vbuz1 inc movedown - //SEG526 [234] 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] + //SEG522 [232] 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: - //SEG527 [234] 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 + //SEG523 [232] 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 - //SEG528 play_move_down::@4 + //SEG524 play_move_down::@4 b4: - //SEG529 [235] 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 + //SEG525 [233] 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 - //SEG530 play_move_down::@12 + //SEG526 play_move_down::@12 b12: - //SEG531 [236] (byte) play_collision::ypos#0 ← (byte) current_ypos#25 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG527 [234] (byte) play_collision::ypos#0 ← (byte) current_ypos#25 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_ypos iny sty play_collision.ypos - //SEG532 [237] (byte) play_collision::xpos#0 ← (byte) current_xpos#115 -- vbuz1=vbuz2 + //SEG528 [235] (byte) play_collision::xpos#0 ← (byte) current_xpos#113 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG533 [238] (byte) play_collision::orientation#0 ← (byte) current_orientation#12 -- vbuz1=vbuz2 + //SEG529 [236] (byte) play_collision::orientation#0 ← (byte) current_orientation#12 -- vbuz1=vbuz2 lda current_orientation sta play_collision.orientation - //SEG534 [239] (byte*~) current_piece#90 ← (byte*) current_piece#20 -- pbuz1=pbuz2 + //SEG530 [237] (byte*~) current_piece#90 ← (byte*) current_piece#20 -- pbuz1=pbuz2 lda current_piece sta current_piece_90 lda current_piece+1 sta current_piece_90+1 - //SEG535 [240] call play_collision - //SEG536 [175] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] + //SEG531 [238] call play_collision + //SEG532 [173] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] play_collision_from_b12: - //SEG537 [175] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy - //SEG538 [175] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy - //SEG539 [175] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy - //SEG540 [175] phi (byte*) current_piece#16 = (byte*~) current_piece#90 [phi:play_move_down::@12->play_collision#3] -- register_copy + //SEG533 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy + //SEG534 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy + //SEG535 [173] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy + //SEG536 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#90 [phi:play_move_down::@12->play_collision#3] -- register_copy jsr play_collision - //SEG541 [241] (byte) play_collision::return#0 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 + //SEG537 [239] (byte) play_collision::return#0 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 lda play_collision.return_15 sta play_collision.return jmp b18 - //SEG542 play_move_down::@18 + //SEG538 play_move_down::@18 b18: - //SEG543 [242] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 -- vbuz1=vbuz2 + //SEG539 [240] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 -- vbuz1=vbuz2 lda play_collision.return sta _12 - //SEG544 [243] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuz1_eq_vbuc1_then_la1 + //SEG540 [241] 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 - //SEG545 [244] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG541 [242] 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 - //SEG546 play_move_down::@13 + //SEG542 play_move_down::@13 b13: - //SEG547 [245] call play_lock_current + //SEG543 [243] call play_lock_current jsr play_lock_current - //SEG548 [246] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG544 [244] 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 - //SEG549 play_move_down::@19 + //SEG545 play_move_down::@19 b19: - //SEG550 [247] call play_remove_lines - //SEG551 [317] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] + //SEG546 [245] call play_remove_lines + //SEG547 [315] 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 - //SEG552 [248] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 -- vbuz1=vbuz2 + //SEG548 [246] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 -- vbuz1=vbuz2 lda play_remove_lines.removed sta play_remove_lines.return jmp b20 - //SEG553 play_move_down::@20 + //SEG549 play_move_down::@20 b20: - //SEG554 [249] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 -- vbuz1=vbuz2 + //SEG550 [247] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 -- vbuz1=vbuz2 lda play_remove_lines.return sta removed - //SEG555 [250] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuz1=vbuz2 + //SEG551 [248] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuz1=vbuz2 lda removed sta play_update_score.removed - //SEG556 [251] call play_update_score + //SEG552 [249] call play_update_score jsr play_update_score - //SEG557 [252] phi from play_move_down::@20 to play_move_down::@21 [phi:play_move_down::@20->play_move_down::@21] + //SEG553 [250] phi from play_move_down::@20 to play_move_down::@21 [phi:play_move_down::@20->play_move_down::@21] b21_from_b20: jmp b21 - //SEG558 play_move_down::@21 + //SEG554 play_move_down::@21 b21: - //SEG559 [253] call play_spawn_current - //SEG560 [259] phi from play_move_down::@21 to play_spawn_current [phi:play_move_down::@21->play_spawn_current] + //SEG555 [251] call play_spawn_current + //SEG556 [257] phi from play_move_down::@21 to play_spawn_current [phi:play_move_down::@21->play_spawn_current] play_spawn_current_from_b21: - //SEG561 [259] phi (byte) game_over#70 = (byte) game_over#19 [phi:play_move_down::@21->play_spawn_current#0] -- register_copy + //SEG557 [257] phi (byte) game_over#70 = (byte) game_over#19 [phi:play_move_down::@21->play_spawn_current#0] -- register_copy jsr play_spawn_current - //SEG562 [254] (byte*~) current_piece#95 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG558 [252] (byte*~) current_piece#95 ← (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 - //SEG563 [255] phi from play_move_down::@21 to play_move_down::@7 [phi:play_move_down::@21->play_move_down::@7] + //SEG559 [253] phi from play_move_down::@21 to play_move_down::@7 [phi:play_move_down::@21->play_move_down::@7] b7_from_b21: - //SEG564 [255] phi (byte) game_over#26 = (byte) game_over#15 [phi:play_move_down::@21->play_move_down::@7#0] -- register_copy - //SEG565 [255] phi (byte) current_xpos#41 = (byte) current_xpos#28 [phi:play_move_down::@21->play_move_down::@7#1] -- register_copy - //SEG566 [255] phi (byte*) current_piece_gfx#33 = (byte*) current_piece_gfx#21 [phi:play_move_down::@21->play_move_down::@7#2] -- register_copy - //SEG567 [255] phi (byte) current_orientation#36 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@21->play_move_down::@7#3] -- vbuz1=vbuc1 + //SEG560 [253] phi (byte) game_over#26 = (byte) game_over#15 [phi:play_move_down::@21->play_move_down::@7#0] -- register_copy + //SEG561 [253] phi (byte) current_xpos#41 = (byte) current_xpos#28 [phi:play_move_down::@21->play_move_down::@7#1] -- register_copy + //SEG562 [253] phi (byte*) current_piece_gfx#33 = (byte*) current_piece_gfx#21 [phi:play_move_down::@21->play_move_down::@7#2] -- register_copy + //SEG563 [253] phi (byte) current_orientation#36 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@21->play_move_down::@7#3] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG568 [255] phi (byte) current_piece_char#27 = (byte) current_piece_char#16 [phi:play_move_down::@21->play_move_down::@7#4] -- register_copy - //SEG569 [255] phi (byte*) current_piece#27 = (byte*~) current_piece#95 [phi:play_move_down::@21->play_move_down::@7#5] -- register_copy - //SEG570 [255] phi (byte) level_bcd#32 = (byte) level_bcd#19 [phi:play_move_down::@21->play_move_down::@7#6] -- register_copy - //SEG571 [255] phi (byte) current_movedown_slow#38 = (byte) current_movedown_slow#23 [phi:play_move_down::@21->play_move_down::@7#7] -- register_copy - //SEG572 [255] phi (byte) level#31 = (byte) level#18 [phi:play_move_down::@21->play_move_down::@7#8] -- register_copy - //SEG573 [255] phi (dword) score_bcd#27 = (dword) score_bcd#16 [phi:play_move_down::@21->play_move_down::@7#9] -- register_copy - //SEG574 [255] phi (word) lines_bcd#27 = (word) lines_bcd#17 [phi:play_move_down::@21->play_move_down::@7#10] -- register_copy - //SEG575 [255] phi (byte) current_ypos#36 = (byte) current_ypos#22 [phi:play_move_down::@21->play_move_down::@7#11] -- register_copy + //SEG564 [253] phi (byte) current_piece_char#27 = (byte) current_piece_char#16 [phi:play_move_down::@21->play_move_down::@7#4] -- register_copy + //SEG565 [253] phi (byte*) current_piece#27 = (byte*~) current_piece#95 [phi:play_move_down::@21->play_move_down::@7#5] -- register_copy + //SEG566 [253] phi (byte) level_bcd#32 = (byte) level_bcd#19 [phi:play_move_down::@21->play_move_down::@7#6] -- register_copy + //SEG567 [253] phi (byte) current_movedown_slow#38 = (byte) current_movedown_slow#23 [phi:play_move_down::@21->play_move_down::@7#7] -- register_copy + //SEG568 [253] phi (byte) level#31 = (byte) level#18 [phi:play_move_down::@21->play_move_down::@7#8] -- register_copy + //SEG569 [253] phi (dword) score_bcd#27 = (dword) score_bcd#16 [phi:play_move_down::@21->play_move_down::@7#9] -- register_copy + //SEG570 [253] phi (word) lines_bcd#27 = (word) lines_bcd#17 [phi:play_move_down::@21->play_move_down::@7#10] -- register_copy + //SEG571 [253] phi (byte) current_ypos#36 = (byte) current_ypos#22 [phi:play_move_down::@21->play_move_down::@7#11] -- register_copy jmp b7 - //SEG576 play_move_down::@7 + //SEG572 play_move_down::@7 b7: - //SEG577 [256] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG573 [254] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] breturn_from_b7: - //SEG578 [256] phi (byte) game_over#14 = (byte) game_over#26 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG579 [256] phi (byte) current_xpos#20 = (byte) current_xpos#41 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG580 [256] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#33 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG581 [256] phi (byte) current_orientation#19 = (byte) current_orientation#36 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG582 [256] phi (byte) current_piece_char#14 = (byte) current_piece_char#27 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG583 [256] phi (byte*) current_piece#14 = (byte*) current_piece#27 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG584 [256] phi (byte) level_bcd#17 = (byte) level_bcd#32 [phi:play_move_down::@7->play_move_down::@return#6] -- register_copy - //SEG585 [256] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#38 [phi:play_move_down::@7->play_move_down::@return#7] -- register_copy - //SEG586 [256] phi (byte) level#16 = (byte) level#31 [phi:play_move_down::@7->play_move_down::@return#8] -- register_copy - //SEG587 [256] phi (dword) score_bcd#14 = (dword) score_bcd#27 [phi:play_move_down::@7->play_move_down::@return#9] -- register_copy - //SEG588 [256] phi (word) lines_bcd#15 = (word) lines_bcd#27 [phi:play_move_down::@7->play_move_down::@return#10] -- register_copy - //SEG589 [256] phi (byte) current_ypos#17 = (byte) current_ypos#36 [phi:play_move_down::@7->play_move_down::@return#11] -- register_copy - //SEG590 [256] phi (byte) current_movedown_counter#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#12] -- vbuz1=vbuc1 + //SEG574 [254] phi (byte) game_over#14 = (byte) game_over#26 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG575 [254] phi (byte) current_xpos#20 = (byte) current_xpos#41 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG576 [254] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#33 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG577 [254] phi (byte) current_orientation#19 = (byte) current_orientation#36 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy + //SEG578 [254] phi (byte) current_piece_char#14 = (byte) current_piece_char#27 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy + //SEG579 [254] phi (byte*) current_piece#14 = (byte*) current_piece#27 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG580 [254] phi (byte) level_bcd#17 = (byte) level_bcd#32 [phi:play_move_down::@7->play_move_down::@return#6] -- register_copy + //SEG581 [254] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#38 [phi:play_move_down::@7->play_move_down::@return#7] -- register_copy + //SEG582 [254] phi (byte) level#16 = (byte) level#31 [phi:play_move_down::@7->play_move_down::@return#8] -- register_copy + //SEG583 [254] phi (dword) score_bcd#14 = (dword) score_bcd#27 [phi:play_move_down::@7->play_move_down::@return#9] -- register_copy + //SEG584 [254] phi (word) lines_bcd#15 = (word) lines_bcd#27 [phi:play_move_down::@7->play_move_down::@return#10] -- register_copy + //SEG585 [254] phi (byte) current_ypos#17 = (byte) current_ypos#36 [phi:play_move_down::@7->play_move_down::@return#11] -- register_copy + //SEG586 [254] phi (byte) current_movedown_counter#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#12] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG591 [256] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#13] -- vbuz1=vbuc1 + //SEG587 [254] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#13] -- vbuz1=vbuc1 lda #1 sta return_3 jmp breturn - //SEG592 [256] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG588 [254] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] breturn_from_b4: - //SEG593 [256] phi (byte) game_over#14 = (byte) game_over#19 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG594 [256] phi (byte) current_xpos#20 = (byte) current_xpos#115 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG595 [256] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#105 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG596 [256] phi (byte) current_orientation#19 = (byte) current_orientation#12 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG597 [256] phi (byte) current_piece_char#14 = (byte) current_piece_char#19 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG598 [256] phi (byte*) current_piece#14 = (byte*) current_piece#20 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG599 [256] phi (byte) level_bcd#17 = (byte) level_bcd#11 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG600 [256] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#14 [phi:play_move_down::@4->play_move_down::@return#7] -- register_copy - //SEG601 [256] phi (byte) level#16 = (byte) level#10 [phi:play_move_down::@4->play_move_down::@return#8] -- register_copy - //SEG602 [256] phi (dword) score_bcd#14 = (dword) score_bcd#18 [phi:play_move_down::@4->play_move_down::@return#9] -- register_copy - //SEG603 [256] phi (word) lines_bcd#15 = (word) lines_bcd#19 [phi:play_move_down::@4->play_move_down::@return#10] -- register_copy - //SEG604 [256] phi (byte) current_ypos#17 = (byte) current_ypos#25 [phi:play_move_down::@4->play_move_down::@return#11] -- register_copy - //SEG605 [256] phi (byte) current_movedown_counter#14 = (byte) current_movedown_counter#12 [phi:play_move_down::@4->play_move_down::@return#12] -- register_copy - //SEG606 [256] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#13] -- vbuz1=vbuc1 + //SEG589 [254] phi (byte) game_over#14 = (byte) game_over#19 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG590 [254] phi (byte) current_xpos#20 = (byte) current_xpos#113 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG591 [254] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#103 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG592 [254] phi (byte) current_orientation#19 = (byte) current_orientation#12 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy + //SEG593 [254] phi (byte) current_piece_char#14 = (byte) current_piece_char#19 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy + //SEG594 [254] phi (byte*) current_piece#14 = (byte*) current_piece#20 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG595 [254] phi (byte) level_bcd#17 = (byte) level_bcd#11 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy + //SEG596 [254] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#14 [phi:play_move_down::@4->play_move_down::@return#7] -- register_copy + //SEG597 [254] phi (byte) level#16 = (byte) level#10 [phi:play_move_down::@4->play_move_down::@return#8] -- register_copy + //SEG598 [254] phi (dword) score_bcd#14 = (dword) score_bcd#18 [phi:play_move_down::@4->play_move_down::@return#9] -- register_copy + //SEG599 [254] phi (word) lines_bcd#15 = (word) lines_bcd#19 [phi:play_move_down::@4->play_move_down::@return#10] -- register_copy + //SEG600 [254] phi (byte) current_ypos#17 = (byte) current_ypos#25 [phi:play_move_down::@4->play_move_down::@return#11] -- register_copy + //SEG601 [254] phi (byte) current_movedown_counter#14 = (byte) current_movedown_counter#12 [phi:play_move_down::@4->play_move_down::@return#12] -- register_copy + //SEG602 [254] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#13] -- vbuz1=vbuc1 lda #0 sta return_3 jmp breturn - //SEG607 play_move_down::@return + //SEG603 play_move_down::@return breturn: - //SEG608 [257] return + //SEG604 [255] return rts - //SEG609 play_move_down::@6 + //SEG605 play_move_down::@6 b6: - //SEG610 [258] (byte) current_ypos#2 ← ++ (byte) current_ypos#25 -- vbuz1=_inc_vbuz1 + //SEG606 [256] (byte) current_ypos#2 ← ++ (byte) current_ypos#25 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG611 [255] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG607 [253] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] b7_from_b6: - //SEG612 [255] phi (byte) game_over#26 = (byte) game_over#19 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG613 [255] phi (byte) current_xpos#41 = (byte) current_xpos#115 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG614 [255] phi (byte*) current_piece_gfx#33 = (byte*) current_piece_gfx#105 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG615 [255] phi (byte) current_orientation#36 = (byte) current_orientation#12 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG616 [255] phi (byte) current_piece_char#27 = (byte) current_piece_char#19 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG617 [255] phi (byte*) current_piece#27 = (byte*) current_piece#20 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy - //SEG618 [255] phi (byte) level_bcd#32 = (byte) level_bcd#11 [phi:play_move_down::@6->play_move_down::@7#6] -- register_copy - //SEG619 [255] phi (byte) current_movedown_slow#38 = (byte) current_movedown_slow#14 [phi:play_move_down::@6->play_move_down::@7#7] -- register_copy - //SEG620 [255] phi (byte) level#31 = (byte) level#10 [phi:play_move_down::@6->play_move_down::@7#8] -- register_copy - //SEG621 [255] phi (dword) score_bcd#27 = (dword) score_bcd#18 [phi:play_move_down::@6->play_move_down::@7#9] -- register_copy - //SEG622 [255] phi (word) lines_bcd#27 = (word) lines_bcd#19 [phi:play_move_down::@6->play_move_down::@7#10] -- register_copy - //SEG623 [255] phi (byte) current_ypos#36 = (byte) current_ypos#2 [phi:play_move_down::@6->play_move_down::@7#11] -- register_copy + //SEG608 [253] phi (byte) game_over#26 = (byte) game_over#19 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG609 [253] phi (byte) current_xpos#41 = (byte) current_xpos#113 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG610 [253] phi (byte*) current_piece_gfx#33 = (byte*) current_piece_gfx#103 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG611 [253] phi (byte) current_orientation#36 = (byte) current_orientation#12 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy + //SEG612 [253] phi (byte) current_piece_char#27 = (byte) current_piece_char#19 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy + //SEG613 [253] phi (byte*) current_piece#27 = (byte*) current_piece#20 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG614 [253] phi (byte) level_bcd#32 = (byte) level_bcd#11 [phi:play_move_down::@6->play_move_down::@7#6] -- register_copy + //SEG615 [253] phi (byte) current_movedown_slow#38 = (byte) current_movedown_slow#14 [phi:play_move_down::@6->play_move_down::@7#7] -- register_copy + //SEG616 [253] phi (byte) level#31 = (byte) level#10 [phi:play_move_down::@6->play_move_down::@7#8] -- register_copy + //SEG617 [253] phi (dword) score_bcd#27 = (dword) score_bcd#18 [phi:play_move_down::@6->play_move_down::@7#9] -- register_copy + //SEG618 [253] phi (word) lines_bcd#27 = (word) lines_bcd#19 [phi:play_move_down::@6->play_move_down::@7#10] -- register_copy + //SEG619 [253] phi (byte) current_ypos#36 = (byte) current_ypos#2 [phi:play_move_down::@6->play_move_down::@7#11] -- register_copy jmp b7 } -//SEG624 play_spawn_current +//SEG620 play_spawn_current play_spawn_current: { .label _1 = $a8 .label _3 = $a4 .label _5 = $a6 .label piece_idx = $43 - //SEG625 [260] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] + //SEG621 [258] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] b1_from_play_spawn_current: - //SEG626 [260] 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 + //SEG622 [258] 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 - //SEG627 play_spawn_current::@1 + //SEG623 play_spawn_current::@1 b1: - //SEG628 [261] 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 + //SEG624 [259] 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 - //SEG629 play_spawn_current::@3 + //SEG625 play_spawn_current::@3 b3: - //SEG630 [262] (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 + //SEG626 [260] (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 - //SEG631 [263] (byte) current_piece_char#16 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG627 [261] (byte) current_piece_char#16 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy piece_idx lda PIECES_CHARS,y sta current_piece_char - //SEG632 [264] (byte*) current_piece_gfx#21 ← (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 + //SEG628 [262] (byte*) current_piece_gfx#21 ← (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 - //SEG633 [265] (byte) current_xpos#28 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG629 [263] (byte) current_xpos#28 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy piece_idx lda PIECES_START_X,y sta current_xpos - //SEG634 [266] (byte) current_ypos#22 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG630 [264] (byte) current_ypos#22 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy piece_idx lda PIECES_START_Y,y sta current_ypos - //SEG635 [267] (byte) play_collision::xpos#4 ← (byte) current_xpos#28 -- vbuz1=vbuz2 + //SEG631 [265] (byte) play_collision::xpos#4 ← (byte) current_xpos#28 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG636 [268] (byte) play_collision::ypos#4 ← (byte) current_ypos#22 -- vbuz1=vbuz2 + //SEG632 [266] (byte) play_collision::ypos#4 ← (byte) current_ypos#22 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG637 [269] (byte*~) current_piece#94 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG633 [267] (byte*~) current_piece#94 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy _3 lda PIECES,y sta current_piece_94 lda PIECES+1,y sta current_piece_94+1 - //SEG638 [270] call play_collision - //SEG639 [175] phi from play_spawn_current::@3 to play_collision [phi:play_spawn_current::@3->play_collision] + //SEG634 [268] call play_collision + //SEG635 [173] phi from play_spawn_current::@3 to play_collision [phi:play_spawn_current::@3->play_collision] play_collision_from_b3: - //SEG640 [175] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#4 [phi:play_spawn_current::@3->play_collision#0] -- register_copy - //SEG641 [175] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#4 [phi:play_spawn_current::@3->play_collision#1] -- register_copy - //SEG642 [175] phi (byte) play_collision::orientation#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_spawn_current::@3->play_collision#2] -- vbuz1=vbuc1 + //SEG636 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#4 [phi:play_spawn_current::@3->play_collision#0] -- register_copy + //SEG637 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#4 [phi:play_spawn_current::@3->play_collision#1] -- register_copy + //SEG638 [173] phi (byte) play_collision::orientation#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_spawn_current::@3->play_collision#2] -- vbuz1=vbuc1 lda #0 sta play_collision.orientation - //SEG643 [175] phi (byte*) current_piece#16 = (byte*~) current_piece#94 [phi:play_spawn_current::@3->play_collision#3] -- register_copy + //SEG639 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#94 [phi:play_spawn_current::@3->play_collision#3] -- register_copy jsr play_collision - //SEG644 [271] (byte) play_collision::return#10 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 + //SEG640 [269] (byte) play_collision::return#10 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 lda play_collision.return_15 sta play_collision.return_10 jmp b10 - //SEG645 play_spawn_current::@10 + //SEG641 play_spawn_current::@10 b10: - //SEG646 [272] (byte~) play_spawn_current::$5 ← (byte) play_collision::return#10 -- vbuz1=vbuz2 + //SEG642 [270] (byte~) play_spawn_current::$5 ← (byte) play_collision::return#10 -- vbuz1=vbuz2 lda play_collision.return_10 sta _5 - //SEG647 [273] if((byte~) play_spawn_current::$5!=(const byte) COLLISION_PLAYFIELD#0) goto play_spawn_current::@11 -- vbuz1_neq_vbuc1_then_la1 + //SEG643 [271] if((byte~) play_spawn_current::$5!=(const byte) COLLISION_PLAYFIELD#0) goto play_spawn_current::@11 -- vbuz1_neq_vbuc1_then_la1 lda _5 cmp #COLLISION_PLAYFIELD bne b11_from_b10 - //SEG648 [274] phi from play_spawn_current::@10 to play_spawn_current::@return [phi:play_spawn_current::@10->play_spawn_current::@return] + //SEG644 [272] phi from play_spawn_current::@10 to play_spawn_current::@return [phi:play_spawn_current::@10->play_spawn_current::@return] breturn_from_b10: - //SEG649 [274] phi (byte) game_over#15 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_spawn_current::@10->play_spawn_current::@return#0] -- vbuz1=vbuc1 + //SEG645 [272] phi (byte) game_over#15 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_spawn_current::@10->play_spawn_current::@return#0] -- vbuz1=vbuc1 lda #1 sta game_over jmp breturn - //SEG650 play_spawn_current::@return + //SEG646 play_spawn_current::@return breturn: - //SEG651 [275] return + //SEG647 [273] return rts - //SEG652 [276] phi from play_spawn_current::@10 to play_spawn_current::@11 [phi:play_spawn_current::@10->play_spawn_current::@11] + //SEG648 [274] phi from play_spawn_current::@10 to play_spawn_current::@11 [phi:play_spawn_current::@10->play_spawn_current::@11] b11_from_b10: jmp b11 - //SEG653 play_spawn_current::@11 + //SEG649 play_spawn_current::@11 b11: - //SEG654 [274] phi from play_spawn_current::@11 to play_spawn_current::@return [phi:play_spawn_current::@11->play_spawn_current::@return] + //SEG650 [272] phi from play_spawn_current::@11 to play_spawn_current::@return [phi:play_spawn_current::@11->play_spawn_current::@return] breturn_from_b11: - //SEG655 [274] phi (byte) game_over#15 = (byte) game_over#70 [phi:play_spawn_current::@11->play_spawn_current::@return#0] -- register_copy + //SEG651 [272] phi (byte) game_over#15 = (byte) game_over#70 [phi:play_spawn_current::@11->play_spawn_current::@return#0] -- register_copy jmp breturn - //SEG656 [277] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] + //SEG652 [275] 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 - //SEG657 play_spawn_current::@2 + //SEG653 play_spawn_current::@2 b2: - //SEG658 [278] call sid_rnd + //SEG654 [276] call sid_rnd jsr sid_rnd - //SEG659 [279] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 -- vbuz1=vbuz2 + //SEG655 [277] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 -- vbuz1=vbuz2 lda sid_rnd.return sta sid_rnd.return_2 jmp b9 - //SEG660 play_spawn_current::@9 + //SEG656 play_spawn_current::@9 b9: - //SEG661 [280] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 -- vbuz1=vbuz2 + //SEG657 [278] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 -- vbuz1=vbuz2 lda sid_rnd.return_2 sta _1 - //SEG662 [281] (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 + //SEG658 [279] (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 - //SEG663 [260] phi from play_spawn_current::@9 to play_spawn_current::@1 [phi:play_spawn_current::@9->play_spawn_current::@1] + //SEG659 [258] phi from play_spawn_current::@9 to play_spawn_current::@1 [phi:play_spawn_current::@9->play_spawn_current::@1] b1_from_b9: - //SEG664 [260] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@9->play_spawn_current::@1#0] -- register_copy + //SEG660 [258] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@9->play_spawn_current::@1#0] -- register_copy jmp b1 } -//SEG665 sid_rnd +//SEG661 sid_rnd sid_rnd: { .label return = $a9 .label return_2 = $a7 - //SEG666 [282] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuz1=_deref_pbuc1 + //SEG662 [280] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuz1=_deref_pbuc1 lda SID_VOICE3_OSC sta return jmp breturn - //SEG667 sid_rnd::@return + //SEG663 sid_rnd::@return breturn: - //SEG668 [283] return + //SEG664 [281] return rts } -//SEG669 play_update_score +//SEG665 play_update_score play_update_score: { .label _2 = $aa .label _4 = $ac @@ -13986,26 +13900,26 @@ play_update_score: { .label lines_before = $ab .label add_bcd = $ad .label lines_after = $b2 - //SEG670 [284] if((byte) play_update_score::removed#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_update_score::@return -- vbuz1_eq_0_then_la1 + //SEG666 [282] if((byte) play_update_score::removed#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_update_score::@return -- vbuz1_eq_0_then_la1 lda removed cmp #0 beq breturn_from_play_update_score jmp b3 - //SEG671 play_update_score::@3 + //SEG667 play_update_score::@3 b3: - //SEG672 [285] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 -- vbuz1=_lo_vwuz2 + //SEG668 [283] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 -- vbuz1=_lo_vwuz2 lda lines_bcd sta _2 - //SEG673 [286] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuz2_band_vbuc1 + //SEG669 [284] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuz2_band_vbuc1 lda #$f0 and _2 sta lines_before - //SEG674 [287] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz2_rol_2 + //SEG670 [285] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz2_rol_2 lda removed asl asl sta _4 - //SEG675 [288] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) -- vduz1=pduc1_derefidx_vbuz2 + //SEG671 [286] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) -- vduz1=pduc1_derefidx_vbuz2 ldy _4 lda score_add_bcd,y sta add_bcd @@ -14015,9 +13929,9 @@ play_update_score: { sta add_bcd+2 lda score_add_bcd+3,y sta add_bcd+3 - //SEG676 asm { sed } + //SEG672 asm { sed } sed - //SEG677 [290] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 -- vwuz1=vwuz1_plus_vbuz2 + //SEG673 [288] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 -- vwuz1=vwuz1_plus_vbuz2 lda removed clc adc lines_bcd @@ -14025,7 +13939,7 @@ play_update_score: { lda #0 adc lines_bcd+1 sta lines_bcd+1 - //SEG678 [291] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 -- vduz1=vduz1_plus_vduz2 + //SEG674 [289] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 -- vduz1=vduz1_plus_vduz2 lda score_bcd clc adc add_bcd @@ -14039,118 +13953,118 @@ play_update_score: { lda score_bcd+3 adc add_bcd+3 sta score_bcd+3 - //SEG679 asm { cld } + //SEG675 asm { cld } cld - //SEG680 [293] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 -- vbuz1=_lo_vwuz2 + //SEG676 [291] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 -- vbuz1=_lo_vwuz2 lda lines_bcd sta _5 - //SEG681 [294] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuz2_band_vbuc1 + //SEG677 [292] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuz2_band_vbuc1 lda #$f0 and _5 sta lines_after - //SEG682 [295] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return -- vbuz1_eq_vbuz2_then_la1 + //SEG678 [293] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return -- vbuz1_eq_vbuz2_then_la1 lda lines_before cmp lines_after beq breturn_from_b3 - //SEG683 [296] phi from play_update_score::@3 to play_update_score::@4 [phi:play_update_score::@3->play_update_score::@4] + //SEG679 [294] phi from play_update_score::@3 to play_update_score::@4 [phi:play_update_score::@3->play_update_score::@4] b4_from_b3: jmp b4 - //SEG684 play_update_score::@4 + //SEG680 play_update_score::@4 b4: - //SEG685 [297] call play_increase_level + //SEG681 [295] call play_increase_level jsr play_increase_level - //SEG686 [298] phi from play_update_score play_update_score::@3 play_update_score::@4 to play_update_score::@return [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return] + //SEG682 [296] phi from play_update_score play_update_score::@3 play_update_score::@4 to play_update_score::@return [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return] breturn_from_play_update_score: breturn_from_b3: breturn_from_b4: - //SEG687 [298] phi (byte) level_bcd#19 = (byte) level_bcd#11 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#0] -- register_copy - //SEG688 [298] phi (byte) current_movedown_slow#23 = (byte) current_movedown_slow#14 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#1] -- register_copy - //SEG689 [298] phi (byte) level#18 = (byte) level#10 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#2] -- register_copy - //SEG690 [298] phi (dword) score_bcd#16 = (dword) score_bcd#18 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#3] -- register_copy - //SEG691 [298] phi (word) lines_bcd#17 = (word) lines_bcd#19 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#4] -- register_copy + //SEG683 [296] phi (byte) level_bcd#19 = (byte) level_bcd#11 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#0] -- register_copy + //SEG684 [296] phi (byte) current_movedown_slow#23 = (byte) current_movedown_slow#14 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#1] -- register_copy + //SEG685 [296] phi (byte) level#18 = (byte) level#10 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#2] -- register_copy + //SEG686 [296] phi (dword) score_bcd#16 = (dword) score_bcd#18 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#3] -- register_copy + //SEG687 [296] phi (word) lines_bcd#17 = (word) lines_bcd#19 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#4] -- register_copy jmp breturn - //SEG692 play_update_score::@return + //SEG688 play_update_score::@return breturn: - //SEG693 [299] return + //SEG689 [297] return rts } -//SEG694 play_increase_level +//SEG690 play_increase_level play_increase_level: { .label _1 = $b3 .label b4 = $b4 .label b = $44 - //SEG695 [300] (byte) level#20 ← ++ (byte) level#10 -- vbuz1=_inc_vbuz1 + //SEG691 [298] (byte) level#20 ← ++ (byte) level#10 -- vbuz1=_inc_vbuz1 inc level - //SEG696 [301] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 -- vbuz1_gt_vbuc1_then_la1 + //SEG692 [299] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 -- vbuz1_gt_vbuc1_then_la1 lda level cmp #$1d beq !+ bcs b2_from_play_increase_level !: jmp b5 - //SEG697 play_increase_level::@5 + //SEG693 play_increase_level::@5 b5: - //SEG698 [302] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG694 [300] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) -- vbuz1=pbuc1_derefidx_vbuz2 ldy level lda MOVEDOWN_SLOW_SPEEDS,y sta current_movedown_slow - //SEG699 [303] phi from play_increase_level::@5 to play_increase_level::@2 [phi:play_increase_level::@5->play_increase_level::@2] + //SEG695 [301] phi from play_increase_level::@5 to play_increase_level::@2 [phi:play_increase_level::@5->play_increase_level::@2] b2_from_b5: - //SEG700 [303] phi (byte) current_movedown_slow#69 = (byte) current_movedown_slow#10 [phi:play_increase_level::@5->play_increase_level::@2#0] -- register_copy + //SEG696 [301] phi (byte) current_movedown_slow#69 = (byte) current_movedown_slow#10 [phi:play_increase_level::@5->play_increase_level::@2#0] -- register_copy jmp b2 - //SEG701 [303] phi from play_increase_level to play_increase_level::@2 [phi:play_increase_level->play_increase_level::@2] + //SEG697 [301] phi from play_increase_level to play_increase_level::@2 [phi:play_increase_level->play_increase_level::@2] b2_from_play_increase_level: - //SEG702 [303] phi (byte) current_movedown_slow#69 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_increase_level->play_increase_level::@2#0] -- vbuz1=vbuc1 + //SEG698 [301] phi (byte) current_movedown_slow#69 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_increase_level->play_increase_level::@2#0] -- vbuz1=vbuc1 lda #1 sta current_movedown_slow jmp b2 - //SEG703 play_increase_level::@2 + //SEG699 play_increase_level::@2 b2: - //SEG704 [304] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 -- vbuz1=_inc_vbuz1 + //SEG700 [302] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 -- vbuz1=_inc_vbuz1 inc level_bcd - //SEG705 [305] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG701 [303] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 lda #$f and level_bcd sta _1 - //SEG706 [306] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG702 [304] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 -- vbuz1_neq_vbuc1_then_la1 lda _1 cmp #$a bne b3_from_b2 jmp b7 - //SEG707 play_increase_level::@7 + //SEG703 play_increase_level::@7 b7: - //SEG708 [307] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 -- vbuz1=vbuz1_plus_vbuc1 + //SEG704 [305] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 -- vbuz1=vbuz1_plus_vbuc1 lda #6 clc adc level_bcd sta level_bcd - //SEG709 [308] phi from play_increase_level::@2 play_increase_level::@7 to play_increase_level::@3 [phi:play_increase_level::@2/play_increase_level::@7->play_increase_level::@3] + //SEG705 [306] phi from play_increase_level::@2 play_increase_level::@7 to play_increase_level::@3 [phi:play_increase_level::@2/play_increase_level::@7->play_increase_level::@3] b3_from_b2: b3_from_b7: - //SEG710 [308] phi (byte) level_bcd#64 = (byte) level_bcd#21 [phi:play_increase_level::@2/play_increase_level::@7->play_increase_level::@3#0] -- register_copy + //SEG706 [306] phi (byte) level_bcd#64 = (byte) level_bcd#21 [phi:play_increase_level::@2/play_increase_level::@7->play_increase_level::@3#0] -- register_copy jmp b3 - //SEG711 play_increase_level::@3 + //SEG707 play_increase_level::@3 b3: - //SEG712 asm { sed } + //SEG708 asm { sed } sed - //SEG713 [310] phi from play_increase_level::@3 to play_increase_level::@4 [phi:play_increase_level::@3->play_increase_level::@4] + //SEG709 [308] phi from play_increase_level::@3 to play_increase_level::@4 [phi:play_increase_level::@3->play_increase_level::@4] b4_from_b3: - //SEG714 [310] phi (byte) play_increase_level::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_increase_level::@3->play_increase_level::@4#0] -- vbuz1=vbuc1 + //SEG710 [308] phi (byte) play_increase_level::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_increase_level::@3->play_increase_level::@4#0] -- vbuz1=vbuc1 lda #0 sta b jmp b4 - //SEG715 [310] phi from play_increase_level::@4 to play_increase_level::@4 [phi:play_increase_level::@4->play_increase_level::@4] + //SEG711 [308] phi from play_increase_level::@4 to play_increase_level::@4 [phi:play_increase_level::@4->play_increase_level::@4] b4_from_b4: - //SEG716 [310] phi (byte) play_increase_level::b#2 = (byte) play_increase_level::b#1 [phi:play_increase_level::@4->play_increase_level::@4#0] -- register_copy + //SEG712 [308] phi (byte) play_increase_level::b#2 = (byte) play_increase_level::b#1 [phi:play_increase_level::@4->play_increase_level::@4#0] -- register_copy jmp b4 - //SEG717 play_increase_level::@4 + //SEG713 play_increase_level::@4 b4: - //SEG718 [311] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz2_rol_2 + //SEG714 [309] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz2_rol_2 lda b asl asl sta b4 - //SEG719 [312] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) -- pduc1_derefidx_vbuz1=pduc1_derefidx_vbuz1_plus_pduc2_derefidx_vbuz1 + //SEG715 [310] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) -- pduc1_derefidx_vbuz1=pduc1_derefidx_vbuz1_plus_pduc2_derefidx_vbuz1 ldy b4 clc lda score_add_bcd,y @@ -14165,24 +14079,24 @@ play_increase_level: { lda score_add_bcd+3,y adc SCORE_BASE_BCD+3,y sta score_add_bcd+3,y - //SEG720 [313] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 -- vbuz1=_inc_vbuz1 + //SEG716 [311] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 -- vbuz1=_inc_vbuz1 inc b - //SEG721 [314] if((byte) play_increase_level::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_increase_level::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG717 [312] if((byte) play_increase_level::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_increase_level::@4 -- vbuz1_neq_vbuc1_then_la1 lda b cmp #5 bne b4_from_b4 jmp b8 - //SEG722 play_increase_level::@8 + //SEG718 play_increase_level::@8 b8: - //SEG723 asm { cld } + //SEG719 asm { cld } cld jmp breturn - //SEG724 play_increase_level::@return + //SEG720 play_increase_level::@return breturn: - //SEG725 [316] return + //SEG721 [314] return rts } -//SEG726 play_remove_lines +//SEG722 play_remove_lines play_remove_lines: { .label return = $a1 .label c = $b5 @@ -14192,147 +14106,147 @@ play_remove_lines: { .label y = $45 .label removed = $46 .label full = $49 - //SEG727 [318] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] + //SEG723 [316] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] b1_from_play_remove_lines: - //SEG728 [318] phi (byte) play_remove_lines::removed#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines->play_remove_lines::@1#0] -- vbuz1=vbuc1 + //SEG724 [316] phi (byte) play_remove_lines::removed#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines->play_remove_lines::@1#0] -- vbuz1=vbuc1 lda #0 sta removed - //SEG729 [318] 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#1] -- vbuz1=vbuc1 + //SEG725 [316] 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#1] -- vbuz1=vbuc1 lda #0 sta y - //SEG730 [318] 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#2] -- vbuz1=vbuc1 + //SEG726 [316] 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#2] -- vbuz1=vbuc1 lda #PLAYFIELD_LINES*PLAYFIELD_COLS-1 sta w - //SEG731 [318] 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#3] -- vbuz1=vbuc1 + //SEG727 [316] 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#3] -- vbuz1=vbuc1 lda #PLAYFIELD_LINES*PLAYFIELD_COLS-1 sta r jmp b1 - //SEG732 [318] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] + //SEG728 [316] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] b1_from_b4: - //SEG733 [318] phi (byte) play_remove_lines::removed#11 = (byte) play_remove_lines::removed#7 [phi:play_remove_lines::@4->play_remove_lines::@1#0] -- register_copy - //SEG734 [318] phi (byte) play_remove_lines::y#8 = (byte) play_remove_lines::y#1 [phi:play_remove_lines::@4->play_remove_lines::@1#1] -- register_copy - //SEG735 [318] phi (byte) play_remove_lines::w#12 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@4->play_remove_lines::@1#2] -- register_copy - //SEG736 [318] phi (byte) play_remove_lines::r#3 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@4->play_remove_lines::@1#3] -- register_copy + //SEG729 [316] phi (byte) play_remove_lines::removed#11 = (byte) play_remove_lines::removed#7 [phi:play_remove_lines::@4->play_remove_lines::@1#0] -- register_copy + //SEG730 [316] phi (byte) play_remove_lines::y#8 = (byte) play_remove_lines::y#1 [phi:play_remove_lines::@4->play_remove_lines::@1#1] -- register_copy + //SEG731 [316] phi (byte) play_remove_lines::w#12 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@4->play_remove_lines::@1#2] -- register_copy + //SEG732 [316] phi (byte) play_remove_lines::r#3 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@4->play_remove_lines::@1#3] -- register_copy jmp b1 - //SEG737 play_remove_lines::@1 + //SEG733 play_remove_lines::@1 b1: - //SEG738 [319] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] + //SEG734 [317] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] b2_from_b1: - //SEG739 [319] 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 + //SEG735 [317] 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 - //SEG740 [319] 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 + //SEG736 [317] 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 - //SEG741 [319] 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 - //SEG742 [319] 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 + //SEG737 [317] 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 + //SEG738 [317] 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 - //SEG743 [319] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] + //SEG739 [317] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] b2_from_b3: - //SEG744 [319] 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 - //SEG745 [319] 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 - //SEG746 [319] 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 - //SEG747 [319] 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 + //SEG740 [317] 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 + //SEG741 [317] 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 + //SEG742 [317] 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 + //SEG743 [317] 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 - //SEG748 play_remove_lines::@2 + //SEG744 play_remove_lines::@2 b2: - //SEG749 [320] (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 + //SEG745 [318] (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 - //SEG750 [321] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuz1=_dec_vbuz1 + //SEG746 [319] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuz1=_dec_vbuz1 dec r - //SEG751 [322] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@18 -- vbuz1_neq_0_then_la1 + //SEG747 [320] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@18 -- vbuz1_neq_0_then_la1 lda c cmp #0 bne b18_from_b2 - //SEG752 [323] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] + //SEG748 [321] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] b3_from_b2: - //SEG753 [323] 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 + //SEG749 [321] 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 - //SEG754 play_remove_lines::@3 + //SEG750 play_remove_lines::@3 b3: - //SEG755 [324] *((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 + //SEG751 [322] *((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 - //SEG756 [325] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuz1=_dec_vbuz1 + //SEG752 [323] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuz1=_dec_vbuz1 dec w - //SEG757 [326] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 + //SEG753 [324] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG758 [327] 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 + //SEG754 [325] 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 - //SEG759 play_remove_lines::@9 + //SEG755 play_remove_lines::@9 b9: - //SEG760 [328] 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 + //SEG756 [326] 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 - //SEG761 play_remove_lines::@10 + //SEG757 play_remove_lines::@10 b10: - //SEG762 [329] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG758 [327] (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 - //SEG763 [330] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 + //SEG759 [328] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 inc removed - //SEG764 [331] 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] + //SEG760 [329] 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: - //SEG765 [331] phi (byte) play_remove_lines::removed#7 = (byte) play_remove_lines::removed#1 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4#0] -- register_copy - //SEG766 [331] 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#1] -- register_copy + //SEG761 [329] phi (byte) play_remove_lines::removed#7 = (byte) play_remove_lines::removed#1 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4#0] -- register_copy + //SEG762 [329] 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#1] -- register_copy jmp b4 - //SEG767 play_remove_lines::@4 + //SEG763 play_remove_lines::@4 b4: - //SEG768 [332] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 + //SEG764 [330] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG769 [333] 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 + //SEG765 [331] 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 - //SEG770 [334] 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] + //SEG766 [332] 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: - //SEG771 [334] 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 + //SEG767 [332] 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 - //SEG772 play_remove_lines::@5 + //SEG768 play_remove_lines::@5 b5: - //SEG773 [335] 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 + //SEG769 [333] 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 - //SEG774 play_remove_lines::@return + //SEG770 play_remove_lines::@return breturn: - //SEG775 [336] return + //SEG771 [334] return rts - //SEG776 play_remove_lines::@6 + //SEG772 play_remove_lines::@6 b6: - //SEG777 [337] *((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 + //SEG773 [335] *((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 - //SEG778 [338] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuz1=_dec_vbuz1 + //SEG774 [336] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuz1=_dec_vbuz1 dec w jmp b5_from_b6 - //SEG779 [339] phi from play_remove_lines::@2 to play_remove_lines::@18 [phi:play_remove_lines::@2->play_remove_lines::@18] + //SEG775 [337] phi from play_remove_lines::@2 to play_remove_lines::@18 [phi:play_remove_lines::@2->play_remove_lines::@18] b18_from_b2: jmp b18 - //SEG780 play_remove_lines::@18 + //SEG776 play_remove_lines::@18 b18: - //SEG781 [323] phi from play_remove_lines::@18 to play_remove_lines::@3 [phi:play_remove_lines::@18->play_remove_lines::@3] + //SEG777 [321] phi from play_remove_lines::@18 to play_remove_lines::@3 [phi:play_remove_lines::@18->play_remove_lines::@3] b3_from_b18: - //SEG782 [323] phi (byte) play_remove_lines::full#2 = (byte) play_remove_lines::full#4 [phi:play_remove_lines::@18->play_remove_lines::@3#0] -- register_copy + //SEG778 [321] phi (byte) play_remove_lines::full#2 = (byte) play_remove_lines::full#4 [phi:play_remove_lines::@18->play_remove_lines::@3#0] -- register_copy jmp b3 } -//SEG783 play_lock_current +//SEG779 play_lock_current play_lock_current: { .label ypos2 = $4b .label playfield_line = $b6 @@ -14344,111 +14258,111 @@ play_lock_current: { .label i_3 = $4d .label i_7 = $4d .label i_9 = $4d - //SEG784 [340] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#25 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG780 [338] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#25 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda current_ypos asl sta ypos2 - //SEG785 [341] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] + //SEG781 [339] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] b1_from_play_lock_current: - //SEG786 [341] 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 + //SEG782 [339] 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 - //SEG787 [341] 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 + //SEG783 [339] 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 - //SEG788 [341] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy + //SEG784 [339] 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 - //SEG789 play_lock_current::@1 + //SEG785 play_lock_current::@1 b1: - //SEG790 [342] (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 + //SEG786 [340] (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 - //SEG791 [343] (byte) play_lock_current::col#0 ← (byte) current_xpos#115 -- vbuz1=vbuz2 + //SEG787 [341] (byte) play_lock_current::col#0 ← (byte) current_xpos#113 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG792 [344] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] + //SEG788 [342] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] b2_from_b1: - //SEG793 [344] 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 + //SEG789 [342] 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 - //SEG794 [344] 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 - //SEG795 [344] 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 + //SEG790 [342] 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 + //SEG791 [342] 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 - //SEG796 play_lock_current::@2 + //SEG792 play_lock_current::@2 b2: - //SEG797 [345] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG793 [343] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG798 [346] if(*((byte*) current_piece_gfx#105 + (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 + //SEG794 [344] if(*((byte*) current_piece_gfx#103 + (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 - //SEG799 play_lock_current::@4 + //SEG795 play_lock_current::@4 b4: - //SEG800 [347] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#19 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG796 [345] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#19 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_char ldy col sta (playfield_line),y jmp b3 - //SEG801 play_lock_current::@3 + //SEG797 play_lock_current::@3 b3: - //SEG802 [348] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG798 [346] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG803 [349] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuz1=_inc_vbuz1 + //SEG799 [347] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG804 [350] 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 + //SEG800 [348] 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 - //SEG805 play_lock_current::@5 + //SEG801 play_lock_current::@5 b5: - //SEG806 [351] (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 + //SEG802 [349] (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 - //SEG807 [352] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG803 [350] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG808 [353] 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 + //SEG804 [351] 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 - //SEG809 play_lock_current::@return + //SEG805 play_lock_current::@return breturn: - //SEG810 [354] return + //SEG806 [352] return rts - //SEG811 play_lock_current::@7 + //SEG807 play_lock_current::@7 b7: - //SEG812 [355] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG808 [353] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG813 [341] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] + //SEG809 [339] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] b1_from_b7: - //SEG814 [341] 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 - //SEG815 [341] 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 - //SEG816 [341] 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 + //SEG810 [339] 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 + //SEG811 [339] 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 + //SEG812 [339] 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 - //SEG817 play_lock_current::@8 + //SEG813 play_lock_current::@8 b8: - //SEG818 [356] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG814 [354] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG819 [344] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] + //SEG815 [342] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] b2_from_b8: - //SEG820 [344] 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 - //SEG821 [344] 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 - //SEG822 [344] 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 + //SEG816 [342] 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 + //SEG817 [342] 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 + //SEG818 [342] 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 } -//SEG823 keyboard_event_pressed +//SEG819 keyboard_event_pressed keyboard_event_pressed: { .label _0 = $b9 .label _1 = $bb @@ -14460,66 +14374,66 @@ keyboard_event_pressed: { .label keycode = $50 .label return_11 = $bc .label return_12 = $9d - //SEG824 [358] (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 + //SEG820 [356] (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 - //SEG825 [359] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG821 [357] (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 - //SEG826 [360] (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 + //SEG822 [358] (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 - //SEG827 [361] (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 + //SEG823 [359] (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 - //SEG828 keyboard_event_pressed::@return + //SEG824 keyboard_event_pressed::@return breturn: - //SEG829 [362] return + //SEG825 [360] return rts } -//SEG830 keyboard_event_get +//SEG826 keyboard_event_get keyboard_event_get: { .label return = $51 .label return_3 = $74 - //SEG831 [363] 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 + //SEG827 [361] 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 - //SEG832 keyboard_event_get::@3 + //SEG828 keyboard_event_get::@3 b3: - //SEG833 [364] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG829 [362] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG834 [365] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG830 [363] (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 - //SEG835 [366] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG831 [364] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] breturn_from_b3: - //SEG836 [366] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG837 [366] 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 + //SEG832 [364] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG833 [364] 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 - //SEG838 [366] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG834 [364] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] breturn_from_keyboard_event_get: - //SEG839 [366] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG840 [366] 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 + //SEG835 [364] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG836 [364] 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 - //SEG841 keyboard_event_get::@return + //SEG837 keyboard_event_get::@return breturn: - //SEG842 [367] return + //SEG838 [365] return rts } -//SEG843 keyboard_event_scan +//SEG839 keyboard_event_scan keyboard_event_scan: { .label _3 = $c9 .label _4 = $ca @@ -14533,371 +14447,371 @@ keyboard_event_scan: { .label row = $52 .label col = $54 .label event_type = $cb - //SEG844 [369] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + //SEG840 [367] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] b1_from_keyboard_event_scan: - //SEG845 [369] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG846 [369] 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 + //SEG841 [367] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG842 [367] 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 - //SEG847 [369] 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 + //SEG843 [367] 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 - //SEG848 [369] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG844 [367] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] b1_from_b3: - //SEG849 [369] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG850 [369] 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 - //SEG851 [369] 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 + //SEG845 [367] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG846 [367] 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 + //SEG847 [367] 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 - //SEG852 keyboard_event_scan::@1 + //SEG848 keyboard_event_scan::@1 b1: - //SEG853 [370] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuz1=vbuz2 + //SEG849 [368] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuz1=vbuz2 lda row sta keyboard_matrix_read.rowid - //SEG854 [371] call keyboard_matrix_read + //SEG850 [369] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG855 [372] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 -- vbuz1=vbuz2 + //SEG851 [370] (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 - //SEG856 keyboard_event_scan::@25 + //SEG852 keyboard_event_scan::@25 b25: - //SEG857 [373] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuz2 + //SEG853 [371] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuz2 lda keyboard_matrix_read.return_2 sta row_scan - //SEG858 [374] 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 + //SEG854 [372] 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 - //SEG859 keyboard_event_scan::@13 + //SEG855 keyboard_event_scan::@13 b13: - //SEG860 [375] (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 + //SEG856 [373] (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 - //SEG861 [376] 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] + //SEG857 [374] 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: - //SEG862 [376] 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 - //SEG863 [376] 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 + //SEG858 [374] 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 + //SEG859 [374] 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 - //SEG864 keyboard_event_scan::@3 + //SEG860 keyboard_event_scan::@3 b3: - //SEG865 [377] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG861 [375] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG866 [378] 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 + //SEG862 [376] 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 - //SEG867 [379] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG863 [377] 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 - //SEG868 keyboard_event_scan::@20 + //SEG864 keyboard_event_scan::@20 b20: - //SEG869 [380] call keyboard_event_pressed - //SEG870 [357] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG865 [378] call keyboard_event_pressed + //SEG866 [355] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] keyboard_event_pressed_from_b20: - //SEG871 [357] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG867 [355] 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 - //SEG872 [381] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG868 [379] (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 - //SEG873 keyboard_event_scan::@26 + //SEG869 keyboard_event_scan::@26 b26: - //SEG874 [382] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 -- vbuz1=vbuz2 + //SEG870 [380] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 -- vbuz1=vbuz2 lda keyboard_event_pressed.return sta _14 - //SEG875 [383] 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 + //SEG871 [381] 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 - //SEG876 [384] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG872 [382] 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 - //SEG877 keyboard_event_scan::@21 + //SEG873 keyboard_event_scan::@21 b21: - //SEG878 [385] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] + //SEG874 [383] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] b9_from_b21: - //SEG879 [385] 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 + //SEG875 [383] 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 - //SEG880 [385] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG876 [383] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] b9_from_b26: - //SEG881 [385] 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 + //SEG877 [383] 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 - //SEG882 keyboard_event_scan::@9 + //SEG878 keyboard_event_scan::@9 b9: - //SEG883 [386] call keyboard_event_pressed - //SEG884 [357] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG879 [384] call keyboard_event_pressed + //SEG880 [355] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] keyboard_event_pressed_from_b9: - //SEG885 [357] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG881 [355] 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 - //SEG886 [387] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG882 [385] (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 - //SEG887 keyboard_event_scan::@27 + //SEG883 keyboard_event_scan::@27 b27: - //SEG888 [388] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 -- vbuz1=vbuz2 + //SEG884 [386] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_1 sta _18 - //SEG889 [389] 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 + //SEG885 [387] 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 - //SEG890 keyboard_event_scan::@22 + //SEG886 keyboard_event_scan::@22 b22: - //SEG891 [390] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuz1=vbuz1_bor_vbuc1 + //SEG887 [388] (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 - //SEG892 [391] 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] + //SEG888 [389] 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: - //SEG893 [391] 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 + //SEG889 [389] 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 - //SEG894 keyboard_event_scan::@10 + //SEG890 keyboard_event_scan::@10 b10: - //SEG895 [392] call keyboard_event_pressed - //SEG896 [357] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG891 [390] call keyboard_event_pressed + //SEG892 [355] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] keyboard_event_pressed_from_b10: - //SEG897 [357] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG893 [355] 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 - //SEG898 [393] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG894 [391] (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 - //SEG899 keyboard_event_scan::@28 + //SEG895 keyboard_event_scan::@28 b28: - //SEG900 [394] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 -- vbuz1=vbuz2 + //SEG896 [392] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_2 sta _22 - //SEG901 [395] 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 + //SEG897 [393] 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 - //SEG902 keyboard_event_scan::@23 + //SEG898 keyboard_event_scan::@23 b23: - //SEG903 [396] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuz1=vbuz1_bor_vbuc1 + //SEG899 [394] (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 - //SEG904 [397] 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] + //SEG900 [395] 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: - //SEG905 [397] 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 + //SEG901 [395] 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 - //SEG906 keyboard_event_scan::@11 + //SEG902 keyboard_event_scan::@11 b11: - //SEG907 [398] call keyboard_event_pressed - //SEG908 [357] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG903 [396] call keyboard_event_pressed + //SEG904 [355] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] keyboard_event_pressed_from_b11: - //SEG909 [357] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG905 [355] 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 - //SEG910 [399] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG906 [397] (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 - //SEG911 keyboard_event_scan::@29 + //SEG907 keyboard_event_scan::@29 b29: - //SEG912 [400] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 -- vbuz1=vbuz2 + //SEG908 [398] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_10 sta _26 - //SEG913 [401] 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 + //SEG909 [399] 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 - //SEG914 keyboard_event_scan::@24 + //SEG910 keyboard_event_scan::@24 b24: - //SEG915 [402] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuz1=vbuz2_bor_vbuc1 + //SEG911 [400] (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 - //SEG916 keyboard_event_scan::@return + //SEG912 keyboard_event_scan::@return breturn: - //SEG917 [403] return + //SEG913 [401] return rts - //SEG918 [404] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG914 [402] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b4_from_b25: - //SEG919 [404] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG920 [404] 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 - //SEG921 [404] 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 + //SEG915 [402] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG916 [402] 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 + //SEG917 [402] 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 - //SEG922 [404] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG918 [402] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] b4_from_b5: - //SEG923 [404] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG924 [404] 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 - //SEG925 [404] 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 + //SEG919 [402] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG920 [402] 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 + //SEG921 [402] 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 - //SEG926 keyboard_event_scan::@4 + //SEG922 keyboard_event_scan::@4 b4: - //SEG927 [405] (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 + //SEG923 [403] (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 - //SEG928 [406] (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 + //SEG924 [404] (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 - //SEG929 [407] 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 + //SEG925 [405] 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 - //SEG930 keyboard_event_scan::@15 + //SEG926 keyboard_event_scan::@15 b15: - //SEG931 [408] 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 + //SEG927 [406] 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 - //SEG932 keyboard_event_scan::@16 + //SEG928 keyboard_event_scan::@16 b16: - //SEG933 [409] (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 + //SEG929 [407] (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 - //SEG934 [410] 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 + //SEG930 [408] 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 - //SEG935 keyboard_event_scan::@17 + //SEG931 keyboard_event_scan::@17 b17: - //SEG936 [411] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG932 [409] *((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 - //SEG937 [412] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG933 [410] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG938 [413] 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] + //SEG934 [411] 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: - //SEG939 [413] 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 + //SEG935 [411] 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 - //SEG940 keyboard_event_scan::@5 + //SEG936 keyboard_event_scan::@5 b5: - //SEG941 [414] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG937 [412] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG942 [415] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuz1=_inc_vbuz1 + //SEG938 [413] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG943 [416] 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 + //SEG939 [414] 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 - //SEG944 keyboard_event_scan::@19 + //SEG940 keyboard_event_scan::@19 b19: - //SEG945 [417] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG941 [415] *((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 - //SEG946 keyboard_event_scan::@7 + //SEG942 keyboard_event_scan::@7 b7: - //SEG947 [418] (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 + //SEG943 [416] (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 - //SEG948 [419] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG944 [417] *((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 - //SEG949 [420] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG945 [418] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5_from_b7 } -//SEG950 keyboard_matrix_read +//SEG946 keyboard_matrix_read keyboard_matrix_read: { .label return = $cd .label rowid = $bd .label return_2 = $be - //SEG951 [421] *((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 + //SEG947 [419] *((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 - //SEG952 [422] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuz1=_bnot__deref_pbuc1 + //SEG948 [420] (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 - //SEG953 keyboard_matrix_read::@return + //SEG949 keyboard_matrix_read::@return breturn: - //SEG954 [423] return + //SEG950 [421] return rts } -//SEG955 render_show +//SEG951 render_show render_show: { .const toD0181_return = (>(PLAYFIELD_SCREEN_1&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f .const toD0182_return = (>(PLAYFIELD_SCREEN_2&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f .label d018val = $57 - //SEG956 [424] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 -- vbuz1_eq_0_then_la1 + //SEG952 [422] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 -- vbuz1_eq_0_then_la1 lda render_screen_show cmp #0 beq toD0181_from_render_show - //SEG957 [425] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] + //SEG953 [423] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] toD0182_from_render_show: jmp toD0182 - //SEG958 render_show::toD0182 + //SEG954 render_show::toD0182 toD0182: - //SEG959 [426] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] + //SEG955 [424] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] b2_from_toD0182: - //SEG960 [426] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@2#0] -- vbuz1=vbuc1 + //SEG956 [424] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@2#0] -- vbuz1=vbuc1 lda #toD0182_return sta d018val jmp b2 - //SEG961 render_show::@2 + //SEG957 render_show::@2 b2: - //SEG962 [427] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuz1 + //SEG958 [425] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuz1 lda d018val sta D018 - //SEG963 [428] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 + //SEG959 [426] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 lda render_screen_show sta render_screen_showing_1 jmp breturn - //SEG964 render_show::@return + //SEG960 render_show::@return breturn: - //SEG965 [429] return + //SEG961 [427] return rts - //SEG966 [430] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] + //SEG962 [428] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] toD0181_from_render_show: jmp toD0181 - //SEG967 render_show::toD0181 + //SEG963 render_show::toD0181 toD0181: - //SEG968 [426] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] + //SEG964 [424] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] b2_from_toD0181: - //SEG969 [426] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@2#0] -- vbuz1=vbuc1 + //SEG965 [424] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@2#0] -- vbuz1=vbuc1 lda #toD0181_return sta d018val jmp b2 } -//SEG970 play_init +//SEG966 play_init play_init: { .label _1 = $cf .label pli = $59 @@ -14905,43 +14819,43 @@ play_init: { .label j = $58 .label b4 = $d0 .label b = $5c - //SEG971 [432] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] + //SEG967 [430] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] b1_from_play_init: - //SEG972 [432] 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 + //SEG968 [430] 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 - //SEG973 [432] 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 + //SEG969 [430] 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 - //SEG974 [432] 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 + //SEG970 [430] 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 - //SEG975 [432] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] + //SEG971 [430] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] b1_from_b1: - //SEG976 [432] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy - //SEG977 [432] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy - //SEG978 [432] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy + //SEG972 [430] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy + //SEG973 [430] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy + //SEG974 [430] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy jmp b1 - //SEG979 play_init::@1 + //SEG975 play_init::@1 b1: - //SEG980 [433] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG976 [431] (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 - //SEG981 [434] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuz1=pbuz2 + //SEG977 [432] *((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 - //SEG982 [435] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG978 [433] *((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 - //SEG983 [436] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG979 [434] (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 @@ -14949,44 +14863,44 @@ play_init: { bcc !+ inc pli+1 !: - //SEG984 [437] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG980 [435] (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 - //SEG985 [438] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuz1=_inc_vbuz1 + //SEG981 [436] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuz1=_inc_vbuz1 inc j - //SEG986 [439] 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 + //SEG982 [437] 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 b3 - //SEG987 play_init::@3 + //SEG983 play_init::@3 b3: - //SEG988 [440] *((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 + //SEG984 [438] *((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 - //SEG989 [441] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0) -- vbuz1=_deref_pbuc1 + //SEG985 [439] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0) -- vbuz1=_deref_pbuc1 lda MOVEDOWN_SLOW_SPEEDS sta current_movedown_slow - //SEG990 [442] phi from play_init::@3 to play_init::@2 [phi:play_init::@3->play_init::@2] + //SEG986 [440] phi from play_init::@3 to play_init::@2 [phi:play_init::@3->play_init::@2] b2_from_b3: - //SEG991 [442] phi (byte) play_init::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init::@3->play_init::@2#0] -- vbuz1=vbuc1 + //SEG987 [440] phi (byte) play_init::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init::@3->play_init::@2#0] -- vbuz1=vbuc1 lda #0 sta b jmp b2 - //SEG992 [442] phi from play_init::@2 to play_init::@2 [phi:play_init::@2->play_init::@2] + //SEG988 [440] phi from play_init::@2 to play_init::@2 [phi:play_init::@2->play_init::@2] b2_from_b2: - //SEG993 [442] phi (byte) play_init::b#2 = (byte) play_init::b#1 [phi:play_init::@2->play_init::@2#0] -- register_copy + //SEG989 [440] phi (byte) play_init::b#2 = (byte) play_init::b#1 [phi:play_init::@2->play_init::@2#0] -- register_copy jmp b2 - //SEG994 play_init::@2 + //SEG990 play_init::@2 b2: - //SEG995 [443] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz2_rol_2 + //SEG991 [441] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz2_rol_2 lda b asl asl sta b4 - //SEG996 [444] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) -- pduc1_derefidx_vbuz1=pduc2_derefidx_vbuz1 + //SEG992 [442] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) -- pduc1_derefidx_vbuz1=pduc2_derefidx_vbuz1 ldy b4 lda SCORE_BASE_BCD,y sta score_add_bcd,y @@ -14996,122 +14910,122 @@ play_init: { sta score_add_bcd+2,y lda SCORE_BASE_BCD+3,y sta score_add_bcd+3,y - //SEG997 [445] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 -- vbuz1=_inc_vbuz1 + //SEG993 [443] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 -- vbuz1=_inc_vbuz1 inc b - //SEG998 [446] if((byte) play_init::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_init::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG994 [444] if((byte) play_init::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_init::@2 -- vbuz1_neq_vbuc1_then_la1 lda b cmp #5 bne b2_from_b2 jmp breturn - //SEG999 play_init::@return + //SEG995 play_init::@return breturn: - //SEG1000 [447] return + //SEG996 [445] return rts } -//SEG1001 sprites_irq_init +//SEG997 sprites_irq_init sprites_irq_init: { - //SEG1002 asm { sei } + //SEG998 asm { sei } sei - //SEG1003 [449] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG999 [447] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG1004 asm { ldaCIA1_INTERRUPT } + //SEG1000 asm { ldaCIA1_INTERRUPT } lda CIA1_INTERRUPT - //SEG1005 [451] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 + //SEG1001 [449] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_DDR_MEMORY_MASK sta PROCPORT_DDR - //SEG1006 [452] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 + //SEG1002 [450] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - //SEG1007 [453] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 + //SEG1003 [451] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG1008 [454] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + //SEG1004 [452] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 lda VIC_CONTROL and #$7f sta VIC_CONTROL - //SEG1009 [455] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 + //SEG1005 [453] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER_FIRST sta RASTER - //SEG1010 [456] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG1006 [454] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_ENABLE - //SEG1011 [457] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 + //SEG1007 [455] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 lda #sprites_irq sta HARDWARE_IRQ+1 - //SEG1012 asm { cli } + //SEG1008 asm { cli } cli jmp breturn - //SEG1013 sprites_irq_init::@return + //SEG1009 sprites_irq_init::@return breturn: - //SEG1014 [459] return + //SEG1010 [457] return rts } -//SEG1015 sprites_init +//SEG1011 sprites_init sprites_init: { .label s2 = $d1 .label xpos = $5e .label s = $5d - //SEG1016 [460] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + //SEG1012 [458] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 lda #$f sta SPRITES_ENABLE - //SEG1017 [461] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG1013 [459] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SPRITES_MC - //SEG1018 [462] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG1014 [460] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 lda SPRITES_MC sta SPRITES_EXPAND_Y - //SEG1019 [463] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG1015 [461] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 lda SPRITES_EXPAND_Y sta SPRITES_EXPAND_X - //SEG1020 [464] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] + //SEG1016 [462] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] b1_from_sprites_init: - //SEG1021 [464] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 + //SEG1017 [462] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 lda #$18+$f*8 sta xpos - //SEG1022 [464] phi (byte) sprites_init::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuz1=vbuc1 + //SEG1018 [462] phi (byte) sprites_init::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuz1=vbuc1 lda #0 sta s jmp b1 - //SEG1023 [464] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] + //SEG1019 [462] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] b1_from_b1: - //SEG1024 [464] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy - //SEG1025 [464] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy + //SEG1020 [462] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy + //SEG1021 [462] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy jmp b1 - //SEG1026 sprites_init::@1 + //SEG1022 sprites_init::@1 b1: - //SEG1027 [465] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG1023 [463] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda s asl sta s2 - //SEG1028 [466] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG1024 [464] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuz1=vbuz2 lda xpos ldy s2 sta SPRITES_XPOS,y - //SEG1029 [467] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG1025 [465] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuz1=vbuc2 ldy s lda #BLACK sta SPRITES_COLS,y - //SEG1030 [468] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1026 [466] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 lda #$18 clc adc xpos sta xpos - //SEG1031 [469] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuz1=_inc_vbuz1 + //SEG1027 [467] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuz1=_inc_vbuz1 inc s - //SEG1032 [470] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1028 [468] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 -- vbuz1_neq_vbuc1_then_la1 lda s cmp #4 bne b1_from_b1 jmp breturn - //SEG1033 sprites_init::@return + //SEG1029 sprites_init::@return breturn: - //SEG1034 [471] return + //SEG1030 [469] return rts } -//SEG1035 render_init +//SEG1031 render_init render_init: { .const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_CHARSET)>>6 .label _13 = $d2 @@ -15120,111 +15034,111 @@ render_init: { .label li_2 = $62 .label i = $5f jmp vicSelectGfxBank1 - //SEG1036 render_init::vicSelectGfxBank1 + //SEG1032 render_init::vicSelectGfxBank1 vicSelectGfxBank1: - //SEG1037 [473] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG1033 [471] *((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 - //SEG1038 [474] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] + //SEG1034 [472] 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 - //SEG1039 render_init::vicSelectGfxBank1_toDd001 + //SEG1035 render_init::vicSelectGfxBank1_toDd001 vicSelectGfxBank1_toDd001: jmp vicSelectGfxBank1_b1 - //SEG1040 render_init::vicSelectGfxBank1_@1 + //SEG1036 render_init::vicSelectGfxBank1_@1 vicSelectGfxBank1_b1: - //SEG1041 [475] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 + //SEG1037 [473] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 lda #vicSelectGfxBank1_toDd001_return sta CIA2_PORT_A jmp b3 - //SEG1042 render_init::@3 + //SEG1038 render_init::@3 b3: - //SEG1043 [476] *((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 + //SEG1039 [474] *((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 - //SEG1044 [477] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG1040 [475] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BORDERCOL - //SEG1045 [478] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG1041 [476] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BGCOL1 - //SEG1046 [479] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 + //SEG1042 [477] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 lda #BLUE sta BGCOL2 - //SEG1047 [480] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 + //SEG1043 [478] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 lda #CYAN sta BGCOL3 - //SEG1048 [481] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 + //SEG1044 [479] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 lda #GREY sta BGCOL4 - //SEG1049 [482] call render_screen_original - //SEG1050 [495] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] + //SEG1045 [480] call render_screen_original + //SEG1046 [493] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] render_screen_original_from_b3: - //SEG1051 [495] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 + //SEG1047 [493] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1 sta render_screen_original.screen+1 jsr render_screen_original - //SEG1052 [483] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] + //SEG1048 [481] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] b4_from_b3: jmp b4 - //SEG1053 render_init::@4 + //SEG1049 render_init::@4 b4: - //SEG1054 [484] call render_screen_original - //SEG1055 [495] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] + //SEG1050 [482] call render_screen_original + //SEG1051 [493] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] render_screen_original_from_b4: - //SEG1056 [495] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_init::@4->render_screen_original#0] -- pbuz1=pbuc1 + //SEG1052 [493] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_init::@4->render_screen_original#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2 sta render_screen_original.screen+1 jsr render_screen_original - //SEG1057 [485] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] + //SEG1053 [483] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] b1_from_b4: - //SEG1058 [485] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#0] -- pbuz1=pbuc1 + //SEG1054 [483] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2+2*$28+$10 sta li_2+1 - //SEG1059 [485] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#1] -- pbuz1=pbuc1 + //SEG1055 [483] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#1] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1+2*$28+$10 sta li_1+1 - //SEG1060 [485] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@4->render_init::@1#2] -- vbuz1=vbuc1 + //SEG1056 [483] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@4->render_init::@1#2] -- vbuz1=vbuc1 lda #0 sta i jmp b1 - //SEG1061 [485] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + //SEG1057 [483] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] b1_from_b1: - //SEG1062 [485] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - //SEG1063 [485] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy - //SEG1064 [485] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy + //SEG1058 [483] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG1059 [483] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + //SEG1060 [483] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy jmp b1 - //SEG1065 render_init::@1 + //SEG1061 render_init::@1 b1: - //SEG1066 [486] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG1062 [484] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda i asl sta _13 - //SEG1067 [487] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuz1=pbuz2 + //SEG1063 [485] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuz1=pbuz2 ldy _13 lda li_1 sta screen_lines_1,y lda li_1+1 sta screen_lines_1+1,y - //SEG1068 [488] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG1064 [486] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda i asl sta _14 - //SEG1069 [489] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuz1=pbuz2 + //SEG1065 [487] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuz1=pbuz2 ldy _14 lda li_2 sta screen_lines_2,y lda li_2+1 sta screen_lines_2+1,y - //SEG1070 [490] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG1066 [488] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda li_1 clc adc #$28 @@ -15232,7 +15146,7 @@ render_init: { bcc !+ inc li_1+1 !: - //SEG1071 [491] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG1067 [489] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda li_2 clc adc #$28 @@ -15240,19 +15154,19 @@ render_init: { bcc !+ inc li_2+1 !: - //SEG1072 [492] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuz1=_inc_vbuz1 + //SEG1068 [490] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG1073 [493] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1069 [491] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuz1_neq_vbuc1_then_la1 lda i cmp #PLAYFIELD_LINES-1+1 bne b1_from_b1 jmp breturn - //SEG1074 render_init::@return + //SEG1070 render_init::@return breturn: - //SEG1075 [494] return + //SEG1071 [492] return rts } -//SEG1076 render_screen_original +//SEG1072 render_screen_original render_screen_original: { .const SPACE = 0 .label screen = $69 @@ -15261,190 +15175,190 @@ render_screen_original: { .label oscr = $65 .label ocols = $67 .label y = $64 - //SEG1077 [496] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] + //SEG1073 [494] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] b1_from_render_screen_original: - //SEG1078 [496] 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 + //SEG1074 [494] 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 - //SEG1079 [496] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 + //SEG1075 [494] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 lda #PLAYFIELD_COLORS_ORIGINAL+$20*2 sta ocols+1 - //SEG1080 [496] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 + //SEG1076 [494] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_ORIGINAL+$20*2 sta oscr+1 - //SEG1081 [496] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS#0 [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 + //SEG1077 [494] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS#0 [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 lda #COLS sta cols+1 - //SEG1082 [496] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#4] -- register_copy + //SEG1078 [494] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#4] -- register_copy jmp b1 - //SEG1083 [496] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] + //SEG1079 [494] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] b1_from_b7: - //SEG1084 [496] 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 - //SEG1085 [496] phi (byte*) render_screen_original::ocols#4 = (byte*) render_screen_original::ocols#1 [phi:render_screen_original::@7->render_screen_original::@1#1] -- register_copy - //SEG1086 [496] phi (byte*) render_screen_original::oscr#4 = (byte*) render_screen_original::oscr#1 [phi:render_screen_original::@7->render_screen_original::@1#2] -- register_copy - //SEG1087 [496] phi (byte*) render_screen_original::cols#7 = (byte*) render_screen_original::cols#3 [phi:render_screen_original::@7->render_screen_original::@1#3] -- register_copy - //SEG1088 [496] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#10 [phi:render_screen_original::@7->render_screen_original::@1#4] -- register_copy + //SEG1080 [494] 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 + //SEG1081 [494] phi (byte*) render_screen_original::ocols#4 = (byte*) render_screen_original::ocols#1 [phi:render_screen_original::@7->render_screen_original::@1#1] -- register_copy + //SEG1082 [494] phi (byte*) render_screen_original::oscr#4 = (byte*) render_screen_original::oscr#1 [phi:render_screen_original::@7->render_screen_original::@1#2] -- register_copy + //SEG1083 [494] phi (byte*) render_screen_original::cols#7 = (byte*) render_screen_original::cols#3 [phi:render_screen_original::@7->render_screen_original::@1#3] -- register_copy + //SEG1084 [494] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#10 [phi:render_screen_original::@7->render_screen_original::@1#4] -- register_copy jmp b1 - //SEG1089 render_screen_original::@1 + //SEG1085 render_screen_original::@1 b1: - //SEG1090 [497] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] + //SEG1086 [495] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] b2_from_b1: - //SEG1091 [497] 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 + //SEG1087 [495] 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 - //SEG1092 [497] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#7 [phi:render_screen_original::@1->render_screen_original::@2#1] -- register_copy - //SEG1093 [497] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#8 [phi:render_screen_original::@1->render_screen_original::@2#2] -- register_copy + //SEG1088 [495] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#7 [phi:render_screen_original::@1->render_screen_original::@2#1] -- register_copy + //SEG1089 [495] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#8 [phi:render_screen_original::@1->render_screen_original::@2#2] -- register_copy jmp b2 - //SEG1094 [497] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] + //SEG1090 [495] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] b2_from_b2: - //SEG1095 [497] 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 - //SEG1096 [497] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2->render_screen_original::@2#1] -- register_copy - //SEG1097 [497] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2->render_screen_original::@2#2] -- register_copy + //SEG1091 [495] 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 + //SEG1092 [495] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2->render_screen_original::@2#1] -- register_copy + //SEG1093 [495] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2->render_screen_original::@2#2] -- register_copy jmp b2 - //SEG1098 render_screen_original::@2 + //SEG1094 render_screen_original::@2 b2: - //SEG1099 [498] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG1095 [496] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG1100 [499] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 + //SEG1096 [497] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG1101 [500] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG1097 [498] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG1102 [501] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 + //SEG1098 [499] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1103 [502] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuz1=_inc_vbuz1 + //SEG1099 [500] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuz1=_inc_vbuz1 inc x - //SEG1104 [503] 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 + //SEG1100 [501] 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 - //SEG1105 [504] 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] + //SEG1101 [502] 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: - //SEG1106 [504] 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 - //SEG1107 [504] phi (byte*) render_screen_original::cols#5 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#1] -- register_copy - //SEG1108 [504] phi (byte*) render_screen_original::ocols#2 = (byte*) render_screen_original::ocols#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#2] -- register_copy - //SEG1109 [504] phi (byte*) render_screen_original::screen#6 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#3] -- register_copy - //SEG1110 [504] phi (byte*) render_screen_original::oscr#2 = (byte*) render_screen_original::oscr#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#4] -- register_copy + //SEG1102 [502] 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 + //SEG1103 [502] phi (byte*) render_screen_original::cols#5 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#1] -- register_copy + //SEG1104 [502] phi (byte*) render_screen_original::ocols#2 = (byte*) render_screen_original::ocols#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#2] -- register_copy + //SEG1105 [502] phi (byte*) render_screen_original::screen#6 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#3] -- register_copy + //SEG1106 [502] phi (byte*) render_screen_original::oscr#2 = (byte*) render_screen_original::oscr#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#4] -- register_copy jmp b3 - //SEG1111 render_screen_original::@3 + //SEG1107 render_screen_original::@3 b3: - //SEG1112 [505] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG1108 [503] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (oscr),y ldy #0 sta (screen),y - //SEG1113 [506] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 + //SEG1109 [504] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG1114 [507] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 + //SEG1110 [505] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 inc oscr bne !+ inc oscr+1 !: - //SEG1115 [508] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG1111 [506] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (ocols),y ldy #0 sta (cols),y - //SEG1116 [509] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 + //SEG1112 [507] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1117 [510] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 + //SEG1113 [508] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 inc ocols bne !+ inc ocols+1 !: - //SEG1118 [511] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuz1=_inc_vbuz1 + //SEG1114 [509] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuz1=_inc_vbuz1 inc x - //SEG1119 [512] 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 + //SEG1115 [510] 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 - //SEG1120 [513] 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] + //SEG1116 [511] 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: - //SEG1121 [513] 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 - //SEG1122 [513] phi (byte*) render_screen_original::cols#6 = (byte*) render_screen_original::cols#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#1] -- register_copy - //SEG1123 [513] phi (byte*) render_screen_original::screen#7 = (byte*) render_screen_original::screen#3 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#2] -- register_copy + //SEG1117 [511] 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 + //SEG1118 [511] phi (byte*) render_screen_original::cols#6 = (byte*) render_screen_original::cols#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#1] -- register_copy + //SEG1119 [511] phi (byte*) render_screen_original::screen#7 = (byte*) render_screen_original::screen#3 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#2] -- register_copy jmp b4 - //SEG1124 render_screen_original::@4 + //SEG1120 render_screen_original::@4 b4: - //SEG1125 [514] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG1121 [512] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG1126 [515] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 + //SEG1122 [513] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG1127 [516] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG1123 [514] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG1128 [517] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 + //SEG1124 [515] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1129 [518] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuz1=_inc_vbuz1 + //SEG1125 [516] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuz1=_inc_vbuz1 inc x - //SEG1130 [519] 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 + //SEG1126 [517] 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 - //SEG1131 render_screen_original::@7 + //SEG1127 render_screen_original::@7 b7: - //SEG1132 [520] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 + //SEG1128 [518] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG1133 [521] 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 + //SEG1129 [519] 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 - //SEG1134 render_screen_original::@return + //SEG1130 render_screen_original::@return breturn: - //SEG1135 [522] return + //SEG1131 [520] return rts } -//SEG1136 sid_rnd_init +//SEG1132 sid_rnd_init sid_rnd_init: { - //SEG1137 [523] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 + //SEG1133 [521] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 lda #<$ffff sta SID_VOICE3_FREQ lda #>$ffff sta SID_VOICE3_FREQ+1 - //SEG1138 [524] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG1134 [522] *((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 - //SEG1139 sid_rnd_init::@return + //SEG1135 sid_rnd_init::@return breturn: - //SEG1140 [525] return + //SEG1136 [523] return rts } -//SEG1141 sprites_irq +//SEG1137 sprites_irq sprites_irq: { .const toSpritePtr2_return = PLAYFIELD_SPRITES>>6 .label _0 = $d5 @@ -15455,128 +15369,128 @@ sprites_irq: { .label ptr_2 = $e3 .label ptr_3 = $d8 .label ptr_4 = $d9 - //SEG1142 entry interrupt(HARDWARE_CLOBBER) + //SEG1138 entry interrupt(HARDWARE_CLOBBER) sta rega+1 stx regx+1 sty regy+1 - //SEG1143 asm { cld } + //SEG1139 asm { cld } cld - //SEG1144 [527] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuz1=vbuz2 + //SEG1140 [525] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuz1=vbuz2 lda irq_sprite_ypos sta ypos - //SEG1145 [528] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 + //SEG1141 [526] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 lda ypos sta SPRITES_YPOS - //SEG1146 [529] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 + //SEG1142 [527] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 lda ypos sta SPRITES_YPOS+2 - //SEG1147 [530] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 + //SEG1143 [528] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 lda ypos sta SPRITES_YPOS+4 - //SEG1148 [531] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 + //SEG1144 [529] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 lda ypos sta SPRITES_YPOS+6 - //SEG1149 [532] (byte/signed word/word/dword/signed dword~) sprites_irq::$0 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG1145 [530] (byte/signed word/word/dword/signed dword~) sprites_irq::$0 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy irq_raster_next iny sty _0 - //SEG1150 [533] (byte) sprites_irq::raster_sprite_gfx_modify#0 ← (byte/signed word/word/dword/signed dword~) sprites_irq::$0 -- vbuz1=vbuz2 + //SEG1146 [531] (byte) sprites_irq::raster_sprite_gfx_modify#0 ← (byte/signed word/word/dword/signed dword~) sprites_irq::$0 -- vbuz1=vbuz2 lda _0 sta raster_sprite_gfx_modify jmp b1 - //SEG1151 sprites_irq::@1 + //SEG1147 sprites_irq::@1 b1: - //SEG1152 [534] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 + //SEG1148 [532] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 lda RASTER cmp raster_sprite_gfx_modify bcc b1 jmp b8 - //SEG1153 sprites_irq::@8 + //SEG1149 sprites_irq::@8 b8: - //SEG1154 [535] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuz1=vbuz2 + //SEG1150 [533] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuz1=vbuz2 lda irq_sprite_ptr sta ptr - //SEG1155 [536] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 -- vbuz1_eq_0_then_la1 + //SEG1151 [534] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 -- vbuz1_eq_0_then_la1 lda render_screen_showing cmp #0 beq b2 jmp b9 - //SEG1156 sprites_irq::@9 + //SEG1152 sprites_irq::@9 b9: - //SEG1157 [537] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuz1 + //SEG1153 [535] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuz1 lda ptr sta PLAYFIELD_SPRITE_PTRS_2 - //SEG1158 [538] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuz1=_inc_vbuz2 + //SEG1154 [536] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuz1=_inc_vbuz2 ldy ptr iny sty ptr_3 - //SEG1159 [539] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuz1 + //SEG1155 [537] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuz1 lda ptr_3 sta PLAYFIELD_SPRITE_PTRS_2+1 - //SEG1160 [540] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuz1 + //SEG1156 [538] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuz1 lda ptr_3 sta PLAYFIELD_SPRITE_PTRS_2+2 - //SEG1161 [541] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuz1=_inc_vbuz2 + //SEG1157 [539] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuz1=_inc_vbuz2 ldy ptr_3 iny sty ptr_4 - //SEG1162 [542] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 -- _deref_pbuc1=vbuz1 + //SEG1158 [540] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 -- _deref_pbuc1=vbuz1 lda ptr_4 sta PLAYFIELD_SPRITE_PTRS_2+3 jmp b3 - //SEG1163 sprites_irq::@3 + //SEG1159 sprites_irq::@3 b3: - //SEG1164 [543] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz2 + //SEG1160 [541] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz2 ldy irq_cnt iny sty irq_cnt_1 - //SEG1165 [544] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 + //SEG1161 [542] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 lda irq_cnt_1 cmp #9 beq b4 jmp b11 - //SEG1166 sprites_irq::@11 + //SEG1162 sprites_irq::@11 b11: - //SEG1167 [545] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 -- vbuz1_eq_vbuc1_then_la1 + //SEG1163 [543] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 -- vbuz1_eq_vbuc1_then_la1 lda irq_cnt_1 cmp #$a beq b5 jmp b12 - //SEG1168 sprites_irq::@12 + //SEG1164 sprites_irq::@12 b12: - //SEG1169 [546] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 -- vbuz1=vbuz2_plus_vbuc1 + //SEG1165 [544] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 -- vbuz1=vbuz2_plus_vbuc1 lda #$14 clc adc irq_raster_next sta irq_raster_next_3 - //SEG1170 [547] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 + //SEG1166 [545] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 lda #$15 clc adc irq_sprite_ypos sta irq_sprite_ypos_3 - //SEG1171 [548] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_plus_vbuc1 + //SEG1167 [546] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_plus_vbuc1 lda #3 clc adc irq_sprite_ptr sta irq_sprite_ptr_3 - //SEG1172 [549] phi from sprites_irq::@12 sprites_irq::@15 sprites_irq::@5 to sprites_irq::@7 [phi:sprites_irq::@12/sprites_irq::@15/sprites_irq::@5->sprites_irq::@7] + //SEG1168 [547] phi from sprites_irq::@12 sprites_irq::@15 sprites_irq::@5 to sprites_irq::@7 [phi:sprites_irq::@12/sprites_irq::@15/sprites_irq::@5->sprites_irq::@7] b7_from_b12: b7_from_b15: b7_from_b5: - //SEG1173 [549] phi (byte) irq_raster_next#4 = (byte) irq_raster_next#3 [phi:sprites_irq::@12/sprites_irq::@15/sprites_irq::@5->sprites_irq::@7#0] -- register_copy + //SEG1169 [547] phi (byte) irq_raster_next#4 = (byte) irq_raster_next#3 [phi:sprites_irq::@12/sprites_irq::@15/sprites_irq::@5->sprites_irq::@7#0] -- register_copy jmp b7 - //SEG1174 sprites_irq::@7 + //SEG1170 sprites_irq::@7 b7: - //SEG1175 [550] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 -- _deref_pbuc1=vbuz1 + //SEG1171 [548] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 -- _deref_pbuc1=vbuz1 lda irq_raster_next_4 sta RASTER - //SEG1176 [551] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG1172 [549] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS jmp breturn - //SEG1177 sprites_irq::@return + //SEG1173 sprites_irq::@return breturn: - //SEG1178 [552] return - exit interrupt(HARDWARE_CLOBBER) + //SEG1174 [550] return - exit interrupt(HARDWARE_CLOBBER) rega: lda #00 regx: @@ -15584,67 +15498,67 @@ sprites_irq: { regy: ldy #00 rti - //SEG1179 sprites_irq::@5 + //SEG1175 sprites_irq::@5 b5: - //SEG1180 [553] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 + //SEG1176 [551] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 lda #0 sta irq_cnt_2 - //SEG1181 [554] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 + //SEG1177 [552] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next_2 - //SEG1182 [555] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 + //SEG1178 [553] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 lda #$15 clc adc irq_sprite_ypos sta irq_sprite_ypos_2 - //SEG1183 [556] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_plus_vbuc1 + //SEG1179 [554] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_plus_vbuc1 lda #3 clc adc irq_sprite_ptr sta irq_sprite_ptr_2 jmp b7_from_b5 - //SEG1184 sprites_irq::@4 + //SEG1180 sprites_irq::@4 b4: - //SEG1185 [557] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 + //SEG1181 [555] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 lda #$15 clc adc irq_raster_next sta irq_raster_next_1 - //SEG1186 [558] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 -- vbuz1=vbuc1 + //SEG1182 [556] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 -- vbuz1=vbuc1 lda #SPRITES_FIRST_YPOS sta irq_sprite_ypos_1 - //SEG1187 [559] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] + //SEG1183 [557] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] toSpritePtr2_from_b4: jmp toSpritePtr2 - //SEG1188 sprites_irq::toSpritePtr2 + //SEG1184 sprites_irq::toSpritePtr2 toSpritePtr2: jmp b15 - //SEG1189 sprites_irq::@15 + //SEG1185 sprites_irq::@15 b15: - //SEG1190 [560] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 + //SEG1186 [558] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 lda #toSpritePtr2_return sta irq_sprite_ptr_1 jmp b7_from_b15 - //SEG1191 sprites_irq::@2 + //SEG1187 sprites_irq::@2 b2: - //SEG1192 [561] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuz1 + //SEG1188 [559] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuz1 lda ptr sta PLAYFIELD_SPRITE_PTRS_1 - //SEG1193 [562] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuz1=_inc_vbuz2 + //SEG1189 [560] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuz1=_inc_vbuz2 ldy ptr iny sty ptr_1 - //SEG1194 [563] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuz1 + //SEG1190 [561] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuz1 lda ptr_1 sta PLAYFIELD_SPRITE_PTRS_1+1 - //SEG1195 [564] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuz1 + //SEG1191 [562] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuz1 lda ptr_1 sta PLAYFIELD_SPRITE_PTRS_1+2 - //SEG1196 [565] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuz1=_inc_vbuz2 + //SEG1192 [563] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuz1=_inc_vbuz2 ldy ptr_1 iny sty ptr_2 - //SEG1197 [566] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 -- _deref_pbuc1=vbuz1 + //SEG1193 [564] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 -- _deref_pbuc1=vbuz1 lda ptr_2 sta PLAYFIELD_SPRITE_PTRS_1+3 jmp b3 @@ -15721,17 +15635,17 @@ Statement [6] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( Statement [7] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 [ ] ( ) always clobbers reg byte a Statement [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0+(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( ) always clobbers reg byte a Statement [10] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a -Statement [30] (byte*~) current_piece_gfx#116 ← (byte*) current_piece_gfx#21 [ current_ypos#100 current_ypos#22 current_xpos#126 current_xpos#28 current_piece_gfx#116 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 ] ( main:12 [ current_ypos#100 current_ypos#22 current_xpos#126 current_xpos#28 current_piece_gfx#116 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 ] ) always clobbers reg byte a +Statement [30] (byte*~) current_piece_gfx#114 ← (byte*) current_piece_gfx#21 [ current_ypos#100 current_ypos#22 current_xpos#124 current_xpos#28 current_piece_gfx#114 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 ] ( main:12 [ current_ypos#100 current_ypos#22 current_xpos#124 current_xpos#28 current_piece_gfx#114 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:15 [ current_ypos#11 current_ypos#100 current_ypos#101 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:48 [ current_ypos#36 current_ypos#25 current_ypos#17 current_ypos#22 current_ypos#2 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:17 [ current_xpos#57 current_xpos#126 current_xpos#127 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:64 [ current_xpos#41 current_xpos#115 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:17 [ current_xpos#57 current_xpos#124 current_xpos#125 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:64 [ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:60 [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:164 [ play_spawn_current::$3 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:56 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:66 [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] Statement [33] (byte*~) current_piece#88 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 current_piece#88 current_movedown_slow#1 game_over#15 ] ( main:12 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 current_piece#88 current_movedown_slow#1 game_over#15 ] ) always clobbers reg byte a -Statement [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ) always clobbers reg byte a +Statement [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:61 [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] @@ -15739,8 +15653,8 @@ Removing always clobbered register reg byte a as potential for zp ZP_BYTE:86 [ k Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:55 [ level#31 level#18 level#10 level#16 level#20 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:57 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] -Statement [56] (byte*~) current_piece_gfx#117 ← (byte*) current_piece_gfx#16 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 current_ypos#101 render_screen_render#66 current_xpos#127 current_piece_gfx#117 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 current_ypos#101 render_screen_render#66 current_xpos#127 current_piece_gfx#117 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#66 ] +Statement [56] (byte*~) current_piece_gfx#115 ← (byte*) current_piece_gfx#16 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 current_ypos#101 render_screen_render#64 current_xpos#125 current_piece_gfx#115 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 current_ypos#101 render_screen_render#64 current_xpos#125 current_piece_gfx#115 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 ] Statement [63] (byte) render_screen_render#11 ← (byte) render_screen_render#17 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 [ render_screen_show#16 render_screen_render#11 ] ( main:12::render_screen_swap:62 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_show#16 render_screen_render#11 ] ) always clobbers reg byte a Statement [64] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 [ render_screen_show#13 render_screen_render#11 ] ( main:12::render_screen_swap:62 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a Statement [69] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#0 ] ( main:12::render_score:60 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#0 ] ) always clobbers reg byte a @@ -15761,7 +15675,7 @@ Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ re Removing always clobbered register reg byte y as potential for zp ZP_BYTE:56 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:60 [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:61 [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:64 [ current_xpos#41 current_xpos#115 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:64 [ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:48 [ current_ypos#36 current_ypos#25 current_ypos#17 current_ypos#22 current_ypos#2 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:66 [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:86 [ 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 ] @@ -15774,212 +15688,212 @@ Statement [96] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signe Statement [97] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 [ render_bcd::screen_pos#3 render_bcd::$6 ] ( main:12::render_score:60::render_bcd:71 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:60::render_bcd:74 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:60::render_bcd:77 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:60::render_bcd:80 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:60::render_bcd:83 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:60::render_bcd:86 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$6 ] ) always clobbers reg byte a Statement [98] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 [ render_bcd::screen_pos#3 ] ( main:12::render_score:60::render_bcd:71 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:60::render_bcd:74 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:60::render_bcd:77 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:60::render_bcd:80 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:60::render_bcd:83 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:60::render_bcd:86 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 ] ) always clobbers reg byte y Statement [99] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 [ ] ( main:12::render_score:60::render_bcd:71 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:60::render_bcd:74 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:60::render_bcd:77 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:60::render_bcd:80 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:60::render_bcd:83 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:60::render_bcd:86 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 ] ) always clobbers reg byte a -Statement [102] (byte) render_moving::ypos2#0 ← (byte) current_ypos#11 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#0 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#0 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:20 [ current_piece_char#76 current_piece_char#104 current_piece_char#105 ] -Statement [105] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] ) always clobbers reg byte a +Statement [102] (byte) render_moving::ypos2#0 ← (byte) current_ypos#11 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#0 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#0 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:20 [ current_piece_char#64 current_piece_char#102 current_piece_char#103 ] +Statement [105] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:22 [ render_moving::l#4 render_moving::l#1 ] -Statement [112] (byte~) render_moving::$5 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 [ render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$5 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$5 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$5 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:23 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#10 render_moving::i#1 ] -Statement [113] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$5) [ render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ) always clobbers reg byte a -Statement [116] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_moving::i#4) [ render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ) always clobbers reg byte a +Statement [111] (byte~) render_moving::$2 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$2 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$2 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$2 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:23 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] +Statement [112] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$2) [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ) always clobbers reg byte a +Statement [115] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#62 + (byte) render_moving::i#4) [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:24 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:25 [ render_moving::c#2 render_moving::c#1 ] -Statement [120] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#76 [ render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::l#4 render_moving::i#10 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::l#4 render_moving::i#10 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::l#4 render_moving::i#10 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ) always clobbers reg byte a -Statement [126] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ( main:12::render_playfield:27 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] main:12::render_playfield:52 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:26 [ render_screen_render#21 render_screen_render#67 ] +Statement [118] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#64 [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ) always clobbers reg byte a +Statement [124] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ( main:12::render_playfield:27 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] main:12::render_playfield:52 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:26 [ render_screen_render#21 render_screen_render#65 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:27 [ render_playfield::l#2 render_playfield::l#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:28 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] -Statement [127] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 [ render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ( main:12::render_playfield:27 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] main:12::render_playfield:52 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ) always clobbers reg byte a -Statement [128] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) [ render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:12::render_playfield:27 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:12::render_playfield:52 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a -Statement [130] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_screen_render#21 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ( main:12::render_playfield:27 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#21 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:12::render_playfield:52 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#21 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y +Statement [125] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 [ render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ( main:12::render_playfield:27 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] main:12::render_playfield:52 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ) always clobbers reg byte a +Statement [126] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) [ render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:12::render_playfield:27 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:12::render_playfield:52 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a +Statement [128] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_screen_render#21 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ( main:12::render_playfield:27 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#21 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:12::render_playfield:52 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#21 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:164 [ play_spawn_current::$3 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:26 [ render_screen_render#21 render_screen_render#67 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:26 [ render_screen_render#21 render_screen_render#65 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:27 [ render_playfield::l#2 render_playfield::l#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:28 [ 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:31 [ render_playfield::c#2 render_playfield::c#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:31 [ render_playfield::c#2 render_playfield::c#1 ] -Statement [142] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#19 current_piece_gfx#18 current_xpos#20 ] ( main:12::play_movement:47 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#19 current_piece_gfx#18 current_xpos#20 ] ) always clobbers reg byte a +Statement [140] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#19 current_piece_gfx#18 current_xpos#20 ] ( main:12::play_movement:47 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#19 current_piece_gfx#18 current_xpos#20 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:118 [ play_movement::key_event#0 ] -Statement [150] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_movement::render#2 ] ( main:12::play_movement:47 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_movement::render#2 ] ) always clobbers reg byte a -Statement [155] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::return#0 current_orientation#24 current_piece_gfx#19 current_xpos#24 ] ( main:12::play_movement:47 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::return#0 current_orientation#24 current_piece_gfx#19 current_xpos#24 ] ) always clobbers reg byte a -Statement [160] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#19 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::$2 ] ( main:12::play_movement:47::play_move_rotate:152 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::$2 ] ) always clobbers reg byte a +Statement [148] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_movement::render#2 ] ( main:12::play_movement:47 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_movement::render#2 ] ) always clobbers reg byte a +Statement [153] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::return#0 current_orientation#24 current_piece_gfx#19 current_xpos#24 ] ( main:12::play_movement:47 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::return#0 current_orientation#24 current_piece_gfx#19 current_xpos#24 ] ) always clobbers reg byte a +Statement [158] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#19 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::$2 ] ( main:12::play_movement:47::play_move_rotate:150 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::$2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:139 [ play_movement::render#2 ] -Statement [161] (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#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#2 ] ( main:12::play_movement:47::play_move_rotate:152 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#2 ] ) always clobbers reg byte a -Statement [166] (byte*~) current_piece#93 ← (byte*) current_piece#14 [ current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#93 ] ( main:12::play_movement:47::play_move_rotate:152 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#93 ] ) always clobbers reg byte a +Statement [159] (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#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#2 ] ( main:12::play_movement:47::play_move_rotate:150 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#2 ] ) always clobbers reg byte a +Statement [164] (byte*~) current_piece#93 ← (byte*) current_piece#14 [ current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#93 ] ( main:12::play_movement:47::play_move_rotate:150 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#93 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:34 [ 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:39 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:38 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:37 [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] -Statement [172] (byte*) current_piece_gfx#6 ← (byte*) current_piece#14 + (byte) current_orientation#7 [ current_piece#14 current_ypos#17 current_xpos#24 current_orientation#7 current_piece_gfx#6 ] ( main:12::play_movement:47::play_move_rotate:152 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_xpos#24 current_orientation#7 current_piece_gfx#6 ] ) always clobbers reg byte a -Statement [173] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#19 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::$4 ] ( main:12::play_movement:47::play_move_rotate:152 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::$4 ] ) always clobbers reg byte a -Statement [174] (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#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#1 ] ( main:12::play_movement:47::play_move_rotate:152 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#1 ] ) always clobbers reg byte a -Statement [176] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#16 + (byte) play_collision::orientation#5 [ play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] ( main:12::play_movement:47::play_move_rotate:152::play_collision:167 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:47::play_move_leftright:147::play_collision:205 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:47::play_move_leftright:147::play_collision:216 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:47::play_move_down:139::play_collision:240 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_spawn_current:25::play_collision:270 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253::play_collision:270 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] ) always clobbers reg byte a +Statement [170] (byte*) current_piece_gfx#6 ← (byte*) current_piece#14 + (byte) current_orientation#7 [ current_piece#14 current_ypos#17 current_xpos#24 current_orientation#7 current_piece_gfx#6 ] ( main:12::play_movement:47::play_move_rotate:150 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_xpos#24 current_orientation#7 current_piece_gfx#6 ] ) always clobbers reg byte a +Statement [171] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#19 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::$4 ] ( main:12::play_movement:47::play_move_rotate:150 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::$4 ] ) always clobbers reg byte a +Statement [172] (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#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#1 ] ( main:12::play_movement:47::play_move_rotate:150 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#1 ] ) always clobbers reg byte a +Statement [174] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#16 + (byte) play_collision::orientation#5 [ play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] ( main:12::play_movement:47::play_move_rotate:150::play_collision:165 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:47::play_move_leftright:145::play_collision:203 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:47::play_move_leftright:145::play_collision:214 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:47::play_move_down:137::play_collision:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_spawn_current:25::play_collision:268 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251::play_collision:268 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:32 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] -Statement [177] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:12::play_movement:47::play_move_rotate:152::play_collision:167 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:47::play_move_leftright:147::play_collision:205 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:47::play_move_leftright:147::play_collision:216 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:47::play_move_down:139::play_collision:240 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_spawn_current:25::play_collision:270 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253::play_collision:270 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a -Statement [179] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:12::play_movement:47::play_move_rotate:152::play_collision:167 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:47::play_move_leftright:147::play_collision:205 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:47::play_move_leftright:147::play_collision:216 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:47::play_move_down:139::play_collision:240 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_spawn_current:25::play_collision:270 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253::play_collision:270 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 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 [175] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:12::play_movement:47::play_move_rotate:150::play_collision:165 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:47::play_move_leftright:145::play_collision:203 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:47::play_move_leftright:145::play_collision:214 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:47::play_move_down:137::play_collision:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_spawn_current:25::play_collision:268 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251::play_collision:268 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a +Statement [177] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:12::play_movement:47::play_move_rotate:150::play_collision:165 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:47::play_move_leftright:145::play_collision:203 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:47::play_move_leftright:145::play_collision:214 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:47::play_move_down:137::play_collision:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_spawn_current:25::play_collision:268 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251::play_collision:268 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 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:40 [ 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:42 [ 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:41 [ play_collision::l#6 play_collision::l#1 ] -Statement [183] 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#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_movement:47::play_move_rotate:152::play_collision:167 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_leftright:147::play_collision:205 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_leftright:147::play_collision:216 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_down:139::play_collision:240 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:25::play_collision:270 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253::play_collision:270 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 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 [181] 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#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_movement:47::play_move_rotate:150::play_collision:165 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_leftright:145::play_collision:203 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_leftright:145::play_collision:214 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_down:137::play_collision:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:25::play_collision:268 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251::play_collision:268 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 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:43 [ 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:44 [ play_collision::c#2 play_collision::c#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:151 [ play_collision::i#1 ] -Statement [187] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:12::play_movement:47::play_move_rotate:152::play_collision:167 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:47::play_move_leftright:147::play_collision:205 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:47::play_move_leftright:147::play_collision:216 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:47::play_move_down:139::play_collision:240 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_spawn_current:25::play_collision:270 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253::play_collision:270 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 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 [190] 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#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_movement:47::play_move_rotate:152::play_collision:167 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_leftright:147::play_collision:205 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_leftright:147::play_collision:216 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_down:139::play_collision:240 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:25::play_collision:270 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253::play_collision:270 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 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 [204] (byte*~) current_piece#92 ← (byte*) current_piece#14 [ current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 current_piece#92 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ( main:12::play_movement:47::play_move_leftright:147 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 current_piece#92 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ) always clobbers reg byte a -Statement [215] (byte*~) current_piece#91 ← (byte*) current_piece#14 [ current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 current_piece#91 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ( main:12::play_movement:47::play_move_leftright:147 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 current_piece#91 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ) always clobbers reg byte a -Statement [239] (byte*~) current_piece#90 ← (byte*) current_piece#20 [ current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece#90 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:12::play_movement:47::play_move_down:139 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece#90 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a -Statement [254] (byte*~) current_piece#95 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 game_over#15 current_piece#95 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 ] ( main:12::play_movement:47::play_move_down:139 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 game_over#15 current_piece#95 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 ] ) always clobbers reg byte a -Statement [262] (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 game_over#70 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [185] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:12::play_movement:47::play_move_rotate:150::play_collision:165 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:47::play_move_leftright:145::play_collision:203 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:47::play_move_leftright:145::play_collision:214 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:47::play_move_down:137::play_collision:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_spawn_current:25::play_collision:268 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251::play_collision:268 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 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 [188] 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#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_movement:47::play_move_rotate:150::play_collision:165 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_leftright:145::play_collision:203 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_leftright:145::play_collision:214 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_down:137::play_collision:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:25::play_collision:268 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251::play_collision:268 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 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 [202] (byte*~) current_piece#92 ← (byte*) current_piece#14 [ current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 current_piece#92 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ( main:12::play_movement:47::play_move_leftright:145 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 current_piece#92 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ) always clobbers reg byte a +Statement [213] (byte*~) current_piece#91 ← (byte*) current_piece#14 [ current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 current_piece#91 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ( main:12::play_movement:47::play_move_leftright:145 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 current_piece#91 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ) always clobbers reg byte a +Statement [237] (byte*~) current_piece#90 ← (byte*) current_piece#20 [ current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece#90 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:12::play_movement:47::play_move_down:137 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece#90 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a +Statement [252] (byte*~) current_piece#95 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 game_over#15 current_piece#95 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 ] ( main:12::play_movement:47::play_move_down:137 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 game_over#15 current_piece#95 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 ] ) always clobbers reg byte a +Statement [260] (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 game_over#70 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:67 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] -Statement [263] (byte) current_piece_char#16 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) [ current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [264] (byte*) current_piece_gfx#21 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [265] (byte) current_xpos#28 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) [ current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [266] (byte) current_ypos#22 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 ] ) always clobbers reg byte a -Statement [269] (byte*~) current_piece#94 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_piece#94 play_collision::ypos#4 play_collision::xpos#4 game_over#70 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_piece#94 play_collision::ypos#4 play_collision::xpos#4 game_over#70 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_piece#94 play_collision::ypos#4 play_collision::xpos#4 game_over#70 ] ) always clobbers reg byte a -Statement [281] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ game_over#70 play_spawn_current::piece_idx#1 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 game_over#70 play_spawn_current::piece_idx#1 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 game_over#70 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a -Statement [285] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ) always clobbers reg byte a +Statement [261] (byte) current_piece_char#16 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) [ current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [262] (byte*) current_piece_gfx#21 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [263] (byte) current_xpos#28 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) [ current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [264] (byte) current_ypos#22 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 ] ) always clobbers reg byte a +Statement [267] (byte*~) current_piece#94 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_piece#94 play_collision::ypos#4 play_collision::xpos#4 game_over#70 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_piece#94 play_collision::ypos#4 play_collision::xpos#4 game_over#70 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_piece#94 play_collision::ypos#4 play_collision::xpos#4 game_over#70 ] ) always clobbers reg byte a +Statement [279] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ game_over#70 play_spawn_current::piece_idx#1 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 game_over#70 play_spawn_current::piece_idx#1 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 game_over#70 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a +Statement [283] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:163 [ play_update_score::removed#0 ] -Statement [286] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ) always clobbers reg byte a -Statement [287] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ) always clobbers reg byte a +Statement [284] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ) always clobbers reg byte a +Statement [285] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:171 [ play_update_score::lines_before#0 ] -Statement [288] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ) always clobbers reg byte a -Statement [290] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 [ current_movedown_slow#14 score_bcd#18 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#30 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 score_bcd#18 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#30 ] ) always clobbers reg byte a -Statement [291] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 ] ) always clobbers reg byte a -Statement [293] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::$5 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::$5 ] ) always clobbers reg byte a -Statement [294] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ) always clobbers reg byte a -Statement [301] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 [ level_bcd#11 level#20 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251::play_increase_level:297 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level_bcd#11 level#20 ] ) always clobbers reg byte a -Statement [302] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) [ level_bcd#11 level#20 current_movedown_slow#10 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251::play_increase_level:297 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level_bcd#11 level#20 current_movedown_slow#10 ] ) always clobbers reg byte a -Statement [305] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ level#20 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251::play_increase_level:297 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ) always clobbers reg byte a -Statement [307] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 [ level#20 current_movedown_slow#69 level_bcd#8 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251::play_increase_level:297 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#8 ] ) always clobbers reg byte a -Statement [311] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 play_increase_level::b4#0 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251::play_increase_level:297 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 play_increase_level::b4#0 ] ) always clobbers reg byte a +Statement [286] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ) always clobbers reg byte a +Statement [288] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 [ current_movedown_slow#14 score_bcd#18 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#30 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 score_bcd#18 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#30 ] ) always clobbers reg byte a +Statement [289] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 ] ) always clobbers reg byte a +Statement [291] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::$5 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::$5 ] ) always clobbers reg byte a +Statement [292] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ) always clobbers reg byte a +Statement [299] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 [ level_bcd#11 level#20 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249::play_increase_level:295 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level_bcd#11 level#20 ] ) always clobbers reg byte a +Statement [300] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) [ level_bcd#11 level#20 current_movedown_slow#10 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249::play_increase_level:295 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level_bcd#11 level#20 current_movedown_slow#10 ] ) always clobbers reg byte a +Statement [303] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ level#20 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249::play_increase_level:295 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ) always clobbers reg byte a +Statement [305] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 [ level#20 current_movedown_slow#69 level_bcd#8 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249::play_increase_level:295 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#8 ] ) always clobbers reg byte a +Statement [309] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 play_increase_level::b4#0 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249::play_increase_level:295 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 play_increase_level::b4#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:68 [ play_increase_level::b#2 play_increase_level::b#1 ] -Statement [312] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) [ level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251::play_increase_level:297 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 ] ) always clobbers reg byte a -Statement [329] (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::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ( main:12::play_movement:47::play_move_down:139::play_remove_lines:247 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ) always clobbers reg byte a +Statement [310] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) [ level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249::play_increase_level:295 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 ] ) always clobbers reg byte a +Statement [327] (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::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ( main:12::play_movement:47::play_move_down:137::play_remove_lines:245 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:69 [ play_remove_lines::y#8 play_remove_lines::y#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:70 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:71 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] -Statement [337] *((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::removed#7 play_remove_lines::w#6 ] ( main:12::play_movement:47::play_move_down:139::play_remove_lines:247 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_remove_lines::removed#7 play_remove_lines::w#6 ] ) always clobbers reg byte a +Statement [335] *((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::removed#7 play_remove_lines::w#6 ] ( main:12::play_movement:47::play_move_down:137::play_remove_lines:245 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_remove_lines::removed#7 play_remove_lines::w#6 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:74 [ 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 [340] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#25 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_char#19 current_piece_gfx#105 current_xpos#115 play_lock_current::ypos2#0 ] ( main:12::play_movement:47::play_move_down:139::play_lock_current:245 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#19 current_piece_gfx#105 current_xpos#115 play_lock_current::ypos2#0 ] ) always clobbers reg byte a -Statement [342] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) [ current_piece_char#19 current_piece_gfx#105 current_xpos#115 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:12::play_movement:47::play_move_down:139::play_lock_current:245 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#19 current_piece_gfx#105 current_xpos#115 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 [338] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#25 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#0 ] ( main:12::play_movement:47::play_move_down:137::play_lock_current:243 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#0 ] ) always clobbers reg byte a +Statement [340] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) [ current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:12::play_movement:47::play_move_down:137::play_lock_current:243 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#19 current_piece_gfx#103 current_xpos#113 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:75 [ 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:77 [ 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:76 [ play_lock_current::l#6 play_lock_current::l#1 ] -Statement [346] if(*((byte*) current_piece_gfx#105 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 [ current_piece_char#19 current_piece_gfx#105 current_xpos#115 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_movement:47::play_move_down:139::play_lock_current:245 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#19 current_piece_gfx#105 current_xpos#115 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 [344] if(*((byte*) current_piece_gfx#103 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 [ current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_movement:47::play_move_down:137::play_lock_current:243 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#19 current_piece_gfx#103 current_xpos#113 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:78 [ 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:79 [ play_lock_current::c#2 play_lock_current::c#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:184 [ play_lock_current::i#1 ] -Statement [347] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#19 [ current_piece_char#19 current_piece_gfx#105 current_xpos#115 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_movement:47::play_move_down:139::play_lock_current:245 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#19 current_piece_gfx#105 current_xpos#115 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 [358] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:12::play_movement:47::play_move_down:139::keyboard_event_pressed:225 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:380 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:386 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:392 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:398 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a +Statement [345] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#19 [ current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_movement:47::play_move_down:137::play_lock_current:243 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#19 current_piece_gfx#103 current_xpos#113 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 [356] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:12::play_movement:47::play_move_down:137::keyboard_event_pressed:223 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:378 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:384 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:390 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:396 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 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:47 [ 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:80 [ keyboard_event_pressed::keycode#5 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:83 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] -Statement [360] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:12::play_movement:47::play_move_down:139::keyboard_event_pressed:225 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:380 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:386 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:392 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:398 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a +Statement [358] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:12::play_movement:47::play_move_down:137::keyboard_event_pressed:223 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:378 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:384 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:390 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:396 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 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:186 [ keyboard_event_pressed::row_bits#0 ] -Statement [361] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:12::play_movement:47::play_move_down:139::keyboard_event_pressed:225 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:380 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:386 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:392 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:398 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a -Statement [375] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a +Statement [359] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:12::play_movement:47::play_move_down:137::keyboard_event_pressed:223 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:378 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:384 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:390 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:396 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a +Statement [373] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 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:82 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Statement [390] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#13 keyboard_modifiers#3 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a -Statement [396] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#13 keyboard_modifiers#4 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a -Statement [402] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#13 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 ] ) always clobbers reg byte a -Statement [405] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ) always clobbers reg byte a +Statement [388] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#13 keyboard_modifiers#3 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a +Statement [394] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#13 keyboard_modifiers#4 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a +Statement [400] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#13 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 ] ) always clobbers reg byte a +Statement [403] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:191 [ keyboard_event_scan::row_scan#0 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:84 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:85 [ 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 [406] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ) always clobbers reg byte a -Statement [409] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a -Statement [411] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a -Statement [417] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a -Statement [418] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a -Statement [421] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:12::keyboard_event_scan:39::keyboard_matrix_read:371 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a -Statement [422] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:12::keyboard_event_scan:39::keyboard_matrix_read:371 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 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 [433] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ) always clobbers reg byte a +Statement [404] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ) always clobbers reg byte a +Statement [407] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a +Statement [409] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a +Statement [415] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a +Statement [416] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a +Statement [419] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:12::keyboard_event_scan:39::keyboard_matrix_read:369 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a +Statement [420] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:12::keyboard_event_scan:39::keyboard_matrix_read:369 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 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 [431] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:88 [ play_init::j#2 play_init::j#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:91 [ play_init::idx#2 play_init::idx#1 ] -Statement [434] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [435] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [436] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ( main:12::play_init:23 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ) always clobbers reg byte a -Statement [437] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ) always clobbers reg byte a -Statement [440] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 [ ] ( main:12::play_init:23 [ ] ) always clobbers reg byte a -Statement [443] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ current_movedown_slow#1 play_init::b#2 play_init::b4#0 ] ( main:12::play_init:23 [ current_movedown_slow#1 play_init::b#2 play_init::b4#0 ] ) always clobbers reg byte a +Statement [432] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a +Statement [433] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a +Statement [434] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ( main:12::play_init:23 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ) always clobbers reg byte a +Statement [435] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ) always clobbers reg byte a +Statement [438] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 [ ] ( main:12::play_init:23 [ ] ) always clobbers reg byte a +Statement [441] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ current_movedown_slow#1 play_init::b#2 play_init::b4#0 ] ( main:12::play_init:23 [ current_movedown_slow#1 play_init::b#2 play_init::b4#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:92 [ play_init::b#2 play_init::b#1 ] -Statement [444] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) [ current_movedown_slow#1 play_init::b#2 ] ( main:12::play_init:23 [ current_movedown_slow#1 play_init::b#2 ] ) always clobbers reg byte a -Statement [449] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [442] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) [ current_movedown_slow#1 play_init::b#2 ] ( main:12::play_init:23 [ current_movedown_slow#1 play_init::b#2 ] ) always clobbers reg byte a +Statement [447] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a Statement asm { ldaCIA1_INTERRUPT } always clobbers reg byte a -Statement [451] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [452] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [453] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [454] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [455] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [456] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [457] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [460] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a -Statement [461] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a -Statement [462] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a -Statement [463] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a -Statement [465] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ) always clobbers reg byte a +Statement [449] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [450] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [451] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [452] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [453] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [454] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [455] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [458] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [459] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [460] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [461] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [463] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:93 [ sprites_init::s#2 sprites_init::s#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:94 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Statement [466] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [467] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [468] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a -Statement [473] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [475] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [476] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [477] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [478] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [479] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [480] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [481] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [486] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$13 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$13 ] ) always clobbers reg byte a +Statement [464] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a +Statement [465] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a +Statement [466] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a +Statement [471] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [473] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [474] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [475] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [476] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [477] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [478] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [479] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [484] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$13 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$13 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:95 [ render_init::i#2 render_init::i#1 ] -Statement [487] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a -Statement [488] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ) always clobbers reg byte a -Statement [489] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a -Statement [490] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ) always clobbers reg byte a -Statement [491] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ) always clobbers reg byte a -Statement [498] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ( main:12::render_init:17::render_screen_original:482 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] main:12::render_init:17::render_screen_original:484 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ) always clobbers reg byte a reg byte y +Statement [485] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a +Statement [486] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ) always clobbers reg byte a +Statement [487] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a +Statement [488] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ) always clobbers reg byte a +Statement [489] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ) always clobbers reg byte a +Statement [496] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ( main:12::render_init:17::render_screen_original:480 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] main:12::render_init:17::render_screen_original:482 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp ZP_BYTE:100 [ render_screen_original::y#6 render_screen_original::y#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:100 [ render_screen_original::y#6 render_screen_original::y#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:109 [ 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:109 [ 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 [500] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ( main:12::render_init:17::render_screen_original:482 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] main:12::render_init:17::render_screen_original:484 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ) always clobbers reg byte a reg byte y -Statement [505] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ( main:12::render_init:17::render_screen_original:482 [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] main:12::render_init:17::render_screen_original:484 [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ) always clobbers reg byte a reg byte y -Statement [508] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ( main:12::render_init:17::render_screen_original:482 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] main:12::render_init:17::render_screen_original:484 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ) always clobbers reg byte a reg byte y -Statement [514] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:12::render_init:17::render_screen_original:482 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] main:12::render_init:17::render_screen_original:484 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y -Statement [516] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:12::render_init:17::render_screen_original:482 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] main:12::render_init:17::render_screen_original:484 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y -Statement [523] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a -Statement [524] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a -Statement [534] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ( [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ) always clobbers reg byte a -Statement [536] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ) always clobbers reg byte a +Statement [498] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ( main:12::render_init:17::render_screen_original:480 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] main:12::render_init:17::render_screen_original:482 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ) always clobbers reg byte a reg byte y +Statement [503] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ( main:12::render_init:17::render_screen_original:480 [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] main:12::render_init:17::render_screen_original:482 [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ) always clobbers reg byte a reg byte y +Statement [506] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ( main:12::render_init:17::render_screen_original:480 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] main:12::render_init:17::render_screen_original:482 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ) always clobbers reg byte a reg byte y +Statement [512] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:12::render_init:17::render_screen_original:480 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] main:12::render_init:17::render_screen_original:482 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y +Statement [514] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:12::render_init:17::render_screen_original:480 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] main:12::render_init:17::render_screen_original:482 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y +Statement [521] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a +Statement [522] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a +Statement [532] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ( [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ) always clobbers reg byte a +Statement [534] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:215 [ sprites_irq::ptr#0 ] -Statement [543] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte y -Statement [544] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte a -Statement [545] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a -Statement [546] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a -Statement [547] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a -Statement [548] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#3 ] ( [ irq_raster_next#3 ] ) always clobbers reg byte a -Statement [550] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 [ ] ( [ ] ) always clobbers reg byte a -Statement [551] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a -Statement [552] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y -Statement [553] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a -Statement [554] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a -Statement [555] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a -Statement [556] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#2 ] ( [ irq_raster_next#2 ] ) always clobbers reg byte a -Statement [557] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a -Statement [558] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a -Statement [560] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [541] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte y +Statement [542] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte a +Statement [543] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a +Statement [544] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a +Statement [545] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a +Statement [546] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#3 ] ( [ irq_raster_next#3 ] ) always clobbers reg byte a +Statement [548] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 [ ] ( [ ] ) always clobbers reg byte a +Statement [549] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a +Statement [550] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y +Statement [551] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a +Statement [552] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a +Statement [553] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a +Statement [554] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#2 ] ( [ irq_raster_next#2 ] ) always clobbers reg byte a +Statement [555] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [556] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [558] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a Statement [1] (byte) render_screen_showing#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a Statement [6] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( ) always clobbers reg byte a Statement [7] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 [ ] ( ) always clobbers reg byte a Statement [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0+(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( ) always clobbers reg byte a Statement [10] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a -Statement [30] (byte*~) current_piece_gfx#116 ← (byte*) current_piece_gfx#21 [ current_ypos#100 current_ypos#22 current_xpos#126 current_xpos#28 current_piece_gfx#116 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 ] ( main:12 [ current_ypos#100 current_ypos#22 current_xpos#126 current_xpos#28 current_piece_gfx#116 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 ] ) always clobbers reg byte a +Statement [30] (byte*~) current_piece_gfx#114 ← (byte*) current_piece_gfx#21 [ current_ypos#100 current_ypos#22 current_xpos#124 current_xpos#28 current_piece_gfx#114 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 ] ( main:12 [ current_ypos#100 current_ypos#22 current_xpos#124 current_xpos#28 current_piece_gfx#114 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 ] ) always clobbers reg byte a Statement [33] (byte*~) current_piece#88 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 current_piece#88 current_movedown_slow#1 game_over#15 ] ( main:12 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 current_piece#88 current_movedown_slow#1 game_over#15 ] ) always clobbers reg byte a -Statement [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ) always clobbers reg byte a -Statement [56] (byte*~) current_piece_gfx#117 ← (byte*) current_piece_gfx#16 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 current_ypos#101 render_screen_render#66 current_xpos#127 current_piece_gfx#117 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 current_ypos#101 render_screen_render#66 current_xpos#127 current_piece_gfx#117 ] ) always clobbers reg byte a +Statement [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ) always clobbers reg byte a +Statement [56] (byte*~) current_piece_gfx#115 ← (byte*) current_piece_gfx#16 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 current_ypos#101 render_screen_render#64 current_xpos#125 current_piece_gfx#115 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 current_ypos#101 render_screen_render#64 current_xpos#125 current_piece_gfx#115 ] ) always clobbers reg byte a Statement [63] (byte) render_screen_render#11 ← (byte) render_screen_render#17 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 [ render_screen_show#16 render_screen_render#11 ] ( main:12::render_screen_swap:62 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_show#16 render_screen_render#11 ] ) always clobbers reg byte a Statement [64] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 [ render_screen_show#13 render_screen_render#11 ] ( main:12::render_screen_swap:62 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a Statement [69] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#0 ] ( main:12::render_score:60 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#0 ] ) always clobbers reg byte a @@ -15998,144 +15912,144 @@ Statement [96] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signe Statement [97] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 [ render_bcd::screen_pos#3 render_bcd::$6 ] ( main:12::render_score:60::render_bcd:71 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:60::render_bcd:74 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:60::render_bcd:77 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:60::render_bcd:80 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:60::render_bcd:83 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:60::render_bcd:86 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$6 ] ) always clobbers reg byte a Statement [98] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 [ render_bcd::screen_pos#3 ] ( main:12::render_score:60::render_bcd:71 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:60::render_bcd:74 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:60::render_bcd:77 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:60::render_bcd:80 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:60::render_bcd:83 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:60::render_bcd:86 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 ] ) always clobbers reg byte y Statement [99] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 [ ] ( main:12::render_score:60::render_bcd:71 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:60::render_bcd:74 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:60::render_bcd:77 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:60::render_bcd:80 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:60::render_bcd:83 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:60::render_bcd:86 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 ] ) always clobbers reg byte a -Statement [102] (byte) render_moving::ypos2#0 ← (byte) current_ypos#11 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#0 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#0 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#0 ] ) always clobbers reg byte a -Statement [104] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@13 [ render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 ] ) always clobbers reg byte a -Statement [105] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] ) always clobbers reg byte a -Statement [112] (byte~) render_moving::$5 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 [ render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$5 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$5 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$5 ] ) always clobbers reg byte a -Statement [113] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$5) [ render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ) always clobbers reg byte a -Statement [116] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_moving::i#4) [ render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ) always clobbers reg byte a -Statement [120] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#76 [ render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::l#4 render_moving::i#10 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::l#4 render_moving::i#10 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#63 current_piece_char#76 render_moving::ypos2#2 render_moving::l#4 render_moving::i#10 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ) always clobbers reg byte a -Statement [126] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ( main:12::render_playfield:27 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] main:12::render_playfield:52 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ) always clobbers reg byte a -Statement [127] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 [ render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ( main:12::render_playfield:27 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] main:12::render_playfield:52 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ) always clobbers reg byte a -Statement [128] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) [ render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:12::render_playfield:27 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:12::render_playfield:52 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a -Statement [130] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_screen_render#21 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ( main:12::render_playfield:27 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#21 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:12::render_playfield:52 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#21 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y -Statement [142] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#19 current_piece_gfx#18 current_xpos#20 ] ( main:12::play_movement:47 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#19 current_piece_gfx#18 current_xpos#20 ] ) always clobbers reg byte a -Statement [150] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_movement::render#2 ] ( main:12::play_movement:47 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_movement::render#2 ] ) always clobbers reg byte a -Statement [155] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::return#0 current_orientation#24 current_piece_gfx#19 current_xpos#24 ] ( main:12::play_movement:47 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::return#0 current_orientation#24 current_piece_gfx#19 current_xpos#24 ] ) always clobbers reg byte a -Statement [160] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#19 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::$2 ] ( main:12::play_movement:47::play_move_rotate:152 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::$2 ] ) always clobbers reg byte a -Statement [161] (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#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#2 ] ( main:12::play_movement:47::play_move_rotate:152 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#2 ] ) always clobbers reg byte a -Statement [166] (byte*~) current_piece#93 ← (byte*) current_piece#14 [ current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#93 ] ( main:12::play_movement:47::play_move_rotate:152 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#93 ] ) always clobbers reg byte a -Statement [172] (byte*) current_piece_gfx#6 ← (byte*) current_piece#14 + (byte) current_orientation#7 [ current_piece#14 current_ypos#17 current_xpos#24 current_orientation#7 current_piece_gfx#6 ] ( main:12::play_movement:47::play_move_rotate:152 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_xpos#24 current_orientation#7 current_piece_gfx#6 ] ) always clobbers reg byte a -Statement [173] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#19 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::$4 ] ( main:12::play_movement:47::play_move_rotate:152 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::$4 ] ) always clobbers reg byte a -Statement [174] (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#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#1 ] ( main:12::play_movement:47::play_move_rotate:152 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#1 ] ) always clobbers reg byte a -Statement [176] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#16 + (byte) play_collision::orientation#5 [ play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] ( main:12::play_movement:47::play_move_rotate:152::play_collision:167 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:47::play_move_leftright:147::play_collision:205 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:47::play_move_leftright:147::play_collision:216 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:47::play_move_down:139::play_collision:240 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_spawn_current:25::play_collision:270 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253::play_collision:270 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] ) always clobbers reg byte a -Statement [177] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:12::play_movement:47::play_move_rotate:152::play_collision:167 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:47::play_move_leftright:147::play_collision:205 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:47::play_move_leftright:147::play_collision:216 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:47::play_move_down:139::play_collision:240 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_spawn_current:25::play_collision:270 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253::play_collision:270 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a -Statement [179] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:12::play_movement:47::play_move_rotate:152::play_collision:167 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:47::play_move_leftright:147::play_collision:205 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:47::play_move_leftright:147::play_collision:216 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:47::play_move_down:139::play_collision:240 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_spawn_current:25::play_collision:270 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253::play_collision:270 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 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 [183] 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#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_movement:47::play_move_rotate:152::play_collision:167 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_leftright:147::play_collision:205 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_leftright:147::play_collision:216 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_down:139::play_collision:240 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:25::play_collision:270 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253::play_collision:270 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 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 [187] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:12::play_movement:47::play_move_rotate:152::play_collision:167 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:47::play_move_leftright:147::play_collision:205 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:47::play_move_leftright:147::play_collision:216 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:47::play_move_down:139::play_collision:240 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_spawn_current:25::play_collision:270 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253::play_collision:270 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 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 [190] 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#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_movement:47::play_move_rotate:152::play_collision:167 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_leftright:147::play_collision:205 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_leftright:147::play_collision:216 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_down:139::play_collision:240 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:25::play_collision:270 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253::play_collision:270 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 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 [204] (byte*~) current_piece#92 ← (byte*) current_piece#14 [ current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 current_piece#92 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ( main:12::play_movement:47::play_move_leftright:147 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 current_piece#92 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ) always clobbers reg byte a -Statement [215] (byte*~) current_piece#91 ← (byte*) current_piece#14 [ current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 current_piece#91 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ( main:12::play_movement:47::play_move_leftright:147 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 current_piece#91 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ) always clobbers reg byte a -Statement [239] (byte*~) current_piece#90 ← (byte*) current_piece#20 [ current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece#90 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:12::play_movement:47::play_move_down:139 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece#90 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a -Statement [254] (byte*~) current_piece#95 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 game_over#15 current_piece#95 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 ] ( main:12::play_movement:47::play_move_down:139 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 game_over#15 current_piece#95 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 ] ) always clobbers reg byte a -Statement [262] (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 game_over#70 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [263] (byte) current_piece_char#16 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) [ current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [264] (byte*) current_piece_gfx#21 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [265] (byte) current_xpos#28 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) [ current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [266] (byte) current_ypos#22 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 ] ) always clobbers reg byte a -Statement [269] (byte*~) current_piece#94 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_piece#94 play_collision::ypos#4 play_collision::xpos#4 game_over#70 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_piece#94 play_collision::ypos#4 play_collision::xpos#4 game_over#70 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_piece#94 play_collision::ypos#4 play_collision::xpos#4 game_over#70 ] ) always clobbers reg byte a -Statement [281] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ game_over#70 play_spawn_current::piece_idx#1 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 game_over#70 play_spawn_current::piece_idx#1 ] main:12::play_movement:47::play_move_down:139::play_spawn_current:253 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 game_over#70 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a -Statement [285] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ) always clobbers reg byte a -Statement [286] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ) always clobbers reg byte a -Statement [287] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ) always clobbers reg byte a -Statement [288] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ) always clobbers reg byte a -Statement [290] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 [ current_movedown_slow#14 score_bcd#18 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#30 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 score_bcd#18 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#30 ] ) always clobbers reg byte a -Statement [291] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 ] ) always clobbers reg byte a -Statement [293] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::$5 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::$5 ] ) always clobbers reg byte a -Statement [294] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ) always clobbers reg byte a -Statement [301] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 [ level_bcd#11 level#20 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251::play_increase_level:297 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level_bcd#11 level#20 ] ) always clobbers reg byte a -Statement [302] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) [ level_bcd#11 level#20 current_movedown_slow#10 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251::play_increase_level:297 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level_bcd#11 level#20 current_movedown_slow#10 ] ) always clobbers reg byte a -Statement [305] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ level#20 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251::play_increase_level:297 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ) always clobbers reg byte a -Statement [307] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 [ level#20 current_movedown_slow#69 level_bcd#8 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251::play_increase_level:297 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#8 ] ) always clobbers reg byte a -Statement [311] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 play_increase_level::b4#0 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251::play_increase_level:297 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 play_increase_level::b4#0 ] ) always clobbers reg byte a -Statement [312] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) [ level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 ] ( main:12::play_movement:47::play_move_down:139::play_update_score:251::play_increase_level:297 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 ] ) always clobbers reg byte a -Statement [329] (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::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ( main:12::play_movement:47::play_move_down:139::play_remove_lines:247 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ) always clobbers reg byte a -Statement [337] *((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::removed#7 play_remove_lines::w#6 ] ( main:12::play_movement:47::play_move_down:139::play_remove_lines:247 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_remove_lines::removed#7 play_remove_lines::w#6 ] ) always clobbers reg byte a -Statement [340] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#25 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_char#19 current_piece_gfx#105 current_xpos#115 play_lock_current::ypos2#0 ] ( main:12::play_movement:47::play_move_down:139::play_lock_current:245 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#19 current_piece_gfx#105 current_xpos#115 play_lock_current::ypos2#0 ] ) always clobbers reg byte a -Statement [342] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) [ current_piece_char#19 current_piece_gfx#105 current_xpos#115 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:12::play_movement:47::play_move_down:139::play_lock_current:245 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#19 current_piece_gfx#105 current_xpos#115 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 [346] if(*((byte*) current_piece_gfx#105 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 [ current_piece_char#19 current_piece_gfx#105 current_xpos#115 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_movement:47::play_move_down:139::play_lock_current:245 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#19 current_piece_gfx#105 current_xpos#115 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 [347] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#19 [ current_piece_char#19 current_piece_gfx#105 current_xpos#115 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_movement:47::play_move_down:139::play_lock_current:245 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#19 current_piece_gfx#105 current_xpos#115 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 [358] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:12::play_movement:47::play_move_down:139::keyboard_event_pressed:225 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:380 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:386 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:392 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:398 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a -Statement [360] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:12::play_movement:47::play_move_down:139::keyboard_event_pressed:225 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:380 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:386 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:392 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:398 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a -Statement [361] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:12::play_movement:47::play_move_down:139::keyboard_event_pressed:225 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:380 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:386 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:392 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:398 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a -Statement [374] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_event_scan::row_scan#0 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 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 [375] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a -Statement [390] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#13 keyboard_modifiers#3 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a -Statement [396] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#13 keyboard_modifiers#4 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a -Statement [402] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#13 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 ] ) always clobbers reg byte a -Statement [405] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ) always clobbers reg byte a -Statement [406] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ) always clobbers reg byte a -Statement [409] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a -Statement [411] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a -Statement [417] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a -Statement [418] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a -Statement [421] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:12::keyboard_event_scan:39::keyboard_matrix_read:371 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a -Statement [422] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:12::keyboard_event_scan:39::keyboard_matrix_read:371 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#105 current_xpos#115 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 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 [433] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ) always clobbers reg byte a -Statement [434] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [435] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [436] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ( main:12::play_init:23 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ) always clobbers reg byte a -Statement [437] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ) always clobbers reg byte a -Statement [440] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 [ ] ( main:12::play_init:23 [ ] ) always clobbers reg byte a -Statement [443] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ current_movedown_slow#1 play_init::b#2 play_init::b4#0 ] ( main:12::play_init:23 [ current_movedown_slow#1 play_init::b#2 play_init::b4#0 ] ) always clobbers reg byte a -Statement [444] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) [ current_movedown_slow#1 play_init::b#2 ] ( main:12::play_init:23 [ current_movedown_slow#1 play_init::b#2 ] ) always clobbers reg byte a -Statement [449] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [102] (byte) render_moving::ypos2#0 ← (byte) current_ypos#11 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#0 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#0 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#0 ] ) always clobbers reg byte a +Statement [104] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@2 [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 ] ) always clobbers reg byte a +Statement [105] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] ) always clobbers reg byte a +Statement [111] (byte~) render_moving::$2 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$2 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$2 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$2 ] ) always clobbers reg byte a +Statement [112] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$2) [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ) always clobbers reg byte a +Statement [115] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#62 + (byte) render_moving::i#4) [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ) always clobbers reg byte a +Statement [118] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#64 [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ) always clobbers reg byte a +Statement [124] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ( main:12::render_playfield:27 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] main:12::render_playfield:52 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ) always clobbers reg byte a +Statement [125] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 [ render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ( main:12::render_playfield:27 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] main:12::render_playfield:52 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ) always clobbers reg byte a +Statement [126] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) [ render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:12::render_playfield:27 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:12::render_playfield:52 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a +Statement [128] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_screen_render#21 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ( main:12::render_playfield:27 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#21 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:12::render_playfield:52 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#21 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y +Statement [140] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#19 current_piece_gfx#18 current_xpos#20 ] ( main:12::play_movement:47 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#19 current_piece_gfx#18 current_xpos#20 ] ) always clobbers reg byte a +Statement [148] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_movement::render#2 ] ( main:12::play_movement:47 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_movement::render#2 ] ) always clobbers reg byte a +Statement [153] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::return#0 current_orientation#24 current_piece_gfx#19 current_xpos#24 ] ( main:12::play_movement:47 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::return#0 current_orientation#24 current_piece_gfx#19 current_xpos#24 ] ) always clobbers reg byte a +Statement [158] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#19 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::$2 ] ( main:12::play_movement:47::play_move_rotate:150 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::$2 ] ) always clobbers reg byte a +Statement [159] (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#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#2 ] ( main:12::play_movement:47::play_move_rotate:150 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#2 ] ) always clobbers reg byte a +Statement [164] (byte*~) current_piece#93 ← (byte*) current_piece#14 [ current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#93 ] ( main:12::play_movement:47::play_move_rotate:150 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#93 ] ) always clobbers reg byte a +Statement [170] (byte*) current_piece_gfx#6 ← (byte*) current_piece#14 + (byte) current_orientation#7 [ current_piece#14 current_ypos#17 current_xpos#24 current_orientation#7 current_piece_gfx#6 ] ( main:12::play_movement:47::play_move_rotate:150 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_xpos#24 current_orientation#7 current_piece_gfx#6 ] ) always clobbers reg byte a +Statement [171] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#19 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::$4 ] ( main:12::play_movement:47::play_move_rotate:150 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::$4 ] ) always clobbers reg byte a +Statement [172] (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#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#1 ] ( main:12::play_movement:47::play_move_rotate:150 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#1 ] ) always clobbers reg byte a +Statement [174] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#16 + (byte) play_collision::orientation#5 [ play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] ( main:12::play_movement:47::play_move_rotate:150::play_collision:165 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:47::play_move_leftright:145::play_collision:203 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:47::play_move_leftright:145::play_collision:214 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:47::play_move_down:137::play_collision:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_spawn_current:25::play_collision:268 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251::play_collision:268 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] ) always clobbers reg byte a +Statement [175] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:12::play_movement:47::play_move_rotate:150::play_collision:165 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:47::play_move_leftright:145::play_collision:203 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:47::play_move_leftright:145::play_collision:214 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:47::play_move_down:137::play_collision:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_spawn_current:25::play_collision:268 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251::play_collision:268 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a +Statement [177] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:12::play_movement:47::play_move_rotate:150::play_collision:165 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:47::play_move_leftright:145::play_collision:203 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:47::play_move_leftright:145::play_collision:214 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:47::play_move_down:137::play_collision:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_spawn_current:25::play_collision:268 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251::play_collision:268 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 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 [181] 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#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_movement:47::play_move_rotate:150::play_collision:165 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_leftright:145::play_collision:203 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_leftright:145::play_collision:214 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_down:137::play_collision:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:25::play_collision:268 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251::play_collision:268 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 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 [185] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:12::play_movement:47::play_move_rotate:150::play_collision:165 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:47::play_move_leftright:145::play_collision:203 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:47::play_move_leftright:145::play_collision:214 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:47::play_move_down:137::play_collision:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_spawn_current:25::play_collision:268 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251::play_collision:268 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 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 [188] 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#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_movement:47::play_move_rotate:150::play_collision:165 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_leftright:145::play_collision:203 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_leftright:145::play_collision:214 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_down:137::play_collision:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:25::play_collision:268 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251::play_collision:268 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 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 [202] (byte*~) current_piece#92 ← (byte*) current_piece#14 [ current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 current_piece#92 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ( main:12::play_movement:47::play_move_leftright:145 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 current_piece#92 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ) always clobbers reg byte a +Statement [213] (byte*~) current_piece#91 ← (byte*) current_piece#14 [ current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 current_piece#91 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ( main:12::play_movement:47::play_move_leftright:145 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 current_piece#91 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ) always clobbers reg byte a +Statement [237] (byte*~) current_piece#90 ← (byte*) current_piece#20 [ current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece#90 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:12::play_movement:47::play_move_down:137 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece#90 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a +Statement [252] (byte*~) current_piece#95 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 game_over#15 current_piece#95 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 ] ( main:12::play_movement:47::play_move_down:137 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 game_over#15 current_piece#95 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 ] ) always clobbers reg byte a +Statement [260] (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 game_over#70 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [261] (byte) current_piece_char#16 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) [ current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [262] (byte*) current_piece_gfx#21 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [263] (byte) current_xpos#28 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) [ current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [264] (byte) current_ypos#22 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 ] ) always clobbers reg byte a +Statement [267] (byte*~) current_piece#94 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_piece#94 play_collision::ypos#4 play_collision::xpos#4 game_over#70 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_piece#94 play_collision::ypos#4 play_collision::xpos#4 game_over#70 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_piece#94 play_collision::ypos#4 play_collision::xpos#4 game_over#70 ] ) always clobbers reg byte a +Statement [279] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ game_over#70 play_spawn_current::piece_idx#1 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 game_over#70 play_spawn_current::piece_idx#1 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 game_over#70 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a +Statement [283] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ) always clobbers reg byte a +Statement [284] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ) always clobbers reg byte a +Statement [285] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ) always clobbers reg byte a +Statement [286] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ) always clobbers reg byte a +Statement [288] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 [ current_movedown_slow#14 score_bcd#18 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#30 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 score_bcd#18 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#30 ] ) always clobbers reg byte a +Statement [289] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 ] ) always clobbers reg byte a +Statement [291] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::$5 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::$5 ] ) always clobbers reg byte a +Statement [292] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ) always clobbers reg byte a +Statement [299] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 [ level_bcd#11 level#20 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249::play_increase_level:295 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level_bcd#11 level#20 ] ) always clobbers reg byte a +Statement [300] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) [ level_bcd#11 level#20 current_movedown_slow#10 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249::play_increase_level:295 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level_bcd#11 level#20 current_movedown_slow#10 ] ) always clobbers reg byte a +Statement [303] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ level#20 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249::play_increase_level:295 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ) always clobbers reg byte a +Statement [305] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 [ level#20 current_movedown_slow#69 level_bcd#8 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249::play_increase_level:295 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#8 ] ) always clobbers reg byte a +Statement [309] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 play_increase_level::b4#0 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249::play_increase_level:295 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 play_increase_level::b4#0 ] ) always clobbers reg byte a +Statement [310] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) [ level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249::play_increase_level:295 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 ] ) always clobbers reg byte a +Statement [327] (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::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ( main:12::play_movement:47::play_move_down:137::play_remove_lines:245 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ) always clobbers reg byte a +Statement [335] *((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::removed#7 play_remove_lines::w#6 ] ( main:12::play_movement:47::play_move_down:137::play_remove_lines:245 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_remove_lines::removed#7 play_remove_lines::w#6 ] ) always clobbers reg byte a +Statement [338] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#25 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#0 ] ( main:12::play_movement:47::play_move_down:137::play_lock_current:243 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#0 ] ) always clobbers reg byte a +Statement [340] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) [ current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:12::play_movement:47::play_move_down:137::play_lock_current:243 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#19 current_piece_gfx#103 current_xpos#113 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 [344] if(*((byte*) current_piece_gfx#103 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 [ current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_movement:47::play_move_down:137::play_lock_current:243 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#19 current_piece_gfx#103 current_xpos#113 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 [345] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#19 [ current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_movement:47::play_move_down:137::play_lock_current:243 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#19 current_piece_gfx#103 current_xpos#113 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 [356] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:12::play_movement:47::play_move_down:137::keyboard_event_pressed:223 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:378 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:384 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:390 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:396 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a +Statement [358] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:12::play_movement:47::play_move_down:137::keyboard_event_pressed:223 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:378 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:384 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:390 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:396 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a +Statement [359] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:12::play_movement:47::play_move_down:137::keyboard_event_pressed:223 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:378 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:384 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:390 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:396 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a +Statement [372] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_event_scan::row_scan#0 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 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 [373] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a +Statement [388] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#13 keyboard_modifiers#3 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a +Statement [394] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#13 keyboard_modifiers#4 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a +Statement [400] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#13 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 ] ) always clobbers reg byte a +Statement [403] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ) always clobbers reg byte a +Statement [404] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ) always clobbers reg byte a +Statement [407] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a +Statement [409] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a +Statement [415] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a +Statement [416] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a +Statement [419] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:12::keyboard_event_scan:39::keyboard_matrix_read:369 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a +Statement [420] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:12::keyboard_event_scan:39::keyboard_matrix_read:369 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 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 [431] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ) always clobbers reg byte a +Statement [432] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a +Statement [433] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a +Statement [434] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ( main:12::play_init:23 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ) always clobbers reg byte a +Statement [435] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ) always clobbers reg byte a +Statement [438] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 [ ] ( main:12::play_init:23 [ ] ) always clobbers reg byte a +Statement [441] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ current_movedown_slow#1 play_init::b#2 play_init::b4#0 ] ( main:12::play_init:23 [ current_movedown_slow#1 play_init::b#2 play_init::b4#0 ] ) always clobbers reg byte a +Statement [442] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) [ current_movedown_slow#1 play_init::b#2 ] ( main:12::play_init:23 [ current_movedown_slow#1 play_init::b#2 ] ) always clobbers reg byte a +Statement [447] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a Statement asm { ldaCIA1_INTERRUPT } always clobbers reg byte a -Statement [451] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [452] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [453] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [454] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [455] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [456] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [457] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [460] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a -Statement [461] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a -Statement [462] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a -Statement [463] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a -Statement [465] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ) always clobbers reg byte a -Statement [466] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [467] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [468] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a -Statement [473] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [475] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [476] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [477] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [478] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [479] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [480] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [481] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [486] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$13 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$13 ] ) always clobbers reg byte a -Statement [487] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a -Statement [488] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ) always clobbers reg byte a -Statement [489] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a -Statement [490] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ) always clobbers reg byte a -Statement [491] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ) always clobbers reg byte a -Statement [498] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ( main:12::render_init:17::render_screen_original:482 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] main:12::render_init:17::render_screen_original:484 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ) always clobbers reg byte a reg byte y -Statement [500] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ( main:12::render_init:17::render_screen_original:482 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] main:12::render_init:17::render_screen_original:484 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ) always clobbers reg byte a reg byte y -Statement [505] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ( main:12::render_init:17::render_screen_original:482 [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] main:12::render_init:17::render_screen_original:484 [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ) always clobbers reg byte a reg byte y -Statement [508] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ( main:12::render_init:17::render_screen_original:482 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] main:12::render_init:17::render_screen_original:484 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ) always clobbers reg byte a reg byte y -Statement [514] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:12::render_init:17::render_screen_original:482 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] main:12::render_init:17::render_screen_original:484 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y -Statement [516] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:12::render_init:17::render_screen_original:482 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] main:12::render_init:17::render_screen_original:484 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y -Statement [523] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a -Statement [524] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a -Statement [534] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ( [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ) always clobbers reg byte a -Statement [536] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ) always clobbers reg byte a -Statement [543] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte y -Statement [544] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte a -Statement [545] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a -Statement [546] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a -Statement [547] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a -Statement [548] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#3 ] ( [ irq_raster_next#3 ] ) always clobbers reg byte a -Statement [550] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 [ ] ( [ ] ) always clobbers reg byte a -Statement [551] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a -Statement [552] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y -Statement [553] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a -Statement [554] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a -Statement [555] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a -Statement [556] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#2 ] ( [ irq_raster_next#2 ] ) always clobbers reg byte a -Statement [557] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a -Statement [558] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a -Statement [560] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [449] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [450] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [451] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [452] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [453] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [454] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [455] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [458] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [459] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [460] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [461] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [463] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ) always clobbers reg byte a +Statement [464] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a +Statement [465] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a +Statement [466] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a +Statement [471] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [473] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [474] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [475] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [476] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [477] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [478] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [479] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [484] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$13 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$13 ] ) always clobbers reg byte a +Statement [485] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a +Statement [486] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ) always clobbers reg byte a +Statement [487] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a +Statement [488] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ) always clobbers reg byte a +Statement [489] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ) always clobbers reg byte a +Statement [496] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ( main:12::render_init:17::render_screen_original:480 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] main:12::render_init:17::render_screen_original:482 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ) always clobbers reg byte a reg byte y +Statement [498] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ( main:12::render_init:17::render_screen_original:480 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] main:12::render_init:17::render_screen_original:482 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ) always clobbers reg byte a reg byte y +Statement [503] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ( main:12::render_init:17::render_screen_original:480 [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] main:12::render_init:17::render_screen_original:482 [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ) always clobbers reg byte a reg byte y +Statement [506] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ( main:12::render_init:17::render_screen_original:480 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] main:12::render_init:17::render_screen_original:482 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ) always clobbers reg byte a reg byte y +Statement [512] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:12::render_init:17::render_screen_original:480 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] main:12::render_init:17::render_screen_original:482 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y +Statement [514] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:12::render_init:17::render_screen_original:480 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] main:12::render_init:17::render_screen_original:482 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y +Statement [521] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a +Statement [522] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a +Statement [532] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ( [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ) always clobbers reg byte a +Statement [534] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ) always clobbers reg byte a +Statement [541] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte y +Statement [542] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte a +Statement [543] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a +Statement [544] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a +Statement [545] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a +Statement [546] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#3 ] ( [ irq_raster_next#3 ] ) always clobbers reg byte a +Statement [548] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 [ ] ( [ ] ) always clobbers reg byte a +Statement [549] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a +Statement [550] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y +Statement [551] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a +Statement [552] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a +Statement [553] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a +Statement [554] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#2 ] ( [ irq_raster_next#2 ] ) always clobbers reg byte a +Statement [555] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [556] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [558] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a Potential registers zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] : zp ZP_BYTE:2 , reg byte x , Potential registers zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] : zp ZP_BYTE:3 , reg byte x , Potential registers zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] : zp ZP_BYTE:4 , reg byte x , @@ -16146,16 +16060,16 @@ Potential registers zp ZP_BYTE:11 [ render_bcd::only_low#6 ] : zp ZP_BYTE:11 , r Potential registers zp ZP_BYTE:12 [ render_bcd::bcd#6 render_bcd::bcd#0 render_bcd::bcd#1 render_bcd::bcd#2 render_bcd::bcd#3 render_bcd::bcd#4 render_bcd::bcd#5 ] : zp ZP_BYTE:12 , reg byte x , Potential registers zp ZP_WORD:13 [ render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 ] : zp ZP_WORD:13 , Potential registers zp ZP_BYTE:15 [ current_ypos#11 current_ypos#100 current_ypos#101 ] : zp ZP_BYTE:15 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#66 ] : zp ZP_BYTE:16 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:17 [ current_xpos#57 current_xpos#126 current_xpos#127 ] : zp ZP_BYTE:17 , reg byte x , reg byte y , -Potential registers zp ZP_WORD:18 [ current_piece_gfx#63 current_piece_gfx#116 current_piece_gfx#117 ] : zp ZP_WORD:18 , -Potential registers zp ZP_BYTE:20 [ current_piece_char#76 current_piece_char#104 current_piece_char#105 ] : zp ZP_BYTE:20 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 ] : zp ZP_BYTE:16 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:17 [ current_xpos#57 current_xpos#124 current_xpos#125 ] : zp ZP_BYTE:17 , reg byte x , reg byte y , +Potential registers zp ZP_WORD:18 [ current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 ] : zp ZP_WORD:18 , +Potential registers zp ZP_BYTE:20 [ current_piece_char#64 current_piece_char#102 current_piece_char#103 ] : zp ZP_BYTE:20 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] : zp ZP_BYTE:21 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:22 [ render_moving::l#4 render_moving::l#1 ] : zp ZP_BYTE:22 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:23 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#10 render_moving::i#1 ] : zp ZP_BYTE:23 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:23 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] : zp ZP_BYTE:23 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:24 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] : zp ZP_BYTE:24 , reg byte x , reg byte y , Potential registers zp ZP_BYTE:25 [ render_moving::c#2 render_moving::c#1 ] : zp ZP_BYTE:25 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:26 [ render_screen_render#21 render_screen_render#67 ] : zp ZP_BYTE:26 , reg byte x , +Potential registers zp ZP_BYTE:26 [ render_screen_render#21 render_screen_render#65 ] : zp ZP_BYTE:26 , reg byte x , Potential registers zp ZP_BYTE:27 [ render_playfield::l#2 render_playfield::l#1 ] : zp ZP_BYTE:27 , reg byte x , Potential registers zp ZP_BYTE:28 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] : zp ZP_BYTE:28 , reg byte x , Potential registers zp ZP_WORD:29 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] : zp ZP_WORD:29 , @@ -16184,8 +16098,8 @@ Potential registers zp ZP_BYTE:57 [ level_bcd#32 level_bcd#19 level_bcd#11 level Potential registers zp ZP_WORD:58 [ current_piece#27 current_piece#95 current_piece#20 current_piece#14 current_piece#88 ] : zp ZP_WORD:58 , Potential registers zp ZP_BYTE:60 [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] : zp ZP_BYTE:60 , reg byte x , Potential registers zp ZP_BYTE:61 [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] : zp ZP_BYTE:61 , reg byte x , -Potential registers zp ZP_WORD:62 [ current_piece_gfx#33 current_piece_gfx#105 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] : zp ZP_WORD:62 , -Potential registers zp ZP_BYTE:64 [ current_xpos#41 current_xpos#115 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] : zp ZP_BYTE:64 , reg byte x , +Potential registers zp ZP_WORD:62 [ current_piece_gfx#33 current_piece_gfx#103 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] : zp ZP_WORD:62 , +Potential registers zp ZP_BYTE:64 [ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] : zp ZP_BYTE:64 , reg byte x , Potential registers zp ZP_BYTE:65 [ play_move_down::return#3 ] : zp ZP_BYTE:65 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:66 [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] : zp ZP_BYTE:66 , reg byte x , Potential registers zp ZP_BYTE:67 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] : zp ZP_BYTE:67 , reg byte x , reg byte y , @@ -16240,7 +16154,7 @@ Potential registers zp ZP_BYTE:122 [ render_bcd::$4 ] : zp ZP_BYTE:122 , reg byt Potential registers zp ZP_BYTE:123 [ render_bcd::$5 ] : zp ZP_BYTE:123 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:124 [ render_bcd::$6 ] : zp ZP_BYTE:124 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_WORD:125 [ render_bcd::screen_pos#1 ] : zp ZP_WORD:125 , -Potential registers zp ZP_BYTE:127 [ render_moving::$5 ] : zp ZP_BYTE:127 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:127 [ render_moving::$2 ] : zp ZP_BYTE:127 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_WORD:128 [ render_moving::screen_line#0 ] : zp ZP_WORD:128 , Potential registers zp ZP_BYTE:130 [ render_moving::current_cell#0 ] : zp ZP_BYTE:130 , reg byte a , reg byte x , reg byte y , Potential registers zp ZP_BYTE:131 [ render_playfield::$2 ] : zp ZP_BYTE:131 , reg byte a , reg byte x , reg byte y , @@ -16340,8 +16254,8 @@ Uplift Scope [keyboard_event_scan] 20,002: zp ZP_BYTE:201 [ keyboard_event_scan: Uplift Scope [play_collision] 38,173.33: zp ZP_BYTE:42 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] 20,002: zp ZP_BYTE:152 [ play_collision::$7 ] 13,378.25: zp ZP_BYTE:43 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] 12,223.44: zp ZP_BYTE:44 [ play_collision::c#2 play_collision::c#1 ] 1,615.62: zp ZP_BYTE:151 [ play_collision::i#1 ] 1,371.57: zp ZP_BYTE:40 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] 1,126.12: zp ZP_BYTE:41 [ play_collision::l#6 play_collision::l#1 ] 785.86: zp ZP_WORD:149 [ play_collision::playfield_line#0 ] 476.33: zp ZP_WORD:147 [ play_collision::piece_gfx#0 ] 51.62: zp ZP_BYTE:39 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] 18: zp ZP_BYTE:37 [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] 13: zp ZP_BYTE:38 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] 4: zp ZP_BYTE:144 [ play_collision::return#14 ] 4: zp ZP_BYTE:153 [ play_collision::return#13 ] 4: zp ZP_BYTE:155 [ play_collision::return#1 ] 4: zp ZP_BYTE:159 [ play_collision::return#0 ] 4: zp ZP_BYTE:165 [ play_collision::return#10 ] 1.43: zp ZP_BYTE:45 [ play_collision::return#15 ] Uplift Scope [play_remove_lines] 19,004.21: zp ZP_BYTE:71 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] 17,938.14: zp ZP_BYTE:74 [ play_remove_lines::w#6 play_remove_lines::w#4 play_remove_lines::w#12 play_remove_lines::w#11 play_remove_lines::w#1 play_remove_lines::w#2 play_remove_lines::w#3 ] 17,501.75: zp ZP_BYTE:72 [ play_remove_lines::x#2 play_remove_lines::x#1 ] 8,201: zp ZP_BYTE:73 [ play_remove_lines::full#4 play_remove_lines::full#2 ] 6,000.6: zp ZP_BYTE:181 [ play_remove_lines::c#0 ] 2,566.89: zp ZP_BYTE:70 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] 1,634.97: zp ZP_BYTE:69 [ play_remove_lines::y#8 play_remove_lines::y#1 ] 4: zp ZP_BYTE:161 [ play_remove_lines::return#0 ] Uplift Scope [play_lock_current] 38,173.33: zp ZP_BYTE:77 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] 14,753.5: zp ZP_BYTE:78 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] 14,001.4: zp ZP_BYTE:79 [ play_lock_current::c#2 play_lock_current::c#1 ] 2,333.67: zp ZP_BYTE:184 [ play_lock_current::i#1 ] 1,167.83: zp ZP_BYTE:76 [ play_lock_current::l#6 play_lock_current::l#1 ] 1,100.2: zp ZP_WORD:182 [ play_lock_current::playfield_line#0 ] 777.68: zp ZP_BYTE:75 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -Uplift Scope [] 58,859.49: zp ZP_BYTE:86 [ 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 ] 206.47: zp ZP_WORD:62 [ current_piece_gfx#33 current_piece_gfx#105 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] 197.34: zp ZP_BYTE:60 [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] 72.09: zp ZP_BYTE:20 [ current_piece_char#76 current_piece_char#104 current_piece_char#105 ] 59.09: zp ZP_WORD:18 [ current_piece_gfx#63 current_piece_gfx#116 current_piece_gfx#117 ] 43.49: zp ZP_BYTE:64 [ current_xpos#41 current_xpos#115 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] 32: zp ZP_WORD:35 [ current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 ] 30.62: zp ZP_BYTE:26 [ render_screen_render#21 render_screen_render#67 ] 20.4: zp ZP_BYTE:15 [ current_ypos#11 current_ypos#100 current_ypos#101 ] 20: zp ZP_BYTE:200 [ keyboard_modifiers#5 ] 20: zp ZP_BYTE:206 [ render_screen_showing#1 ] 20: zp ZP_BYTE:219 [ irq_sprite_ypos#3 ] 20: zp ZP_BYTE:220 [ irq_sprite_ptr#3 ] 20: zp ZP_BYTE:221 [ irq_cnt#2 ] 20: zp ZP_BYTE:222 [ irq_sprite_ypos#2 ] 20: zp ZP_BYTE:223 [ irq_sprite_ptr#2 ] 20: zp ZP_BYTE:224 [ irq_sprite_ypos#1 ] 20: zp ZP_BYTE:225 [ irq_sprite_ptr#1 ] 18.87: zp ZP_WORD:58 [ current_piece#27 current_piece#95 current_piece#20 current_piece#14 current_piece#88 ] 18.67: zp ZP_BYTE:57 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] 18.33: zp ZP_BYTE:61 [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] 17.35: zp ZP_BYTE:56 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] 15.5: zp ZP_BYTE:48 [ current_ypos#36 current_ypos#25 current_ypos#17 current_ypos#22 current_ypos#2 ] 14.83: zp ZP_BYTE:66 [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] 13.86: zp ZP_DWORD:51 [ score_bcd#27 score_bcd#16 score_bcd#18 score_bcd#14 score_bcd#30 ] 13.85: zp ZP_BYTE:17 [ current_xpos#57 current_xpos#126 current_xpos#127 ] 13.23: zp ZP_BYTE:55 [ level#31 level#18 level#10 level#16 level#20 ] 12.88: zp ZP_WORD:49 [ lines_bcd#27 lines_bcd#17 lines_bcd#19 lines_bcd#15 lines_bcd#30 ] 12.56: zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] 11.67: zp ZP_BYTE:110 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 ] 11.6: zp ZP_BYTE:83 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] 10.59: zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#66 ] 4.82: zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] 4.01: zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] 3: zp ZP_BYTE:218 [ irq_cnt#1 ] 0.4: zp ZP_BYTE:111 [ render_screen_showing#0 ] 0.31: zp ZP_BYTE:112 [ irq_raster_next#0 ] 0.28: zp ZP_BYTE:113 [ irq_sprite_ypos#0 ] 0.26: zp ZP_BYTE:114 [ irq_sprite_ptr#0 ] 0.17: zp ZP_BYTE:115 [ irq_cnt#0 ] -Uplift Scope [render_moving] 2,534.25: zp ZP_BYTE:23 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#10 render_moving::i#1 ] 1,787.5: zp ZP_BYTE:25 [ render_moving::c#2 render_moving::c#1 ] 1,553.5: zp ZP_BYTE:24 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] 1,001: zp ZP_BYTE:130 [ render_moving::current_cell#0 ] 202: zp ZP_BYTE:127 [ render_moving::$5 ] 162.72: zp ZP_BYTE:22 [ render_moving::l#4 render_moving::l#1 ] 101.16: zp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] 100.18: zp ZP_WORD:128 [ render_moving::screen_line#0 ] +Uplift Scope [] 58,859.49: zp ZP_BYTE:86 [ 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 ] 206.47: zp ZP_WORD:62 [ current_piece_gfx#33 current_piece_gfx#103 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] 197.34: zp ZP_BYTE:60 [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] 76.7: zp ZP_BYTE:20 [ current_piece_char#64 current_piece_char#102 current_piece_char#103 ] 63.7: zp ZP_WORD:18 [ current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 ] 43.49: zp ZP_BYTE:64 [ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] 32: zp ZP_WORD:35 [ current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 ] 30.62: zp ZP_BYTE:26 [ render_screen_render#21 render_screen_render#65 ] 20.4: zp ZP_BYTE:15 [ current_ypos#11 current_ypos#100 current_ypos#101 ] 20: zp ZP_BYTE:200 [ keyboard_modifiers#5 ] 20: zp ZP_BYTE:206 [ render_screen_showing#1 ] 20: zp ZP_BYTE:219 [ irq_sprite_ypos#3 ] 20: zp ZP_BYTE:220 [ irq_sprite_ptr#3 ] 20: zp ZP_BYTE:221 [ irq_cnt#2 ] 20: zp ZP_BYTE:222 [ irq_sprite_ypos#2 ] 20: zp ZP_BYTE:223 [ irq_sprite_ptr#2 ] 20: zp ZP_BYTE:224 [ irq_sprite_ypos#1 ] 20: zp ZP_BYTE:225 [ irq_sprite_ptr#1 ] 18.87: zp ZP_WORD:58 [ current_piece#27 current_piece#95 current_piece#20 current_piece#14 current_piece#88 ] 18.67: zp ZP_BYTE:57 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] 18.33: zp ZP_BYTE:61 [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] 17.35: zp ZP_BYTE:56 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] 15.5: zp ZP_BYTE:48 [ current_ypos#36 current_ypos#25 current_ypos#17 current_ypos#22 current_ypos#2 ] 14.83: zp ZP_BYTE:66 [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] 14.37: zp ZP_BYTE:17 [ current_xpos#57 current_xpos#124 current_xpos#125 ] 13.86: zp ZP_DWORD:51 [ score_bcd#27 score_bcd#16 score_bcd#18 score_bcd#14 score_bcd#30 ] 13.23: zp ZP_BYTE:55 [ level#31 level#18 level#10 level#16 level#20 ] 12.88: zp ZP_WORD:49 [ lines_bcd#27 lines_bcd#17 lines_bcd#19 lines_bcd#15 lines_bcd#30 ] 12.56: zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] 11.67: zp ZP_BYTE:110 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 ] 11.6: zp ZP_BYTE:83 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] 11.1: zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 ] 4.82: zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] 4.01: zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] 3: zp ZP_BYTE:218 [ irq_cnt#1 ] 0.4: zp ZP_BYTE:111 [ render_screen_showing#0 ] 0.31: zp ZP_BYTE:112 [ irq_raster_next#0 ] 0.28: zp ZP_BYTE:113 [ irq_sprite_ypos#0 ] 0.26: zp ZP_BYTE:114 [ irq_sprite_ptr#0 ] 0.17: zp ZP_BYTE:115 [ irq_cnt#0 ] +Uplift Scope [render_moving] 2,615.85: zp ZP_BYTE:23 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] 1,835.17: zp ZP_BYTE:25 [ render_moving::c#2 render_moving::c#1 ] 1,490.13: zp ZP_BYTE:24 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] 1,001: zp ZP_BYTE:130 [ render_moving::current_cell#0 ] 202: zp ZP_BYTE:127 [ render_moving::$2 ] 164.12: zp ZP_BYTE:22 [ render_moving::l#4 render_moving::l#1 ] 110.2: zp ZP_WORD:128 [ render_moving::screen_line#0 ] 98.4: zp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] Uplift Scope [play_increase_level] 4,004: zp ZP_BYTE:180 [ play_increase_level::b4#0 ] 2,502.5: zp ZP_BYTE:68 [ play_increase_level::b#2 play_increase_level::b#1 ] 4: zp ZP_BYTE:179 [ play_increase_level::$1 ] Uplift Scope [render_playfield] 2,254.5: zp ZP_WORD:29 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] 2,002: zp ZP_BYTE:31 [ render_playfield::c#2 render_playfield::c#1 ] 1,505.77: zp ZP_BYTE:28 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] 202: zp ZP_BYTE:131 [ render_playfield::$2 ] 202: zp ZP_BYTE:132 [ render_playfield::$3 ] 181.8: zp ZP_BYTE:27 [ render_playfield::l#2 render_playfield::l#1 ] Uplift Scope [play_spawn_current] 2,337: zp ZP_BYTE:67 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] 2,002: zp ZP_BYTE:168 [ play_spawn_current::$1 ] 4: zp ZP_BYTE:166 [ play_spawn_current::$5 ] 0.08: zp ZP_BYTE:164 [ play_spawn_current::$3 ] @@ -16367,262 +16281,262 @@ Uplift Scope [sid_rnd_init] Uplift Scope [render_screen_swap] Uplift Scope [sprites_irq_init] -Uplifting [keyboard_event_scan] best 4621204 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:84 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] zp ZP_BYTE:85 [ 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:82 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] zp ZP_BYTE:191 [ keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:193 [ keyboard_event_scan::$14 ] zp ZP_BYTE:195 [ keyboard_event_scan::$18 ] zp ZP_BYTE:197 [ keyboard_event_scan::$22 ] zp ZP_BYTE:199 [ keyboard_event_scan::$26 ] +Uplifting [keyboard_event_scan] best 4609654 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:84 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] zp ZP_BYTE:85 [ 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:82 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] zp ZP_BYTE:191 [ keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:193 [ keyboard_event_scan::$14 ] zp ZP_BYTE:195 [ keyboard_event_scan::$18 ] zp ZP_BYTE:197 [ keyboard_event_scan::$22 ] zp ZP_BYTE:199 [ keyboard_event_scan::$26 ] Limited combination testing to 100 combinations of 5308416 possible. -Uplifting [play_collision] best 4471204 combination zp ZP_BYTE:42 [ 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:43 [ 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:151 [ play_collision::i#1 ] zp ZP_BYTE:40 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] zp ZP_BYTE:41 [ play_collision::l#6 play_collision::l#1 ] zp ZP_WORD:149 [ play_collision::playfield_line#0 ] zp ZP_WORD:147 [ play_collision::piece_gfx#0 ] zp ZP_BYTE:39 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] zp ZP_BYTE:37 [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] zp ZP_BYTE:38 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] zp ZP_BYTE:144 [ play_collision::return#14 ] zp ZP_BYTE:153 [ play_collision::return#13 ] zp ZP_BYTE:155 [ play_collision::return#1 ] zp ZP_BYTE:159 [ play_collision::return#0 ] zp ZP_BYTE:165 [ play_collision::return#10 ] zp ZP_BYTE:45 [ play_collision::return#15 ] +Uplifting [play_collision] best 4459654 combination zp ZP_BYTE:42 [ 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:43 [ 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:151 [ play_collision::i#1 ] zp ZP_BYTE:40 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] zp ZP_BYTE:41 [ play_collision::l#6 play_collision::l#1 ] zp ZP_WORD:149 [ play_collision::playfield_line#0 ] zp ZP_WORD:147 [ play_collision::piece_gfx#0 ] zp ZP_BYTE:39 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] zp ZP_BYTE:37 [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] zp ZP_BYTE:38 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] zp ZP_BYTE:144 [ play_collision::return#14 ] zp ZP_BYTE:153 [ play_collision::return#13 ] zp ZP_BYTE:155 [ play_collision::return#1 ] zp ZP_BYTE:159 [ play_collision::return#0 ] zp ZP_BYTE:165 [ play_collision::return#10 ] zp ZP_BYTE:45 [ play_collision::return#15 ] Limited combination testing to 100 combinations of 322486272 possible. -Uplifting [play_remove_lines] best 4334204 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:72 [ play_remove_lines::x#2 play_remove_lines::x#1 ] zp ZP_BYTE:73 [ play_remove_lines::full#4 play_remove_lines::full#2 ] zp ZP_BYTE:181 [ play_remove_lines::c#0 ] zp ZP_BYTE:70 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] zp ZP_BYTE:69 [ play_remove_lines::y#8 play_remove_lines::y#1 ] zp ZP_BYTE:161 [ play_remove_lines::return#0 ] +Uplifting [play_remove_lines] best 4322654 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:72 [ play_remove_lines::x#2 play_remove_lines::x#1 ] zp ZP_BYTE:73 [ play_remove_lines::full#4 play_remove_lines::full#2 ] zp ZP_BYTE:181 [ play_remove_lines::c#0 ] zp ZP_BYTE:70 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] zp ZP_BYTE:69 [ play_remove_lines::y#8 play_remove_lines::y#1 ] zp ZP_BYTE:161 [ play_remove_lines::return#0 ] Limited combination testing to 100 combinations of 20736 possible. -Uplifting [play_lock_current] best 4244204 combination zp ZP_BYTE:77 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] zp ZP_BYTE:78 [ 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:184 [ play_lock_current::i#1 ] zp ZP_BYTE:76 [ play_lock_current::l#6 play_lock_current::l#1 ] zp ZP_WORD:182 [ play_lock_current::playfield_line#0 ] zp ZP_BYTE:75 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] +Uplifting [play_lock_current] best 4232654 combination zp ZP_BYTE:77 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] zp ZP_BYTE:78 [ 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:184 [ play_lock_current::i#1 ] zp ZP_BYTE:76 [ play_lock_current::l#6 play_lock_current::l#1 ] zp ZP_WORD:182 [ play_lock_current::playfield_line#0 ] zp ZP_BYTE:75 [ 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 [] best 4243038 combination zp ZP_BYTE:86 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] zp ZP_WORD:62 [ current_piece_gfx#33 current_piece_gfx#105 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] zp ZP_BYTE:60 [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] reg byte x [ current_piece_char#76 current_piece_char#104 current_piece_char#105 ] zp ZP_WORD:18 [ current_piece_gfx#63 current_piece_gfx#116 current_piece_gfx#117 ] zp ZP_BYTE:64 [ current_xpos#41 current_xpos#115 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] zp ZP_WORD:35 [ current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 ] reg byte x [ render_screen_render#21 render_screen_render#67 ] zp ZP_BYTE:15 [ current_ypos#11 current_ypos#100 current_ypos#101 ] zp ZP_BYTE:200 [ keyboard_modifiers#5 ] zp ZP_BYTE:206 [ render_screen_showing#1 ] zp ZP_BYTE:219 [ irq_sprite_ypos#3 ] zp ZP_BYTE:220 [ irq_sprite_ptr#3 ] zp ZP_BYTE:221 [ irq_cnt#2 ] zp ZP_BYTE:222 [ irq_sprite_ypos#2 ] zp ZP_BYTE:223 [ irq_sprite_ptr#2 ] zp ZP_BYTE:224 [ irq_sprite_ypos#1 ] zp ZP_BYTE:225 [ irq_sprite_ptr#1 ] zp ZP_WORD:58 [ current_piece#27 current_piece#95 current_piece#20 current_piece#14 current_piece#88 ] zp ZP_BYTE:57 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] zp ZP_BYTE:61 [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] zp ZP_BYTE:56 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] zp ZP_BYTE:48 [ current_ypos#36 current_ypos#25 current_ypos#17 current_ypos#22 current_ypos#2 ] zp ZP_BYTE:66 [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] zp ZP_DWORD:51 [ score_bcd#27 score_bcd#16 score_bcd#18 score_bcd#14 score_bcd#30 ] zp ZP_BYTE:17 [ current_xpos#57 current_xpos#126 current_xpos#127 ] zp ZP_BYTE:55 [ level#31 level#18 level#10 level#16 level#20 ] zp ZP_WORD:49 [ lines_bcd#27 lines_bcd#17 lines_bcd#19 lines_bcd#15 lines_bcd#30 ] zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] zp ZP_BYTE:110 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 ] zp ZP_BYTE:83 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#66 ] zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] zp ZP_BYTE:218 [ irq_cnt#1 ] zp ZP_BYTE:111 [ render_screen_showing#0 ] zp ZP_BYTE:112 [ irq_raster_next#0 ] zp ZP_BYTE:113 [ irq_sprite_ypos#0 ] zp ZP_BYTE:114 [ irq_sprite_ptr#0 ] zp ZP_BYTE:115 [ irq_cnt#0 ] +Uplifting [] best 4231488 combination zp ZP_BYTE:86 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] zp ZP_WORD:62 [ current_piece_gfx#33 current_piece_gfx#103 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] zp ZP_BYTE:60 [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] reg byte x [ current_piece_char#64 current_piece_char#102 current_piece_char#103 ] zp ZP_WORD:18 [ current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 ] zp ZP_BYTE:64 [ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] zp ZP_WORD:35 [ current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 ] reg byte x [ render_screen_render#21 render_screen_render#65 ] zp ZP_BYTE:15 [ current_ypos#11 current_ypos#100 current_ypos#101 ] zp ZP_BYTE:200 [ keyboard_modifiers#5 ] zp ZP_BYTE:206 [ render_screen_showing#1 ] zp ZP_BYTE:219 [ irq_sprite_ypos#3 ] zp ZP_BYTE:220 [ irq_sprite_ptr#3 ] zp ZP_BYTE:221 [ irq_cnt#2 ] zp ZP_BYTE:222 [ irq_sprite_ypos#2 ] zp ZP_BYTE:223 [ irq_sprite_ptr#2 ] zp ZP_BYTE:224 [ irq_sprite_ypos#1 ] zp ZP_BYTE:225 [ irq_sprite_ptr#1 ] zp ZP_WORD:58 [ current_piece#27 current_piece#95 current_piece#20 current_piece#14 current_piece#88 ] zp ZP_BYTE:57 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] zp ZP_BYTE:61 [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] zp ZP_BYTE:56 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] zp ZP_BYTE:48 [ current_ypos#36 current_ypos#25 current_ypos#17 current_ypos#22 current_ypos#2 ] zp ZP_BYTE:66 [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] zp ZP_BYTE:17 [ current_xpos#57 current_xpos#124 current_xpos#125 ] zp ZP_DWORD:51 [ score_bcd#27 score_bcd#16 score_bcd#18 score_bcd#14 score_bcd#30 ] zp ZP_BYTE:55 [ level#31 level#18 level#10 level#16 level#20 ] zp ZP_WORD:49 [ lines_bcd#27 lines_bcd#17 lines_bcd#19 lines_bcd#15 lines_bcd#30 ] zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] zp ZP_BYTE:110 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 ] zp ZP_BYTE:83 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 ] zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] zp ZP_BYTE:218 [ irq_cnt#1 ] zp ZP_BYTE:111 [ render_screen_showing#0 ] zp ZP_BYTE:112 [ irq_raster_next#0 ] zp ZP_BYTE:113 [ irq_sprite_ypos#0 ] zp ZP_BYTE:114 [ irq_sprite_ptr#0 ] zp ZP_BYTE:115 [ irq_cnt#0 ] Limited combination testing to 100 combinations of 7962624 possible. -Uplifting [render_moving] best 4237038 combination zp ZP_BYTE:23 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#10 render_moving::i#1 ] zp ZP_BYTE:25 [ render_moving::c#2 render_moving::c#1 ] zp ZP_BYTE:24 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] reg byte a [ render_moving::current_cell#0 ] zp ZP_BYTE:127 [ render_moving::$5 ] zp ZP_BYTE:22 [ render_moving::l#4 render_moving::l#1 ] zp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] zp ZP_WORD:128 [ render_moving::screen_line#0 ] +Uplifting [render_moving] best 4225488 combination zp ZP_BYTE:23 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] zp ZP_BYTE:25 [ render_moving::c#2 render_moving::c#1 ] zp ZP_BYTE:24 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] reg byte a [ render_moving::current_cell#0 ] zp ZP_BYTE:127 [ render_moving::$2 ] zp ZP_BYTE:22 [ render_moving::l#4 render_moving::l#1 ] zp ZP_WORD:128 [ render_moving::screen_line#0 ] zp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] Limited combination testing to 100 combinations of 3888 possible. -Uplifting [play_increase_level] best 4223032 combination reg byte a [ play_increase_level::b4#0 ] reg byte x [ play_increase_level::b#2 play_increase_level::b#1 ] reg byte a [ play_increase_level::$1 ] -Uplifting [render_playfield] best 4222432 combination zp ZP_WORD:29 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] zp ZP_BYTE:31 [ render_playfield::c#2 render_playfield::c#1 ] zp ZP_BYTE:28 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] reg byte a [ render_playfield::$2 ] reg byte a [ render_playfield::$3 ] zp ZP_BYTE:27 [ render_playfield::l#2 render_playfield::l#1 ] +Uplifting [play_increase_level] best 4211482 combination reg byte a [ play_increase_level::b4#0 ] reg byte x [ play_increase_level::b#2 play_increase_level::b#1 ] reg byte a [ play_increase_level::$1 ] +Uplifting [render_playfield] best 4210882 combination zp ZP_WORD:29 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] zp ZP_BYTE:31 [ render_playfield::c#2 render_playfield::c#1 ] zp ZP_BYTE:28 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] reg byte a [ render_playfield::$2 ] reg byte a [ render_playfield::$3 ] zp ZP_BYTE:27 [ render_playfield::l#2 render_playfield::l#1 ] Limited combination testing to 100 combinations of 128 possible. -Uplifting [play_spawn_current] best 4209416 combination reg byte x [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] reg byte a [ play_spawn_current::$1 ] reg byte a [ play_spawn_current::$5 ] zp ZP_BYTE:164 [ play_spawn_current::$3 ] -Uplifting [keyboard_matrix_read] best 4197410 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 4188407 combination reg byte a [ sid_rnd::return#2 ] reg byte a [ sid_rnd::return#0 ] -Uplifting [render_screen_original] best 4186307 combination zp ZP_WORD:105 [ render_screen_original::screen#7 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#9 render_screen_original::screen#10 render_screen_original::screen#2 render_screen_original::screen#3 ] reg byte x [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] zp ZP_WORD:107 [ render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 ] zp ZP_WORD:101 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] zp ZP_WORD:103 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] zp ZP_BYTE:100 [ render_screen_original::y#6 render_screen_original::y#1 ] -Uplifting [main] best 4185107 combination reg byte a [ main::render#1 ] reg byte x [ main::key_event#0 ] -Uplifting [play_movement] best 4184501 combination reg byte a [ play_movement::return#3 ] zp ZP_BYTE:32 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] zp ZP_BYTE:118 [ play_movement::key_event#0 ] reg byte a [ play_movement::$0 ] zp ZP_BYTE:138 [ play_movement::$3 ] zp ZP_BYTE:142 [ play_movement::$4 ] zp ZP_BYTE:139 [ play_movement::render#2 ] +Uplifting [play_spawn_current] best 4197866 combination reg byte x [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] reg byte a [ play_spawn_current::$1 ] reg byte a [ play_spawn_current::$5 ] zp ZP_BYTE:164 [ play_spawn_current::$3 ] +Uplifting [keyboard_matrix_read] best 4185860 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 4176857 combination reg byte a [ sid_rnd::return#2 ] reg byte a [ sid_rnd::return#0 ] +Uplifting [render_screen_original] best 4174757 combination zp ZP_WORD:105 [ render_screen_original::screen#7 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#9 render_screen_original::screen#10 render_screen_original::screen#2 render_screen_original::screen#3 ] reg byte x [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] zp ZP_WORD:107 [ render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 ] zp ZP_WORD:101 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] zp ZP_WORD:103 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] zp ZP_BYTE:100 [ render_screen_original::y#6 render_screen_original::y#1 ] +Uplifting [main] best 4173557 combination reg byte a [ main::render#1 ] reg byte x [ main::key_event#0 ] +Uplifting [play_movement] best 4172951 combination reg byte a [ play_movement::return#3 ] zp ZP_BYTE:32 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] zp ZP_BYTE:118 [ play_movement::key_event#0 ] reg byte a [ play_movement::$0 ] zp ZP_BYTE:138 [ play_movement::$3 ] zp ZP_BYTE:142 [ play_movement::$4 ] zp ZP_BYTE:139 [ play_movement::render#2 ] Limited combination testing to 100 combinations of 6912 possible. -Uplifting [keyboard_event_get] best 4183597 combination reg byte x [ keyboard_event_get::return#3 ] reg byte x [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] -Uplifting [play_init] best 4183287 combination reg byte a [ play_init::b4#0 ] reg byte x [ play_init::b#2 play_init::b#1 ] reg byte x [ play_init::j#2 play_init::j#1 ] reg byte a [ play_init::$1 ] zp ZP_BYTE:91 [ play_init::idx#2 play_init::idx#1 ] zp ZP_WORD:89 [ play_init::pli#2 play_init::pli#1 ] +Uplifting [keyboard_event_get] best 4172047 combination reg byte x [ keyboard_event_get::return#3 ] reg byte x [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] +Uplifting [play_init] best 4171737 combination reg byte a [ play_init::b4#0 ] reg byte x [ play_init::b#2 play_init::b#1 ] reg byte x [ play_init::j#2 play_init::j#1 ] reg byte a [ play_init::$1 ] zp ZP_BYTE:91 [ play_init::idx#2 play_init::idx#1 ] zp ZP_WORD:89 [ play_init::pli#2 play_init::pli#1 ] Limited combination testing to 100 combinations of 432 possible. -Uplifting [render_bcd] best 4183253 combination zp ZP_WORD:7 [ render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 ] reg byte x [ render_bcd::bcd#6 render_bcd::bcd#0 render_bcd::bcd#1 render_bcd::bcd#2 render_bcd::bcd#3 render_bcd::bcd#4 render_bcd::bcd#5 ] zp ZP_WORD:125 [ render_bcd::screen_pos#1 ] zp ZP_WORD:13 [ render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 ] reg byte a [ render_bcd::$3 ] reg byte a [ render_bcd::$4 ] reg byte a [ render_bcd::$5 ] zp ZP_BYTE:124 [ render_bcd::$6 ] zp ZP_WORD:9 [ render_bcd::offset#6 ] zp ZP_BYTE:11 [ render_bcd::only_low#6 ] +Uplifting [render_bcd] best 4171703 combination zp ZP_WORD:7 [ render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 ] reg byte x [ render_bcd::bcd#6 render_bcd::bcd#0 render_bcd::bcd#1 render_bcd::bcd#2 render_bcd::bcd#3 render_bcd::bcd#4 render_bcd::bcd#5 ] zp ZP_WORD:125 [ render_bcd::screen_pos#1 ] zp ZP_WORD:13 [ render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 ] reg byte a [ render_bcd::$3 ] reg byte a [ render_bcd::$4 ] reg byte a [ render_bcd::$5 ] zp ZP_BYTE:124 [ render_bcd::$6 ] zp ZP_WORD:9 [ render_bcd::offset#6 ] zp ZP_BYTE:11 [ render_bcd::only_low#6 ] Limited combination testing to 100 combinations of 1536 possible. -Uplifting [render_init] best 4183063 combination reg byte x [ render_init::i#2 render_init::i#1 ] reg byte a [ render_init::$13 ] reg byte a [ render_init::$14 ] zp ZP_WORD:98 [ render_init::li_2#2 render_init::li_2#1 ] zp ZP_WORD:96 [ render_init::li_1#2 render_init::li_1#1 ] -Uplifting [sprites_init] best 4182893 combination reg byte x [ sprites_init::s#2 sprites_init::s#1 ] reg byte a [ sprites_init::s2#0 ] zp ZP_BYTE:94 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Uplifting [play_move_down] best 4182860 combination reg byte x [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] reg byte a [ play_move_down::return#0 ] reg byte a [ play_move_down::$2 ] reg byte a [ play_move_down::$12 ] zp ZP_BYTE:162 [ play_move_down::removed#0 ] zp ZP_BYTE:133 [ play_move_down::key_event#0 ] zp ZP_BYTE:65 [ play_move_down::return#3 ] +Uplifting [render_init] best 4171513 combination reg byte x [ render_init::i#2 render_init::i#1 ] reg byte a [ render_init::$13 ] reg byte a [ render_init::$14 ] zp ZP_WORD:98 [ render_init::li_2#2 render_init::li_2#1 ] zp ZP_WORD:96 [ render_init::li_1#2 render_init::li_1#1 ] +Uplifting [sprites_init] best 4171343 combination reg byte x [ sprites_init::s#2 sprites_init::s#1 ] reg byte a [ sprites_init::s2#0 ] zp ZP_BYTE:94 [ sprites_init::xpos#2 sprites_init::xpos#1 ] +Uplifting [play_move_down] best 4171310 combination reg byte x [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] reg byte a [ play_move_down::return#0 ] reg byte a [ play_move_down::$2 ] reg byte a [ play_move_down::$12 ] zp ZP_BYTE:162 [ play_move_down::removed#0 ] zp ZP_BYTE:133 [ play_move_down::key_event#0 ] zp ZP_BYTE:65 [ play_move_down::return#3 ] Limited combination testing to 100 combinations of 12288 possible. -Uplifting [keyboard_event_pressed] best 4182840 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:194 [ keyboard_event_pressed::return#1 ] zp ZP_BYTE:196 [ keyboard_event_pressed::return#2 ] zp ZP_BYTE:198 [ keyboard_event_pressed::return#10 ] zp ZP_BYTE:186 [ keyboard_event_pressed::row_bits#0 ] zp ZP_BYTE:188 [ keyboard_event_pressed::return#11 ] zp ZP_BYTE:80 [ keyboard_event_pressed::keycode#5 ] +Uplifting [keyboard_event_pressed] best 4171290 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:194 [ keyboard_event_pressed::return#1 ] zp ZP_BYTE:196 [ keyboard_event_pressed::return#2 ] zp ZP_BYTE:198 [ keyboard_event_pressed::return#10 ] zp ZP_BYTE:186 [ keyboard_event_pressed::row_bits#0 ] zp ZP_BYTE:188 [ keyboard_event_pressed::return#11 ] zp ZP_BYTE:80 [ keyboard_event_pressed::keycode#5 ] Limited combination testing to 100 combinations of 589824 possible. -Uplifting [sprites_irq] best 4182816 combination zp ZP_BYTE:214 [ sprites_irq::raster_sprite_gfx_modify#0 ] reg byte x [ sprites_irq::$0 ] reg byte a [ sprites_irq::ptr#4 ] reg byte a [ sprites_irq::ptr#2 ] reg byte a [ sprites_irq::ptr#3 ] zp ZP_BYTE:226 [ sprites_irq::ptr#1 ] zp ZP_BYTE:212 [ sprites_irq::ypos#0 ] zp ZP_BYTE:215 [ sprites_irq::ptr#0 ] +Uplifting [sprites_irq] best 4171266 combination zp ZP_BYTE:214 [ sprites_irq::raster_sprite_gfx_modify#0 ] reg byte x [ sprites_irq::$0 ] reg byte a [ sprites_irq::ptr#4 ] reg byte a [ sprites_irq::ptr#2 ] reg byte a [ sprites_irq::ptr#3 ] zp ZP_BYTE:226 [ sprites_irq::ptr#1 ] zp ZP_BYTE:212 [ sprites_irq::ypos#0 ] zp ZP_BYTE:215 [ sprites_irq::ptr#0 ] Limited combination testing to 100 combinations of 12288 possible. -Uplifting [play_move_rotate] best 4182798 combination zp ZP_BYTE:34 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] reg byte a [ play_move_rotate::return#0 ] reg byte a [ play_move_rotate::$2 ] reg byte a [ play_move_rotate::$6 ] zp ZP_BYTE:146 [ play_move_rotate::$4 ] zp ZP_BYTE:140 [ play_move_rotate::key_event#0 ] zp ZP_BYTE:33 [ play_move_rotate::return#2 ] +Uplifting [play_move_rotate] best 4171248 combination zp ZP_BYTE:34 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] reg byte a [ play_move_rotate::return#0 ] reg byte a [ play_move_rotate::$2 ] reg byte a [ play_move_rotate::$6 ] zp ZP_BYTE:146 [ play_move_rotate::$4 ] zp ZP_BYTE:140 [ play_move_rotate::key_event#0 ] zp ZP_BYTE:33 [ play_move_rotate::return#2 ] Limited combination testing to 100 combinations of 12288 possible. -Uplifting [play_update_score] best 4182776 combination reg byte a [ play_update_score::$2 ] reg byte a [ play_update_score::$4 ] reg byte a [ play_update_score::$5 ] reg byte a [ play_update_score::lines_after#0 ] zp ZP_DWORD:173 [ play_update_score::add_bcd#0 ] zp ZP_BYTE:163 [ play_update_score::removed#0 ] zp ZP_BYTE:171 [ play_update_score::lines_before#0 ] +Uplifting [play_update_score] best 4171226 combination reg byte a [ play_update_score::$2 ] reg byte a [ play_update_score::$4 ] reg byte a [ play_update_score::$5 ] reg byte a [ play_update_score::lines_after#0 ] zp ZP_DWORD:173 [ play_update_score::add_bcd#0 ] zp ZP_BYTE:163 [ play_update_score::removed#0 ] zp ZP_BYTE:171 [ play_update_score::lines_before#0 ] Limited combination testing to 100 combinations of 2304 possible. -Uplifting [play_move_leftright] best 4182749 combination reg byte a [ play_move_leftright::return#0 ] reg byte a [ play_move_leftright::$4 ] reg byte a [ play_move_leftright::$8 ] reg byte a [ play_move_leftright::key_event#0 ] zp ZP_BYTE:46 [ play_move_leftright::return#2 ] +Uplifting [play_move_leftright] best 4171199 combination reg byte a [ play_move_leftright::return#0 ] reg byte a [ play_move_leftright::$4 ] reg byte a [ play_move_leftright::$8 ] reg byte a [ play_move_leftright::key_event#0 ] zp ZP_BYTE:46 [ play_move_leftright::return#2 ] Limited combination testing to 100 combinations of 1024 possible. -Uplifting [render_show] best 4182740 combination reg byte a [ render_show::d018val#3 ] -Uplifting [render_score] best 4182740 combination zp ZP_WORD:5 [ render_score::screen#2 ] -Uplifting [sid_rnd_init] best 4182740 combination -Uplifting [render_screen_swap] best 4182740 combination -Uplifting [sprites_irq_init] best 4182740 combination +Uplifting [render_show] best 4171190 combination reg byte a [ render_show::d018val#3 ] +Uplifting [render_score] best 4171190 combination zp ZP_WORD:5 [ render_score::screen#2 ] +Uplifting [sid_rnd_init] best 4171190 combination +Uplifting [render_screen_swap] best 4171190 combination +Uplifting [sprites_irq_init] best 4171190 combination Attempting to uplift remaining variables inzp ZP_BYTE:86 [ 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 4182740 combination zp ZP_BYTE:86 [ 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 4171190 combination zp ZP_BYTE:86 [ 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:42 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] -Uplifting [play_collision] best 4182740 combination zp ZP_BYTE:42 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] +Uplifting [play_collision] best 4171190 combination zp ZP_BYTE:42 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] Attempting to uplift remaining variables inzp ZP_BYTE:77 [ 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 4182740 combination zp ZP_BYTE:77 [ 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 4171190 combination zp ZP_BYTE:77 [ 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:84 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] -Uplifting [keyboard_event_scan] best 4032740 combination reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +Uplifting [keyboard_event_scan] best 4021190 combination reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:72 [ play_remove_lines::x#2 play_remove_lines::x#1 ] -Uplifting [play_remove_lines] best 4032740 combination zp ZP_BYTE:72 [ play_remove_lines::x#2 play_remove_lines::x#1 ] +Uplifting [play_remove_lines] best 4021190 combination zp ZP_BYTE:72 [ play_remove_lines::x#2 play_remove_lines::x#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:78 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] -Uplifting [play_lock_current] best 4032740 combination zp ZP_BYTE:78 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] +Uplifting [play_lock_current] best 4021190 combination zp ZP_BYTE:78 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:43 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] -Uplifting [play_collision] best 4032740 combination zp ZP_BYTE:43 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] +Uplifting [play_collision] best 4021190 combination zp ZP_BYTE:43 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:85 [ 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 4032740 combination zp ZP_BYTE:85 [ 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 4021190 combination zp ZP_BYTE:85 [ 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:73 [ play_remove_lines::full#4 play_remove_lines::full#2 ] -Uplifting [play_remove_lines] best 4032740 combination zp ZP_BYTE:73 [ play_remove_lines::full#4 play_remove_lines::full#2 ] +Uplifting [play_remove_lines] best 4021190 combination zp ZP_BYTE:73 [ play_remove_lines::full#4 play_remove_lines::full#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:181 [ play_remove_lines::c#0 ] -Uplifting [play_remove_lines] best 4032740 combination zp ZP_BYTE:181 [ play_remove_lines::c#0 ] +Uplifting [play_remove_lines] best 4021190 combination zp ZP_BYTE:181 [ play_remove_lines::c#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:23 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] +Uplifting [render_moving] best 4021190 combination zp ZP_BYTE:23 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:70 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] -Uplifting [play_remove_lines] best 4032740 combination zp ZP_BYTE:70 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:23 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#10 render_moving::i#1 ] -Uplifting [render_moving] best 4032740 combination zp ZP_BYTE:23 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#10 render_moving::i#1 ] +Uplifting [play_remove_lines] best 4021190 combination zp ZP_BYTE:70 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:184 [ play_lock_current::i#1 ] -Uplifting [play_lock_current] best 4032740 combination zp ZP_BYTE:184 [ play_lock_current::i#1 ] +Uplifting [play_lock_current] best 4021190 combination zp ZP_BYTE:184 [ play_lock_current::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:82 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Uplifting [keyboard_event_scan] best 4032740 combination zp ZP_BYTE:82 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Uplifting [keyboard_event_scan] best 4021190 combination zp ZP_BYTE:82 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:31 [ render_playfield::c#2 render_playfield::c#1 ] -Uplifting [render_playfield] best 4032740 combination zp ZP_BYTE:31 [ render_playfield::c#2 render_playfield::c#1 ] +Uplifting [render_playfield] best 4021190 combination zp ZP_BYTE:31 [ render_playfield::c#2 render_playfield::c#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:25 [ render_moving::c#2 render_moving::c#1 ] -Uplifting [render_moving] best 4032740 combination zp ZP_BYTE:25 [ render_moving::c#2 render_moving::c#1 ] +Uplifting [render_moving] best 4021190 combination zp ZP_BYTE:25 [ render_moving::c#2 render_moving::c#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:69 [ play_remove_lines::y#8 play_remove_lines::y#1 ] -Uplifting [play_remove_lines] best 4032740 combination zp ZP_BYTE:69 [ play_remove_lines::y#8 play_remove_lines::y#1 ] +Uplifting [play_remove_lines] best 4021190 combination zp ZP_BYTE:69 [ play_remove_lines::y#8 play_remove_lines::y#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:151 [ play_collision::i#1 ] -Uplifting [play_collision] best 4032740 combination zp ZP_BYTE:151 [ play_collision::i#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:24 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] -Uplifting [render_moving] best 4032740 combination zp ZP_BYTE:24 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] +Uplifting [play_collision] best 4021190 combination zp ZP_BYTE:151 [ play_collision::i#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:28 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] -Uplifting [render_playfield] best 4032740 combination zp ZP_BYTE:28 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] +Uplifting [render_playfield] best 4021190 combination zp ZP_BYTE:28 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:24 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] +Uplifting [render_moving] best 4021190 combination zp ZP_BYTE:24 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:40 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] -Uplifting [play_collision] best 4032740 combination zp ZP_BYTE:40 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] +Uplifting [play_collision] best 4021190 combination zp ZP_BYTE:40 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:191 [ keyboard_event_scan::row_scan#0 ] -Uplifting [keyboard_event_scan] best 4032740 combination zp ZP_BYTE:191 [ keyboard_event_scan::row_scan#0 ] +Uplifting [keyboard_event_scan] best 4021190 combination zp ZP_BYTE:191 [ keyboard_event_scan::row_scan#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:76 [ play_lock_current::l#6 play_lock_current::l#1 ] -Uplifting [play_lock_current] best 4032740 combination zp ZP_BYTE:76 [ play_lock_current::l#6 play_lock_current::l#1 ] +Uplifting [play_lock_current] best 4021190 combination zp ZP_BYTE:76 [ play_lock_current::l#6 play_lock_current::l#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:41 [ play_collision::l#6 play_collision::l#1 ] -Uplifting [play_collision] best 4032740 combination zp ZP_BYTE:41 [ play_collision::l#6 play_collision::l#1 ] +Uplifting [play_collision] best 4021190 combination zp ZP_BYTE:41 [ play_collision::l#6 play_collision::l#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:75 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -Uplifting [play_lock_current] best 4032740 combination zp ZP_BYTE:75 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:127 [ render_moving::$5 ] -Uplifting [render_moving] best 4032340 combination reg byte a [ render_moving::$5 ] +Uplifting [play_lock_current] best 4021190 combination zp ZP_BYTE:75 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:127 [ render_moving::$2 ] +Uplifting [render_moving] best 4020790 combination reg byte a [ render_moving::$2 ] Attempting to uplift remaining variables inzp ZP_BYTE:60 [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] -Uplifting [] best 4032340 combination zp ZP_BYTE:60 [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] +Uplifting [] best 4020790 combination zp ZP_BYTE:60 [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] Attempting to uplift remaining variables inzp ZP_BYTE:27 [ render_playfield::l#2 render_playfield::l#1 ] -Uplifting [render_playfield] best 4032340 combination zp ZP_BYTE:27 [ render_playfield::l#2 render_playfield::l#1 ] +Uplifting [render_playfield] best 4020790 combination zp ZP_BYTE:27 [ render_playfield::l#2 render_playfield::l#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:22 [ render_moving::l#4 render_moving::l#1 ] -Uplifting [render_moving] best 4032340 combination zp ZP_BYTE:22 [ render_moving::l#4 render_moving::l#1 ] +Uplifting [render_moving] best 4020790 combination zp ZP_BYTE:22 [ render_moving::l#4 render_moving::l#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] -Uplifting [render_moving] best 4032340 combination zp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] +Uplifting [render_moving] best 4020790 combination zp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:39 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] -Uplifting [play_collision] best 4032340 combination zp ZP_BYTE:39 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] -Attempting to uplift remaining variables inzp ZP_BYTE:64 [ current_xpos#41 current_xpos#115 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] -Uplifting [] best 4032340 combination zp ZP_BYTE:64 [ current_xpos#41 current_xpos#115 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] +Uplifting [play_collision] best 4020790 combination zp ZP_BYTE:39 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] +Attempting to uplift remaining variables inzp ZP_BYTE:64 [ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] +Uplifting [] best 4020790 combination zp ZP_BYTE:64 [ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] Attempting to uplift remaining variables inzp ZP_BYTE:32 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] -Uplifting [play_movement] best 4032340 combination zp ZP_BYTE:32 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] +Uplifting [play_movement] best 4020790 combination zp ZP_BYTE:32 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:15 [ current_ypos#11 current_ypos#100 current_ypos#101 ] -Uplifting [] best 4032306 combination reg byte y [ current_ypos#11 current_ypos#100 current_ypos#101 ] +Uplifting [] best 4020756 combination reg byte y [ current_ypos#11 current_ypos#100 current_ypos#101 ] Attempting to uplift remaining variables inzp ZP_BYTE:200 [ keyboard_modifiers#5 ] -Uplifting [] best 4032303 combination reg byte a [ keyboard_modifiers#5 ] +Uplifting [] best 4020753 combination reg byte a [ keyboard_modifiers#5 ] Attempting to uplift remaining variables inzp ZP_BYTE:206 [ render_screen_showing#1 ] -Uplifting [] best 4032303 combination zp ZP_BYTE:206 [ render_screen_showing#1 ] +Uplifting [] best 4020753 combination zp ZP_BYTE:206 [ render_screen_showing#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:219 [ irq_sprite_ypos#3 ] -Uplifting [] best 4032303 combination zp ZP_BYTE:219 [ irq_sprite_ypos#3 ] +Uplifting [] best 4020753 combination zp ZP_BYTE:219 [ irq_sprite_ypos#3 ] Attempting to uplift remaining variables inzp ZP_BYTE:220 [ irq_sprite_ptr#3 ] -Uplifting [] best 4032303 combination zp ZP_BYTE:220 [ irq_sprite_ptr#3 ] +Uplifting [] best 4020753 combination zp ZP_BYTE:220 [ irq_sprite_ptr#3 ] Attempting to uplift remaining variables inzp ZP_BYTE:221 [ irq_cnt#2 ] -Uplifting [] best 4032303 combination zp ZP_BYTE:221 [ irq_cnt#2 ] +Uplifting [] best 4020753 combination zp ZP_BYTE:221 [ irq_cnt#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:222 [ irq_sprite_ypos#2 ] -Uplifting [] best 4032303 combination zp ZP_BYTE:222 [ irq_sprite_ypos#2 ] +Uplifting [] best 4020753 combination zp ZP_BYTE:222 [ irq_sprite_ypos#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:223 [ irq_sprite_ptr#2 ] -Uplifting [] best 4032303 combination zp ZP_BYTE:223 [ irq_sprite_ptr#2 ] +Uplifting [] best 4020753 combination zp ZP_BYTE:223 [ irq_sprite_ptr#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:224 [ irq_sprite_ypos#1 ] -Uplifting [] best 4032303 combination zp ZP_BYTE:224 [ irq_sprite_ypos#1 ] +Uplifting [] best 4020753 combination zp ZP_BYTE:224 [ irq_sprite_ypos#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:225 [ irq_sprite_ptr#1 ] -Uplifting [] best 4032303 combination zp ZP_BYTE:225 [ irq_sprite_ptr#1 ] +Uplifting [] best 4020753 combination zp ZP_BYTE:225 [ irq_sprite_ptr#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:57 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] -Uplifting [] best 4032303 combination zp ZP_BYTE:57 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] +Uplifting [] best 4020753 combination zp ZP_BYTE:57 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] Attempting to uplift remaining variables inzp ZP_BYTE:61 [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] -Uplifting [] best 4032303 combination zp ZP_BYTE:61 [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] +Uplifting [] best 4020753 combination zp ZP_BYTE:61 [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] Attempting to uplift remaining variables inzp ZP_BYTE:37 [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] -Uplifting [play_collision] best 4032287 combination reg byte x [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] +Uplifting [play_collision] best 4020737 combination reg byte x [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] Attempting to uplift remaining variables inzp ZP_BYTE:100 [ render_screen_original::y#6 render_screen_original::y#1 ] -Uplifting [render_screen_original] best 4032287 combination zp ZP_BYTE:100 [ render_screen_original::y#6 render_screen_original::y#1 ] +Uplifting [render_screen_original] best 4020737 combination zp ZP_BYTE:100 [ render_screen_original::y#6 render_screen_original::y#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:56 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] -Uplifting [] best 4032287 combination zp ZP_BYTE:56 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] +Uplifting [] best 4020737 combination zp ZP_BYTE:56 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] Attempting to uplift remaining variables inzp ZP_BYTE:94 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Uplifting [sprites_init] best 4032287 combination zp ZP_BYTE:94 [ sprites_init::xpos#2 sprites_init::xpos#1 ] +Uplifting [sprites_init] best 4020737 combination zp ZP_BYTE:94 [ sprites_init::xpos#2 sprites_init::xpos#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:48 [ current_ypos#36 current_ypos#25 current_ypos#17 current_ypos#22 current_ypos#2 ] -Uplifting [] best 4032287 combination zp ZP_BYTE:48 [ current_ypos#36 current_ypos#25 current_ypos#17 current_ypos#22 current_ypos#2 ] +Uplifting [] best 4020737 combination zp ZP_BYTE:48 [ current_ypos#36 current_ypos#25 current_ypos#17 current_ypos#22 current_ypos#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:66 [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] -Uplifting [] best 4032287 combination zp ZP_BYTE:66 [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] +Uplifting [] best 4020737 combination zp ZP_BYTE:66 [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] +Attempting to uplift remaining variables inzp ZP_BYTE:17 [ current_xpos#57 current_xpos#124 current_xpos#125 ] +Uplifting [] best 4020737 combination zp ZP_BYTE:17 [ current_xpos#57 current_xpos#124 current_xpos#125 ] Attempting to uplift remaining variables inzp ZP_BYTE:91 [ play_init::idx#2 play_init::idx#1 ] -Uplifting [play_init] best 4032287 combination zp ZP_BYTE:91 [ play_init::idx#2 play_init::idx#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:17 [ current_xpos#57 current_xpos#126 current_xpos#127 ] -Uplifting [] best 4032287 combination zp ZP_BYTE:17 [ current_xpos#57 current_xpos#126 current_xpos#127 ] +Uplifting [play_init] best 4020737 combination zp ZP_BYTE:91 [ play_init::idx#2 play_init::idx#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:55 [ level#31 level#18 level#10 level#16 level#20 ] -Uplifting [] best 4032287 combination zp ZP_BYTE:55 [ level#31 level#18 level#10 level#16 level#20 ] +Uplifting [] best 4020737 combination zp ZP_BYTE:55 [ level#31 level#18 level#10 level#16 level#20 ] Attempting to uplift remaining variables inzp ZP_BYTE:38 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] -Uplifting [play_collision] best 4032287 combination zp ZP_BYTE:38 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] +Uplifting [play_collision] best 4020737 combination zp ZP_BYTE:38 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] Attempting to uplift remaining variables inzp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] -Uplifting [] best 4032287 combination zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] +Uplifting [] best 4020737 combination zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] Attempting to uplift remaining variables inzp ZP_BYTE:110 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 ] -Uplifting [] best 4032287 combination zp ZP_BYTE:110 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 ] +Uplifting [] best 4020737 combination zp ZP_BYTE:110 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:83 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] -Uplifting [] best 4032276 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:16 [ render_screen_render#30 render_screen_render#66 ] -Uplifting [] best 4032276 combination zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#66 ] +Uplifting [] best 4020726 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:16 [ render_screen_render#30 render_screen_render#64 ] +Uplifting [] best 4020726 combination zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 ] Attempting to uplift remaining variables inzp ZP_BYTE:118 [ play_movement::key_event#0 ] -Uplifting [play_movement] best 4032276 combination zp ZP_BYTE:118 [ play_movement::key_event#0 ] +Uplifting [play_movement] best 4020726 combination zp ZP_BYTE:118 [ play_movement::key_event#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:34 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] -Uplifting [play_move_rotate] best 4032276 combination zp ZP_BYTE:34 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] +Uplifting [play_move_rotate] best 4020726 combination zp ZP_BYTE:34 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:214 [ sprites_irq::raster_sprite_gfx_modify#0 ] -Uplifting [sprites_irq] best 4032276 combination zp ZP_BYTE:214 [ sprites_irq::raster_sprite_gfx_modify#0 ] +Uplifting [sprites_irq] best 4020726 combination zp ZP_BYTE:214 [ sprites_irq::raster_sprite_gfx_modify#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] -Uplifting [] best 4032276 combination zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] +Uplifting [] best 4020726 combination zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] Attempting to uplift remaining variables inzp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] -Uplifting [] best 4032276 combination zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] +Uplifting [] best 4020726 combination zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] Attempting to uplift remaining variables inzp ZP_BYTE:124 [ render_bcd::$6 ] -Uplifting [render_bcd] best 4032270 combination reg byte a [ render_bcd::$6 ] +Uplifting [render_bcd] best 4020720 combination reg byte a [ render_bcd::$6 ] Attempting to uplift remaining variables inzp ZP_BYTE:138 [ play_movement::$3 ] -Uplifting [play_movement] best 4032264 combination reg byte a [ play_movement::$3 ] +Uplifting [play_movement] best 4020714 combination reg byte a [ play_movement::$3 ] Attempting to uplift remaining variables inzp ZP_BYTE:142 [ play_movement::$4 ] -Uplifting [play_movement] best 4032258 combination reg byte a [ play_movement::$4 ] +Uplifting [play_movement] best 4020708 combination reg byte a [ play_movement::$4 ] Attempting to uplift remaining variables inzp ZP_BYTE:144 [ play_collision::return#14 ] -Uplifting [play_collision] best 4032252 combination reg byte a [ play_collision::return#14 ] +Uplifting [play_collision] best 4020702 combination reg byte a [ play_collision::return#14 ] Attempting to uplift remaining variables inzp ZP_BYTE:146 [ play_move_rotate::$4 ] -Uplifting [play_move_rotate] best 4032246 combination reg byte a [ play_move_rotate::$4 ] +Uplifting [play_move_rotate] best 4020696 combination reg byte a [ play_move_rotate::$4 ] Attempting to uplift remaining variables inzp ZP_BYTE:153 [ play_collision::return#13 ] -Uplifting [play_collision] best 4032240 combination reg byte a [ play_collision::return#13 ] +Uplifting [play_collision] best 4020690 combination reg byte a [ play_collision::return#13 ] Attempting to uplift remaining variables inzp ZP_BYTE:155 [ play_collision::return#1 ] -Uplifting [play_collision] best 4032234 combination reg byte a [ play_collision::return#1 ] +Uplifting [play_collision] best 4020684 combination reg byte a [ play_collision::return#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:159 [ play_collision::return#0 ] -Uplifting [play_collision] best 4032228 combination reg byte a [ play_collision::return#0 ] +Uplifting [play_collision] best 4020678 combination reg byte a [ play_collision::return#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:161 [ play_remove_lines::return#0 ] -Uplifting [play_remove_lines] best 4032222 combination reg byte a [ play_remove_lines::return#0 ] +Uplifting [play_remove_lines] best 4020672 combination reg byte a [ play_remove_lines::return#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:162 [ play_move_down::removed#0 ] -Uplifting [play_move_down] best 4032216 combination reg byte a [ play_move_down::removed#0 ] +Uplifting [play_move_down] best 4020666 combination reg byte a [ play_move_down::removed#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:165 [ play_collision::return#10 ] -Uplifting [play_collision] best 4032210 combination reg byte a [ play_collision::return#10 ] +Uplifting [play_collision] best 4020660 combination reg byte a [ play_collision::return#10 ] Attempting to uplift remaining variables inzp ZP_BYTE:193 [ keyboard_event_scan::$14 ] -Uplifting [keyboard_event_scan] best 4032204 combination reg byte a [ keyboard_event_scan::$14 ] +Uplifting [keyboard_event_scan] best 4020654 combination reg byte a [ keyboard_event_scan::$14 ] Attempting to uplift remaining variables inzp ZP_BYTE:194 [ keyboard_event_pressed::return#1 ] -Uplifting [keyboard_event_pressed] best 4032198 combination reg byte a [ keyboard_event_pressed::return#1 ] +Uplifting [keyboard_event_pressed] best 4020648 combination reg byte a [ keyboard_event_pressed::return#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:195 [ keyboard_event_scan::$18 ] -Uplifting [keyboard_event_scan] best 4032192 combination reg byte a [ keyboard_event_scan::$18 ] +Uplifting [keyboard_event_scan] best 4020642 combination reg byte a [ keyboard_event_scan::$18 ] Attempting to uplift remaining variables inzp ZP_BYTE:196 [ keyboard_event_pressed::return#2 ] -Uplifting [keyboard_event_pressed] best 4032186 combination reg byte a [ keyboard_event_pressed::return#2 ] +Uplifting [keyboard_event_pressed] best 4020636 combination reg byte a [ keyboard_event_pressed::return#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:197 [ keyboard_event_scan::$22 ] -Uplifting [keyboard_event_scan] best 4032180 combination reg byte a [ keyboard_event_scan::$22 ] +Uplifting [keyboard_event_scan] best 4020630 combination reg byte a [ keyboard_event_scan::$22 ] Attempting to uplift remaining variables inzp ZP_BYTE:198 [ keyboard_event_pressed::return#10 ] -Uplifting [keyboard_event_pressed] best 4032174 combination reg byte a [ keyboard_event_pressed::return#10 ] +Uplifting [keyboard_event_pressed] best 4020624 combination reg byte a [ keyboard_event_pressed::return#10 ] Attempting to uplift remaining variables inzp ZP_BYTE:199 [ keyboard_event_scan::$26 ] -Uplifting [keyboard_event_scan] best 4032168 combination reg byte a [ keyboard_event_scan::$26 ] +Uplifting [keyboard_event_scan] best 4020618 combination reg byte a [ keyboard_event_scan::$26 ] Attempting to uplift remaining variables inzp ZP_BYTE:140 [ play_move_rotate::key_event#0 ] -Uplifting [play_move_rotate] best 4032159 combination reg byte a [ play_move_rotate::key_event#0 ] +Uplifting [play_move_rotate] best 4020609 combination reg byte a [ play_move_rotate::key_event#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:218 [ irq_cnt#1 ] -Uplifting [] best 4032159 combination zp ZP_BYTE:218 [ irq_cnt#1 ] +Uplifting [] best 4020609 combination zp ZP_BYTE:218 [ irq_cnt#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:226 [ sprites_irq::ptr#1 ] -Uplifting [sprites_irq] best 4032149 combination reg byte a [ sprites_irq::ptr#1 ] +Uplifting [sprites_irq] best 4020599 combination reg byte a [ sprites_irq::ptr#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:212 [ sprites_irq::ypos#0 ] -Uplifting [sprites_irq] best 4032134 combination reg byte a [ sprites_irq::ypos#0 ] +Uplifting [sprites_irq] best 4020584 combination reg byte a [ sprites_irq::ypos#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:215 [ sprites_irq::ptr#0 ] -Uplifting [sprites_irq] best 4032123 combination reg byte x [ sprites_irq::ptr#0 ] +Uplifting [sprites_irq] best 4020573 combination reg byte x [ sprites_irq::ptr#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:133 [ play_move_down::key_event#0 ] -Uplifting [play_move_down] best 4032117 combination reg byte a [ play_move_down::key_event#0 ] +Uplifting [play_move_down] best 4020567 combination reg byte a [ play_move_down::key_event#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:186 [ keyboard_event_pressed::row_bits#0 ] -Uplifting [keyboard_event_pressed] best 4032117 combination zp ZP_BYTE:186 [ keyboard_event_pressed::row_bits#0 ] +Uplifting [keyboard_event_pressed] best 4020567 combination zp ZP_BYTE:186 [ keyboard_event_pressed::row_bits#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:188 [ keyboard_event_pressed::return#11 ] -Uplifting [keyboard_event_pressed] best 4032099 combination reg byte a [ keyboard_event_pressed::return#11 ] +Uplifting [keyboard_event_pressed] best 4020549 combination reg byte a [ keyboard_event_pressed::return#11 ] Attempting to uplift remaining variables inzp ZP_BYTE:45 [ play_collision::return#15 ] -Uplifting [play_collision] best 4032069 combination reg byte a [ play_collision::return#15 ] +Uplifting [play_collision] best 4020519 combination reg byte a [ play_collision::return#15 ] Attempting to uplift remaining variables inzp ZP_BYTE:80 [ keyboard_event_pressed::keycode#5 ] -Uplifting [keyboard_event_pressed] best 4032069 combination zp ZP_BYTE:80 [ keyboard_event_pressed::keycode#5 ] +Uplifting [keyboard_event_pressed] best 4020519 combination zp ZP_BYTE:80 [ keyboard_event_pressed::keycode#5 ] Attempting to uplift remaining variables inzp ZP_BYTE:163 [ play_update_score::removed#0 ] -Uplifting [play_update_score] best 4032063 combination reg byte x [ play_update_score::removed#0 ] +Uplifting [play_update_score] best 4020513 combination reg byte x [ play_update_score::removed#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:11 [ render_bcd::only_low#6 ] -Uplifting [render_bcd] best 4032042 combination reg byte y [ render_bcd::only_low#6 ] +Uplifting [render_bcd] best 4020492 combination reg byte y [ render_bcd::only_low#6 ] Attempting to uplift remaining variables inzp ZP_BYTE:139 [ play_movement::render#2 ] -Uplifting [play_movement] best 4032042 combination zp ZP_BYTE:139 [ play_movement::render#2 ] +Uplifting [play_movement] best 4020492 combination zp ZP_BYTE:139 [ play_movement::render#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:33 [ play_move_rotate::return#2 ] -Uplifting [play_move_rotate] best 4032033 combination reg byte a [ play_move_rotate::return#2 ] +Uplifting [play_move_rotate] best 4020483 combination reg byte a [ play_move_rotate::return#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:46 [ play_move_leftright::return#2 ] -Uplifting [play_move_leftright] best 4032024 combination reg byte a [ play_move_leftright::return#2 ] +Uplifting [play_move_leftright] best 4020474 combination reg byte a [ play_move_leftright::return#2 ] Attempting to uplift remaining variables inzp ZP_BYTE:65 [ play_move_down::return#3 ] -Uplifting [play_move_down] best 4032017 combination reg byte x [ play_move_down::return#3 ] +Uplifting [play_move_down] best 4020467 combination reg byte x [ play_move_down::return#3 ] Attempting to uplift remaining variables inzp ZP_BYTE:171 [ play_update_score::lines_before#0 ] -Uplifting [play_update_score] best 4032017 combination zp ZP_BYTE:171 [ play_update_score::lines_before#0 ] +Uplifting [play_update_score] best 4020467 combination zp ZP_BYTE:171 [ play_update_score::lines_before#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:111 [ render_screen_showing#0 ] -Uplifting [] best 4032017 combination zp ZP_BYTE:111 [ render_screen_showing#0 ] +Uplifting [] best 4020467 combination zp ZP_BYTE:111 [ render_screen_showing#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:112 [ irq_raster_next#0 ] -Uplifting [] best 4032017 combination zp ZP_BYTE:112 [ irq_raster_next#0 ] +Uplifting [] best 4020467 combination zp ZP_BYTE:112 [ irq_raster_next#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:113 [ irq_sprite_ypos#0 ] -Uplifting [] best 4032017 combination zp ZP_BYTE:113 [ irq_sprite_ypos#0 ] +Uplifting [] best 4020467 combination zp ZP_BYTE:113 [ irq_sprite_ypos#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:114 [ irq_sprite_ptr#0 ] -Uplifting [] best 4032017 combination zp ZP_BYTE:114 [ irq_sprite_ptr#0 ] +Uplifting [] best 4020467 combination zp ZP_BYTE:114 [ irq_sprite_ptr#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:115 [ irq_cnt#0 ] -Uplifting [] best 4032017 combination zp ZP_BYTE:115 [ irq_cnt#0 ] +Uplifting [] best 4020467 combination zp ZP_BYTE:115 [ irq_cnt#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:164 [ play_spawn_current::$3 ] -Uplifting [play_spawn_current] best 4032017 combination zp ZP_BYTE:164 [ play_spawn_current::$3 ] +Uplifting [play_spawn_current] best 4020467 combination zp ZP_BYTE:164 [ play_spawn_current::$3 ] Coalescing zero page register with common assignment [ zp ZP_WORD:5 [ render_score::screen#2 ] ] with [ zp ZP_WORD:7 [ render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 ] ] - score: 6 Coalescing zero page register with common assignment [ zp ZP_BYTE:32 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] ] with [ zp ZP_BYTE:139 [ play_movement::render#2 ] ] - score: 2 Coalescing zero page register with common assignment [ zp ZP_BYTE:110 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 ] ] with [ zp ZP_BYTE:112 [ irq_raster_next#0 ] ] - score: 2 @@ -16643,29 +16557,29 @@ Coalescing zero page register [ zp ZP_BYTE:4 [ current_movedown_counter#16 curre Coalescing zero page register [ zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 play_remove_lines::y#8 play_remove_lines::y#1 ] ] with [ zp ZP_BYTE:76 [ play_lock_current::l#6 play_lock_current::l#1 ] ] Coalescing zero page register [ zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 ] ] with [ zp ZP_BYTE:164 [ play_spawn_current::$3 ] ] Coalescing zero page register [ zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_spawn_current::$3 ] ] with [ zp ZP_BYTE:171 [ play_update_score::lines_before#0 ] ] -Coalescing zero page register [ zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 ] ] with [ zp ZP_WORD:18 [ current_piece_gfx#63 current_piece_gfx#116 current_piece_gfx#117 ] ] -Coalescing zero page register [ zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 current_piece_gfx#63 current_piece_gfx#116 current_piece_gfx#117 ] ] with [ zp ZP_WORD:29 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] ] -Coalescing zero page register [ zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 current_piece_gfx#63 current_piece_gfx#116 current_piece_gfx#117 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] ] with [ zp ZP_WORD:35 [ current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 play_collision::piece_gfx#0 ] ] -Coalescing zero page register [ zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 current_piece_gfx#63 current_piece_gfx#116 current_piece_gfx#117 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 play_collision::piece_gfx#0 ] ] with [ zp ZP_WORD:89 [ play_init::pli#2 play_init::pli#1 ] ] -Coalescing zero page register [ zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 current_piece_gfx#63 current_piece_gfx#116 current_piece_gfx#117 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 ] ] with [ zp ZP_WORD:96 [ render_init::li_1#2 render_init::li_1#1 ] ] -Coalescing zero page register [ zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 current_piece_gfx#63 current_piece_gfx#116 current_piece_gfx#117 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li_1#2 render_init::li_1#1 ] ] with [ zp ZP_WORD:101 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] ] -Coalescing zero page register [ zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 current_piece_gfx#63 current_piece_gfx#116 current_piece_gfx#117 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li_1#2 render_init::li_1#1 render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] ] with [ zp ZP_WORD:182 [ play_lock_current::playfield_line#0 ] ] +Coalescing zero page register [ zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 ] ] with [ zp ZP_WORD:18 [ current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 ] ] +Coalescing zero page register [ zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 ] ] with [ zp ZP_WORD:29 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] ] +Coalescing zero page register [ zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] ] with [ zp ZP_WORD:35 [ current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 play_collision::piece_gfx#0 ] ] +Coalescing zero page register [ zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 play_collision::piece_gfx#0 ] ] with [ zp ZP_WORD:89 [ play_init::pli#2 play_init::pli#1 ] ] +Coalescing zero page register [ zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 ] ] with [ zp ZP_WORD:96 [ render_init::li_1#2 render_init::li_1#1 ] ] +Coalescing zero page register [ zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li_1#2 render_init::li_1#1 ] ] with [ zp ZP_WORD:101 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] ] +Coalescing zero page register [ zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li_1#2 render_init::li_1#1 render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] ] with [ zp ZP_WORD:182 [ play_lock_current::playfield_line#0 ] ] Coalescing zero page register [ zp ZP_WORD:9 [ render_bcd::offset#6 render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 render_bcd::screen_pos#1 ] ] with [ zp ZP_WORD:98 [ render_init::li_2#2 render_init::li_2#1 ] ] Coalescing zero page register [ zp ZP_WORD:9 [ render_bcd::offset#6 render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 render_bcd::screen_pos#1 render_init::li_2#2 render_init::li_2#1 ] ] with [ zp ZP_WORD:103 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] ] Coalescing zero page register [ zp ZP_WORD:9 [ render_bcd::offset#6 render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 render_bcd::screen_pos#1 render_init::li_2#2 render_init::li_2#1 render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] ] with [ zp ZP_WORD:128 [ render_moving::screen_line#0 ] ] Coalescing zero page register [ zp ZP_WORD:9 [ render_bcd::offset#6 render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 render_bcd::screen_pos#1 render_init::li_2#2 render_init::li_2#1 render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 render_moving::screen_line#0 ] ] with [ zp ZP_WORD:149 [ play_collision::playfield_line#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#66 ] ] with [ zp ZP_BYTE:27 [ render_playfield::l#2 render_playfield::l#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#66 render_playfield::l#2 render_playfield::l#1 ] ] with [ zp ZP_BYTE:32 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 ] ] -Coalescing zero page register [ zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#66 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 ] ] with [ zp ZP_BYTE:70 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#66 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] ] with [ zp ZP_BYTE:77 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] ] -Coalescing zero page register [ zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#66 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] ] with [ zp ZP_BYTE:80 [ keyboard_event_pressed::keycode#5 ] ] -Coalescing zero page register [ zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#66 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 ] ] with [ zp ZP_BYTE:82 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:17 [ current_xpos#57 current_xpos#126 current_xpos#127 ] ] with [ zp ZP_BYTE:28 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:17 [ current_xpos#57 current_xpos#126 current_xpos#127 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] ] with [ zp ZP_BYTE:34 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] ] -Coalescing zero page register [ zp ZP_BYTE:17 [ current_xpos#57 current_xpos#126 current_xpos#127 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] ] with [ zp ZP_BYTE:72 [ play_remove_lines::x#2 play_remove_lines::x#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:17 [ current_xpos#57 current_xpos#126 current_xpos#127 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 ] ] with [ zp ZP_BYTE:78 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:17 [ current_xpos#57 current_xpos#126 current_xpos#127 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] ] with [ zp ZP_BYTE:85 [ 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:17 [ current_xpos#57 current_xpos#126 current_xpos#127 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::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:186 [ keyboard_event_pressed::row_bits#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 ] ] with [ zp ZP_BYTE:27 [ render_playfield::l#2 render_playfield::l#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 render_playfield::l#2 render_playfield::l#1 ] ] with [ zp ZP_BYTE:32 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 ] ] +Coalescing zero page register [ zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 ] ] with [ zp ZP_BYTE:70 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] ] with [ zp ZP_BYTE:77 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] ] +Coalescing zero page register [ zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] ] with [ zp ZP_BYTE:80 [ keyboard_event_pressed::keycode#5 ] ] +Coalescing zero page register [ zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 ] ] with [ zp ZP_BYTE:82 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:17 [ current_xpos#57 current_xpos#124 current_xpos#125 ] ] with [ zp ZP_BYTE:28 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:17 [ current_xpos#57 current_xpos#124 current_xpos#125 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] ] with [ zp ZP_BYTE:34 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] ] +Coalescing zero page register [ zp ZP_BYTE:17 [ current_xpos#57 current_xpos#124 current_xpos#125 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] ] with [ zp ZP_BYTE:72 [ play_remove_lines::x#2 play_remove_lines::x#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:17 [ current_xpos#57 current_xpos#124 current_xpos#125 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 ] ] with [ zp ZP_BYTE:78 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:17 [ current_xpos#57 current_xpos#124 current_xpos#125 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] ] with [ zp ZP_BYTE:85 [ 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:17 [ current_xpos#57 current_xpos#124 current_xpos#125 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::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:186 [ keyboard_event_pressed::row_bits#0 ] ] Coalescing zero page register [ zp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] ] with [ zp ZP_BYTE:31 [ render_playfield::c#2 render_playfield::c#1 ] ] Coalescing zero page register [ zp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 render_playfield::c#2 render_playfield::c#1 ] ] with [ zp ZP_BYTE:38 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] ] Coalescing zero page register [ zp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] ] with [ zp ZP_BYTE:73 [ play_remove_lines::full#4 play_remove_lines::full#2 ] ] @@ -16673,7 +16587,7 @@ Coalescing zero page register [ zp ZP_BYTE:21 [ render_moving::ypos2#2 render_mo Coalescing zero page register [ zp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::i#1 ] ] with [ zp ZP_BYTE:191 [ keyboard_event_scan::row_scan#0 ] ] Coalescing zero page register [ zp ZP_BYTE:22 [ render_moving::l#4 render_moving::l#1 ] ] with [ zp ZP_BYTE:39 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] ] Coalescing zero page register [ zp ZP_BYTE:22 [ render_moving::l#4 render_moving::l#1 play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] ] with [ zp ZP_BYTE:181 [ play_remove_lines::c#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:23 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#10 render_moving::i#1 ] ] with [ zp ZP_BYTE:41 [ play_collision::l#6 play_collision::l#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:23 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] ] with [ zp ZP_BYTE:41 [ play_collision::l#6 play_collision::l#1 ] ] Coalescing zero page register [ zp ZP_BYTE:24 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] ] with [ zp ZP_BYTE:42 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] ] Coalescing zero page register [ zp ZP_BYTE:25 [ render_moving::c#2 render_moving::c#1 ] ] with [ zp ZP_BYTE:43 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] ] Coalescing zero page register [ zp ZP_WORD:49 [ lines_bcd#27 lines_bcd#17 lines_bcd#19 lines_bcd#15 lines_bcd#30 ] ] with [ zp ZP_WORD:105 [ render_screen_original::screen#7 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#9 render_screen_original::screen#10 render_screen_original::screen#2 render_screen_original::screen#3 ] ] @@ -16683,11 +16597,11 @@ Coalescing zero page register [ zp ZP_BYTE:113 [ irq_sprite_ypos#0 irq_sprite_yp Coalescing zero page register [ zp ZP_BYTE:114 [ irq_sprite_ptr#0 irq_sprite_ptr#3 irq_sprite_ptr#2 ] ] with [ zp ZP_BYTE:225 [ irq_sprite_ptr#1 ] ] Coalescing zero page register [ zp ZP_BYTE:115 [ irq_cnt#0 irq_cnt#1 ] ] with [ zp ZP_BYTE:221 [ irq_cnt#2 ] ] Allocated (was zp ZP_WORD:9) zp ZP_WORD:7 [ render_bcd::offset#6 render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 render_bcd::screen_pos#1 render_init::li_2#2 render_init::li_2#1 render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 render_moving::screen_line#0 play_collision::playfield_line#0 ] -Allocated (was zp ZP_BYTE:16) zp ZP_BYTE:9 [ render_screen_render#30 render_screen_render#66 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Allocated (was zp ZP_BYTE:17) zp ZP_BYTE:10 [ current_xpos#57 current_xpos#126 current_xpos#127 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 keyboard_event_pressed::row_bits#0 ] +Allocated (was zp ZP_BYTE:16) zp ZP_BYTE:9 [ render_screen_render#30 render_screen_render#64 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Allocated (was zp ZP_BYTE:17) zp ZP_BYTE:10 [ current_xpos#57 current_xpos#124 current_xpos#125 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 keyboard_event_pressed::row_bits#0 ] Allocated (was zp ZP_BYTE:21) zp ZP_BYTE:11 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::i#1 keyboard_event_scan::row_scan#0 ] Allocated (was zp ZP_BYTE:22) zp ZP_BYTE:12 [ render_moving::l#4 render_moving::l#1 play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 play_remove_lines::c#0 ] -Allocated (was zp ZP_BYTE:23) zp ZP_BYTE:13 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#10 render_moving::i#1 play_collision::l#6 play_collision::l#1 ] +Allocated (was zp ZP_BYTE:23) zp ZP_BYTE:13 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 play_collision::l#6 play_collision::l#1 ] Allocated (was zp ZP_BYTE:24) zp ZP_BYTE:14 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] Allocated (was zp ZP_BYTE:25) zp ZP_BYTE:15 [ render_moving::c#2 render_moving::c#1 play_collision::col#2 play_collision::col#9 play_collision::col#1 ] Allocated (was zp ZP_BYTE:48) zp ZP_BYTE:16 [ current_ypos#36 current_ypos#25 current_ypos#17 current_ypos#22 current_ypos#2 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] @@ -16699,8 +16613,8 @@ Allocated (was zp ZP_BYTE:57) zp ZP_BYTE:25 [ level_bcd#32 level_bcd#19 level_bc Allocated (was zp ZP_WORD:58) zp ZP_WORD:26 [ current_piece#27 current_piece#95 current_piece#20 current_piece#14 current_piece#88 render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 ] Allocated (was zp ZP_BYTE:60) zp ZP_BYTE:28 [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] Allocated (was zp ZP_BYTE:61) zp ZP_BYTE:29 [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] -Allocated (was zp ZP_WORD:62) zp ZP_WORD:30 [ current_piece_gfx#33 current_piece_gfx#105 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] -Allocated (was zp ZP_BYTE:64) zp ZP_BYTE:32 [ current_xpos#41 current_xpos#115 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] +Allocated (was zp ZP_WORD:62) zp ZP_WORD:30 [ current_piece_gfx#33 current_piece_gfx#103 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] +Allocated (was zp ZP_BYTE:64) zp ZP_BYTE:32 [ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] Allocated (was zp ZP_BYTE:66) zp ZP_BYTE:33 [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] Allocated (was zp ZP_BYTE:86) zp ZP_BYTE:34 [ 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:110) zp ZP_BYTE:35 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 irq_raster_next#0 ] @@ -16713,9 +16627,9 @@ Allocated (was zp ZP_BYTE:151) zp ZP_BYTE:41 [ play_collision::i#1 ] Allocated (was zp ZP_DWORD:173) zp ZP_DWORD:42 [ play_update_score::add_bcd#0 ] Allocated (was zp ZP_BYTE:214) zp ZP_BYTE:46 [ sprites_irq::raster_sprite_gfx_modify#0 ] Interrupt procedure sprites_irq clobbers AXCNZV -Removing interrupt register storage sty regy+1 in SEG1142 entry interrupt(HARDWARE_CLOBBER) -Removing interrupt register storage regy: in SEG1178 [552] return - exit interrupt(HARDWARE_CLOBBER) -Removing interrupt register storage ldy #00 in SEG1178 [552] return - exit interrupt(HARDWARE_CLOBBER) +Removing interrupt register storage sty regy+1 in SEG1138 entry interrupt(HARDWARE_CLOBBER) +Removing interrupt register storage regy: in SEG1174 [550] return - exit interrupt(HARDWARE_CLOBBER) +Removing interrupt register storage ldy #00 in SEG1174 [550] return - exit interrupt(HARDWARE_CLOBBER) ASSEMBLER BEFORE OPTIMIZATION //SEG0 Basic Upstart @@ -16822,12 +16736,12 @@ ASSEMBLER BEFORE OPTIMIZATION .label current_piece_16 = 5 .label render_screen_render_30 = 9 .label current_xpos_57 = $a - .label current_piece_gfx_63 = 5 - .label render_screen_render_66 = 9 - .label current_xpos_126 = $a - .label current_xpos_127 = $a - .label current_piece_gfx_116 = 5 - .label current_piece_gfx_117 = 5 + .label current_piece_gfx_62 = 5 + .label render_screen_render_64 = 9 + .label current_xpos_124 = $a + .label current_xpos_125 = $a + .label current_piece_gfx_114 = 5 + .label current_piece_gfx_115 = 5 .label current_piece_90 = 5 .label current_piece_91 = 5 .label current_piece_92 = 5 @@ -16895,7 +16809,7 @@ main: { //SEG27 asm { sei } sei //SEG28 [17] call render_init - //SEG29 [472] phi from main::@25 to render_init [phi:main::@25->render_init] + //SEG29 [470] phi from main::@25 to render_init [phi:main::@25->render_init] render_init_from_b25: jsr render_init //SEG30 [18] phi from main::@25 to main::@26 [phi:main::@25->main::@26] @@ -16918,7 +16832,7 @@ main: { //SEG37 main::@28 b28: //SEG38 [23] call play_init - //SEG39 [431] phi from main::@28 to play_init [phi:main::@28->play_init] + //SEG39 [429] phi from main::@28 to play_init [phi:main::@28->play_init] play_init_from_b28: jsr play_init //SEG40 [24] phi from main::@28 to main::@29 [phi:main::@28->main::@29] @@ -16927,9 +16841,9 @@ main: { //SEG41 main::@29 b29: //SEG42 [25] call play_spawn_current - //SEG43 [259] phi from main::@29 to play_spawn_current [phi:main::@29->play_spawn_current] + //SEG43 [257] phi from main::@29 to play_spawn_current [phi:main::@29->play_spawn_current] play_spawn_current_from_b29: - //SEG44 [259] phi (byte) game_over#70 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@29->play_spawn_current#0] -- vbuz1=vbuc1 + //SEG44 [257] phi (byte) game_over#70 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@29->play_spawn_current#0] -- vbuz1=vbuc1 lda #0 sta game_over jsr play_spawn_current @@ -16939,9 +16853,9 @@ main: { //SEG46 main::@30 b30: //SEG47 [27] call render_playfield - //SEG48 [124] phi from main::@30 to render_playfield [phi:main::@30->render_playfield] + //SEG48 [122] phi from main::@30 to render_playfield [phi:main::@30->render_playfield] render_playfield_from_b30: - //SEG49 [124] phi (byte) render_screen_render#21 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@30->render_playfield#0] -- vbuxx=vbuc1 + //SEG49 [122] phi (byte) render_screen_render#21 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@30->render_playfield#0] -- vbuxx=vbuc1 ldx #$40 jsr render_playfield jmp b31 @@ -16949,22 +16863,22 @@ main: { b31: //SEG51 [28] (byte~) current_ypos#100 ← (byte) current_ypos#22 -- vbuyy=vbuz1 ldy current_ypos - //SEG52 [29] (byte~) current_xpos#126 ← (byte) current_xpos#28 -- vbuz1=vbuz2 + //SEG52 [29] (byte~) current_xpos#124 ← (byte) current_xpos#28 -- vbuz1=vbuz2 lda current_xpos - sta current_xpos_126 - //SEG53 [30] (byte*~) current_piece_gfx#116 ← (byte*) current_piece_gfx#21 -- pbuz1=pbuz2 + sta current_xpos_124 + //SEG53 [30] (byte*~) current_piece_gfx#114 ← (byte*) current_piece_gfx#21 -- pbuz1=pbuz2 lda current_piece_gfx - sta current_piece_gfx_116 + sta current_piece_gfx_114 lda current_piece_gfx+1 - sta current_piece_gfx_116+1 - //SEG54 [31] (byte~) current_piece_char#104 ← (byte) current_piece_char#16 -- vbuxx=vbuz1 + sta current_piece_gfx_114+1 + //SEG54 [31] (byte~) current_piece_char#102 ← (byte) current_piece_char#16 -- vbuxx=vbuz1 ldx current_piece_char //SEG55 [32] call render_moving //SEG56 [101] phi from main::@31 to render_moving [phi:main::@31->render_moving] render_moving_from_b31: - //SEG57 [101] phi (byte) current_piece_char#76 = (byte~) current_piece_char#104 [phi:main::@31->render_moving#0] -- register_copy - //SEG58 [101] phi (byte*) current_piece_gfx#63 = (byte*~) current_piece_gfx#116 [phi:main::@31->render_moving#1] -- register_copy - //SEG59 [101] phi (byte) current_xpos#57 = (byte~) current_xpos#126 [phi:main::@31->render_moving#2] -- register_copy + //SEG57 [101] phi (byte) current_piece_char#64 = (byte~) current_piece_char#102 [phi:main::@31->render_moving#0] -- register_copy + //SEG58 [101] phi (byte*) current_piece_gfx#62 = (byte*~) current_piece_gfx#114 [phi:main::@31->render_moving#1] -- register_copy + //SEG59 [101] phi (byte) current_xpos#57 = (byte~) current_xpos#124 [phi:main::@31->render_moving#2] -- register_copy //SEG60 [101] phi (byte) render_screen_render#30 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@31->render_moving#3] -- vbuz1=vbuc1 lda #$40 sta render_screen_render_30 @@ -17004,8 +16918,8 @@ main: { sta keyboard_events_size //SEG70 [34] phi (byte) game_over#19 = (byte) game_over#15 [phi:main::@31->main::@1#6] -- register_copy //SEG71 [34] phi (byte) current_ypos#25 = (byte) current_ypos#22 [phi:main::@31->main::@1#7] -- register_copy - //SEG72 [34] phi (byte) current_xpos#115 = (byte) current_xpos#28 [phi:main::@31->main::@1#8] -- register_copy - //SEG73 [34] phi (byte*) current_piece_gfx#105 = (byte*) current_piece_gfx#21 [phi:main::@31->main::@1#9] -- register_copy + //SEG72 [34] phi (byte) current_xpos#113 = (byte) current_xpos#28 [phi:main::@31->main::@1#8] -- register_copy + //SEG73 [34] phi (byte*) current_piece_gfx#103 = (byte*) current_piece_gfx#21 [phi:main::@31->main::@1#9] -- register_copy //SEG74 [34] phi (byte) current_orientation#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#10] -- vbuz1=vbuc1 lda #0 sta current_orientation @@ -17029,8 +16943,8 @@ main: { //SEG86 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@11->main::@1#5] -- register_copy //SEG87 [34] phi (byte) game_over#19 = (byte) game_over#14 [phi:main::@11->main::@1#6] -- register_copy //SEG88 [34] phi (byte) current_ypos#25 = (byte) current_ypos#17 [phi:main::@11->main::@1#7] -- register_copy - //SEG89 [34] phi (byte) current_xpos#115 = (byte) current_xpos#17 [phi:main::@11->main::@1#8] -- register_copy - //SEG90 [34] phi (byte*) current_piece_gfx#105 = (byte*) current_piece_gfx#16 [phi:main::@11->main::@1#9] -- register_copy + //SEG89 [34] phi (byte) current_xpos#113 = (byte) current_xpos#17 [phi:main::@11->main::@1#8] -- register_copy + //SEG90 [34] phi (byte*) current_piece_gfx#103 = (byte*) current_piece_gfx#16 [phi:main::@11->main::@1#9] -- register_copy //SEG91 [34] phi (byte) current_orientation#12 = (byte) current_orientation#16 [phi:main::@11->main::@1#10] -- register_copy //SEG92 [34] phi (byte) current_piece_char#19 = (byte) current_piece_char#14 [phi:main::@11->main::@1#11] -- register_copy //SEG93 [34] phi (byte*) current_piece#20 = (byte*) current_piece#14 [phi:main::@11->main::@1#12] -- register_copy @@ -17058,7 +16972,7 @@ main: { //SEG102 main::@33 b33: //SEG103 [39] call keyboard_event_scan - //SEG104 [368] phi from main::@33 to keyboard_event_scan [phi:main::@33->keyboard_event_scan] + //SEG104 [366] phi from main::@33 to keyboard_event_scan [phi:main::@33->keyboard_event_scan] keyboard_event_scan_from_b33: jsr keyboard_event_scan //SEG105 [40] phi from main::@33 to main::@34 [phi:main::@33->main::@34] @@ -17107,38 +17021,38 @@ main: { jmp b23 //SEG122 main::@23 b23: - //SEG123 [51] (byte~) render_screen_render#67 ← (byte) render_screen_render#17 -- vbuxx=vbuz1 + //SEG123 [51] (byte~) render_screen_render#65 ← (byte) render_screen_render#17 -- vbuxx=vbuz1 ldx render_screen_render //SEG124 [52] call render_playfield - //SEG125 [124] phi from main::@23 to render_playfield [phi:main::@23->render_playfield] + //SEG125 [122] phi from main::@23 to render_playfield [phi:main::@23->render_playfield] render_playfield_from_b23: - //SEG126 [124] phi (byte) render_screen_render#21 = (byte~) render_screen_render#67 [phi:main::@23->render_playfield#0] -- register_copy + //SEG126 [122] phi (byte) render_screen_render#21 = (byte~) render_screen_render#65 [phi:main::@23->render_playfield#0] -- register_copy jsr render_playfield jmp b37 //SEG127 main::@37 b37: //SEG128 [53] (byte~) current_ypos#101 ← (byte) current_ypos#17 -- vbuyy=vbuz1 ldy current_ypos - //SEG129 [54] (byte~) render_screen_render#66 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 + //SEG129 [54] (byte~) render_screen_render#64 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 lda render_screen_render - sta render_screen_render_66 - //SEG130 [55] (byte~) current_xpos#127 ← (byte) current_xpos#17 -- vbuz1=vbuz2 + sta render_screen_render_64 + //SEG130 [55] (byte~) current_xpos#125 ← (byte) current_xpos#17 -- vbuz1=vbuz2 lda current_xpos - sta current_xpos_127 - //SEG131 [56] (byte*~) current_piece_gfx#117 ← (byte*) current_piece_gfx#16 -- pbuz1=pbuz2 + sta current_xpos_125 + //SEG131 [56] (byte*~) current_piece_gfx#115 ← (byte*) current_piece_gfx#16 -- pbuz1=pbuz2 lda current_piece_gfx - sta current_piece_gfx_117 + sta current_piece_gfx_115 lda current_piece_gfx+1 - sta current_piece_gfx_117+1 - //SEG132 [57] (byte~) current_piece_char#105 ← (byte) current_piece_char#14 -- vbuxx=vbuz1 + sta current_piece_gfx_115+1 + //SEG132 [57] (byte~) current_piece_char#103 ← (byte) current_piece_char#14 -- vbuxx=vbuz1 ldx current_piece_char //SEG133 [58] call render_moving //SEG134 [101] phi from main::@37 to render_moving [phi:main::@37->render_moving] render_moving_from_b37: - //SEG135 [101] phi (byte) current_piece_char#76 = (byte~) current_piece_char#105 [phi:main::@37->render_moving#0] -- register_copy - //SEG136 [101] phi (byte*) current_piece_gfx#63 = (byte*~) current_piece_gfx#117 [phi:main::@37->render_moving#1] -- register_copy - //SEG137 [101] phi (byte) current_xpos#57 = (byte~) current_xpos#127 [phi:main::@37->render_moving#2] -- register_copy - //SEG138 [101] phi (byte) render_screen_render#30 = (byte~) render_screen_render#66 [phi:main::@37->render_moving#3] -- register_copy + //SEG135 [101] phi (byte) current_piece_char#64 = (byte~) current_piece_char#103 [phi:main::@37->render_moving#0] -- register_copy + //SEG136 [101] phi (byte*) current_piece_gfx#62 = (byte*~) current_piece_gfx#115 [phi:main::@37->render_moving#1] -- register_copy + //SEG137 [101] phi (byte) current_xpos#57 = (byte~) current_xpos#125 [phi:main::@37->render_moving#2] -- register_copy + //SEG138 [101] phi (byte) render_screen_render#30 = (byte~) render_screen_render#64 [phi:main::@37->render_moving#3] -- register_copy //SEG139 [101] phi (byte) current_ypos#11 = (byte~) current_ypos#101 [phi:main::@37->render_moving#4] -- register_copy jsr render_moving //SEG140 [59] phi from main::@37 to main::@38 [phi:main::@37->main::@38] @@ -17165,8 +17079,8 @@ main: { //SEG152 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@39->main::@1#5] -- register_copy //SEG153 [34] phi (byte) game_over#19 = (byte) game_over#14 [phi:main::@39->main::@1#6] -- register_copy //SEG154 [34] phi (byte) current_ypos#25 = (byte) current_ypos#17 [phi:main::@39->main::@1#7] -- register_copy - //SEG155 [34] phi (byte) current_xpos#115 = (byte) current_xpos#17 [phi:main::@39->main::@1#8] -- register_copy - //SEG156 [34] phi (byte*) current_piece_gfx#105 = (byte*) current_piece_gfx#16 [phi:main::@39->main::@1#9] -- register_copy + //SEG155 [34] phi (byte) current_xpos#113 = (byte) current_xpos#17 [phi:main::@39->main::@1#8] -- register_copy + //SEG156 [34] phi (byte*) current_piece_gfx#103 = (byte*) current_piece_gfx#16 [phi:main::@39->main::@1#9] -- register_copy //SEG157 [34] phi (byte) current_orientation#12 = (byte) current_orientation#16 [phi:main::@39->main::@1#10] -- register_copy //SEG158 [34] phi (byte) current_piece_char#19 = (byte) current_piece_char#14 [phi:main::@39->main::@1#11] -- register_copy //SEG159 [34] phi (byte*) current_piece#20 = (byte*) current_piece#14 [phi:main::@39->main::@1#12] -- register_copy @@ -17444,24 +17358,24 @@ render_moving: { jmp b1 //SEG259 render_moving::@1 b1: - //SEG260 [104] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@13 -- vbuz1_gt_vbuc1_then_la1 + //SEG260 [104] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@2 -- vbuz1_gt_vbuc1_then_la1 lda ypos2 cmp #2 beq !+ - bcs b13 + bcs b2 !: - jmp b7 - //SEG261 render_moving::@7 - b7: + jmp b6 + //SEG261 render_moving::@6 + b6: //SEG262 [105] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz1_plus_vbuc1 lda #4 clc adc i sta i - //SEG263 [106] phi from render_moving::@5 render_moving::@7 to render_moving::@3 [phi:render_moving::@5/render_moving::@7->render_moving::@3] + //SEG263 [106] phi from render_moving::@5 render_moving::@6 to render_moving::@3 [phi:render_moving::@5/render_moving::@6->render_moving::@3] b3_from_b5: - b3_from_b7: - //SEG264 [106] phi (byte) render_moving::i#8 = (byte) render_moving::i#10 [phi:render_moving::@5/render_moving::@7->render_moving::@3#0] -- register_copy + b3_from_b6: + //SEG264 [106] phi (byte) render_moving::i#8 = (byte) render_moving::i#2 [phi:render_moving::@5/render_moving::@6->render_moving::@3#0] -- register_copy jmp b3 //SEG265 render_moving::@3 b3: @@ -17481,311 +17395,297 @@ render_moving: { breturn: //SEG270 [110] return rts - //SEG271 render_moving::@13 - b13: - //SEG272 [111] if((byte) render_moving::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_moving::@2 -- vbuz1_lt_vbuc1_then_la1 - lda ypos2 - cmp #2*PLAYFIELD_LINES - bcc b2 - jmp b7 - //SEG273 render_moving::@2 + //SEG271 render_moving::@2 b2: - //SEG274 [112] (byte~) render_moving::$5 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 -- vbuaa=vbuz1_plus_vbuz2 + //SEG272 [111] (byte~) render_moving::$2 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 -- vbuaa=vbuz1_plus_vbuz2 lda render_screen_render_30 clc adc ypos2 - //SEG275 [113] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$5) -- pbuz1=pptc1_derefidx_vbuaa + //SEG273 [112] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$2) -- pbuz1=pptc1_derefidx_vbuaa tay lda screen_lines_1,y sta screen_line lda screen_lines_1+1,y sta screen_line+1 - //SEG276 [114] (byte) render_moving::xpos#0 ← (byte) current_xpos#57 -- vbuz1=vbuz2 + //SEG274 [113] (byte) render_moving::xpos#0 ← (byte) current_xpos#57 -- vbuz1=vbuz2 lda current_xpos_57 sta xpos - //SEG277 [115] phi from render_moving::@2 to render_moving::@4 [phi:render_moving::@2->render_moving::@4] + //SEG275 [114] phi from render_moving::@2 to render_moving::@4 [phi:render_moving::@2->render_moving::@4] b4_from_b2: - //SEG278 [115] phi (byte) render_moving::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving::@2->render_moving::@4#0] -- vbuz1=vbuc1 + //SEG276 [114] phi (byte) render_moving::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving::@2->render_moving::@4#0] -- vbuz1=vbuc1 lda #0 sta c - //SEG279 [115] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#0 [phi:render_moving::@2->render_moving::@4#1] -- register_copy - //SEG280 [115] phi (byte) render_moving::i#4 = (byte) render_moving::i#3 [phi:render_moving::@2->render_moving::@4#2] -- register_copy + //SEG277 [114] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#0 [phi:render_moving::@2->render_moving::@4#1] -- register_copy + //SEG278 [114] phi (byte) render_moving::i#4 = (byte) render_moving::i#3 [phi:render_moving::@2->render_moving::@4#2] -- register_copy jmp b4 - //SEG281 [115] phi from render_moving::@5 to render_moving::@4 [phi:render_moving::@5->render_moving::@4] + //SEG279 [114] phi from render_moving::@5 to render_moving::@4 [phi:render_moving::@5->render_moving::@4] b4_from_b5: - //SEG282 [115] phi (byte) render_moving::c#2 = (byte) render_moving::c#1 [phi:render_moving::@5->render_moving::@4#0] -- register_copy - //SEG283 [115] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#1 [phi:render_moving::@5->render_moving::@4#1] -- register_copy - //SEG284 [115] phi (byte) render_moving::i#4 = (byte) render_moving::i#10 [phi:render_moving::@5->render_moving::@4#2] -- register_copy + //SEG280 [114] phi (byte) render_moving::c#2 = (byte) render_moving::c#1 [phi:render_moving::@5->render_moving::@4#0] -- register_copy + //SEG281 [114] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#1 [phi:render_moving::@5->render_moving::@4#1] -- register_copy + //SEG282 [114] phi (byte) render_moving::i#4 = (byte) render_moving::i#2 [phi:render_moving::@5->render_moving::@4#2] -- register_copy jmp b4 - //SEG285 render_moving::@4 + //SEG283 render_moving::@4 b4: - //SEG286 [116] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_moving::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 + //SEG284 [115] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#62 + (byte) render_moving::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 ldy i - lda (current_piece_gfx_63),y - //SEG287 [117] (byte) render_moving::i#10 ← ++ (byte) render_moving::i#4 -- vbuz1=_inc_vbuz1 + lda (current_piece_gfx_62),y + //SEG285 [116] (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 -- vbuz1=_inc_vbuz1 inc i - //SEG288 [118] if((byte) render_moving::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_moving::@5 -- vbuaa_eq_0_then_la1 + //SEG286 [117] if((byte) render_moving::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_moving::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq b5 - jmp b9 - //SEG289 render_moving::@9 - b9: - //SEG290 [119] if((byte) render_moving::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_moving::@5 -- vbuz1_ge_vbuc1_then_la1 - lda xpos - cmp #PLAYFIELD_COLS - bcs b5 - jmp b10 - //SEG291 render_moving::@10 - b10: - //SEG292 [120] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#76 -- pbuz1_derefidx_vbuz2=vbuxx + jmp b8 + //SEG287 render_moving::@8 + b8: + //SEG288 [118] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#64 -- pbuz1_derefidx_vbuz2=vbuxx ldy xpos txa sta (screen_line),y jmp b5 - //SEG293 render_moving::@5 + //SEG289 render_moving::@5 b5: - //SEG294 [121] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG290 [119] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG295 [122] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 -- vbuz1=_inc_vbuz1 + //SEG291 [120] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG296 [123] if((byte) render_moving::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG292 [121] if((byte) render_moving::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@4 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #4 bne b4_from_b5 jmp b3_from_b5 } -//SEG297 render_playfield +//SEG293 render_playfield render_playfield: { .label screen_line = 5 .label i = $a .label c = $b .label l = 9 - //SEG298 [125] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + //SEG294 [123] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] b1_from_render_playfield: - //SEG299 [125] phi (byte) render_playfield::i#3 = (const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 + //SEG295 [123] phi (byte) render_playfield::i#3 = (const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 lda #PLAYFIELD_COLS*2 sta i - //SEG300 [125] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 + //SEG296 [123] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 lda #2 sta l jmp b1 - //SEG301 [125] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG297 [123] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] b1_from_b3: - //SEG302 [125] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG303 [125] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //SEG298 [123] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + //SEG299 [123] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy jmp b1 - //SEG304 render_playfield::@1 + //SEG300 render_playfield::@1 b1: - //SEG305 [126] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 + //SEG301 [124] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 lda l asl - //SEG306 [127] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 -- vbuaa=vbuxx_plus_vbuaa + //SEG302 [125] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 -- vbuaa=vbuxx_plus_vbuaa stx $ff clc adc $ff - //SEG307 [128] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuaa + //SEG303 [126] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuaa tay lda screen_lines_1,y sta screen_line lda screen_lines_1+1,y sta screen_line+1 - //SEG308 [129] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG304 [127] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] b2_from_b1: - //SEG309 [129] 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 + //SEG305 [127] 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 - //SEG310 [129] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG311 [129] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //SEG306 [127] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + //SEG307 [127] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy jmp b2 - //SEG312 [129] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG308 [127] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] b2_from_b2: - //SEG313 [129] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG314 [129] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG315 [129] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //SEG309 [127] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + //SEG310 [127] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + //SEG311 [127] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy jmp b2 - //SEG316 render_playfield::@2 + //SEG312 render_playfield::@2 b2: - //SEG317 [130] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG313 [128] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy i lda playfield,y ldy #0 sta (screen_line),y - //SEG318 [131] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 + //SEG314 [129] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 inc screen_line bne !+ inc screen_line+1 !: - //SEG319 [132] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG315 [130] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG320 [133] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 + //SEG316 [131] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG321 [134] 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 + //SEG317 [132] 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 - //SEG322 render_playfield::@3 + //SEG318 render_playfield::@3 b3: - //SEG323 [135] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG319 [133] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG324 [136] 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 + //SEG320 [134] 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 - //SEG325 render_playfield::@return + //SEG321 render_playfield::@return breturn: - //SEG326 [137] return + //SEG322 [135] return rts } -//SEG327 play_movement +//SEG323 play_movement play_movement: { .label render = 9 .label return = 9 .label key_event = $28 - //SEG328 [138] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 + //SEG324 [136] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG329 [139] call play_move_down + //SEG325 [137] call play_move_down jsr play_move_down - //SEG330 [140] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuaa=vbuxx + //SEG326 [138] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuaa=vbuxx txa jmp b5 - //SEG331 play_movement::@5 + //SEG327 play_movement::@5 b5: - //SEG332 [141] (byte~) play_movement::$0 ← (byte) play_move_down::return#0 + //SEG328 [139] (byte~) play_movement::$0 ← (byte) play_move_down::return#0 // (byte~) play_movement::$0 = (byte) play_move_down::return#0 // register copy reg byte a - //SEG333 [142] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 -- vbuz1=vbuc1_plus_vbuaa + //SEG329 [140] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 -- vbuz1=vbuc1_plus_vbuaa clc adc #0 sta render - //SEG334 [143] if((byte) game_over#14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movement::@1 -- vbuz1_eq_0_then_la1 + //SEG330 [141] if((byte) game_over#14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movement::@1 -- vbuz1_eq_0_then_la1 lda game_over cmp #0 beq b1 - //SEG335 [144] phi from play_movement::@5 play_movement::@7 to play_movement::@return [phi:play_movement::@5/play_movement::@7->play_movement::@return] + //SEG331 [142] phi from play_movement::@5 play_movement::@7 to play_movement::@return [phi:play_movement::@5/play_movement::@7->play_movement::@return] breturn_from_b5: breturn_from_b7: - //SEG336 [144] phi (byte) current_xpos#17 = (byte) current_xpos#20 [phi:play_movement::@5/play_movement::@7->play_movement::@return#0] -- register_copy - //SEG337 [144] phi (byte*) current_piece_gfx#16 = (byte*) current_piece_gfx#18 [phi:play_movement::@5/play_movement::@7->play_movement::@return#1] -- register_copy - //SEG338 [144] phi (byte) current_orientation#16 = (byte) current_orientation#19 [phi:play_movement::@5/play_movement::@7->play_movement::@return#2] -- register_copy - //SEG339 [144] phi (byte) play_movement::return#2 = (byte) play_movement::render#1 [phi:play_movement::@5/play_movement::@7->play_movement::@return#3] -- register_copy + //SEG332 [142] phi (byte) current_xpos#17 = (byte) current_xpos#20 [phi:play_movement::@5/play_movement::@7->play_movement::@return#0] -- register_copy + //SEG333 [142] phi (byte*) current_piece_gfx#16 = (byte*) current_piece_gfx#18 [phi:play_movement::@5/play_movement::@7->play_movement::@return#1] -- register_copy + //SEG334 [142] phi (byte) current_orientation#16 = (byte) current_orientation#19 [phi:play_movement::@5/play_movement::@7->play_movement::@return#2] -- register_copy + //SEG335 [142] phi (byte) play_movement::return#2 = (byte) play_movement::render#1 [phi:play_movement::@5/play_movement::@7->play_movement::@return#3] -- register_copy jmp breturn - //SEG340 play_movement::@return + //SEG336 play_movement::@return breturn: - //SEG341 [145] return + //SEG337 [143] return rts - //SEG342 play_movement::@1 + //SEG338 play_movement::@1 b1: - //SEG343 [146] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 + //SEG339 [144] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG344 [147] call play_move_leftright + //SEG340 [145] call play_move_leftright jsr play_move_leftright - //SEG345 [148] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 + //SEG341 [146] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 // (byte) play_move_leftright::return#0 = (byte) play_move_leftright::return#2 // register copy reg byte a jmp b6 - //SEG346 play_movement::@6 + //SEG342 play_movement::@6 b6: - //SEG347 [149] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 + //SEG343 [147] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 // (byte~) play_movement::$3 = (byte) play_move_leftright::return#0 // register copy reg byte a - //SEG348 [150] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 -- vbuz1=vbuz1_plus_vbuaa + //SEG344 [148] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 -- vbuz1=vbuz1_plus_vbuaa clc adc render sta render - //SEG349 [151] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 + //SEG345 [149] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG350 [152] call play_move_rotate + //SEG346 [150] call play_move_rotate jsr play_move_rotate - //SEG351 [153] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 + //SEG347 [151] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 // (byte) play_move_rotate::return#0 = (byte) play_move_rotate::return#2 // register copy reg byte a jmp b7 - //SEG352 play_movement::@7 + //SEG348 play_movement::@7 b7: - //SEG353 [154] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 + //SEG349 [152] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 // (byte~) play_movement::$4 = (byte) play_move_rotate::return#0 // register copy reg byte a - //SEG354 [155] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 -- vbuz1=vbuz1_plus_vbuaa + //SEG350 [153] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 -- vbuz1=vbuz1_plus_vbuaa clc adc return sta return jmp breturn_from_b7 } -//SEG355 play_move_rotate +//SEG351 play_move_rotate play_move_rotate: { .label orientation = $a - //SEG356 [156] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG352 [154] 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 - //SEG357 play_move_rotate::@6 + //SEG353 play_move_rotate::@6 b6: - //SEG358 [157] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 + //SEG354 [155] 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 - //SEG359 [158] 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] + //SEG355 [156] 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: - //SEG360 [158] phi (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#18 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy - //SEG361 [158] phi (byte) current_orientation#24 = (byte) current_orientation#19 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy - //SEG362 [158] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 + //SEG356 [156] phi (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#18 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + //SEG357 [156] phi (byte) current_orientation#24 = (byte) current_orientation#19 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy + //SEG358 [156] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #0 jmp breturn - //SEG363 play_move_rotate::@return + //SEG359 play_move_rotate::@return breturn: - //SEG364 [159] return + //SEG360 [157] return rts - //SEG365 play_move_rotate::@2 + //SEG361 play_move_rotate::@2 b2: - //SEG366 [160] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#19 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 + //SEG362 [158] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#19 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 lda #$10 clc adc current_orientation - //SEG367 [161] (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 + //SEG363 [159] (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 - //SEG368 [162] 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] + //SEG364 [160] 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: - //SEG369 [162] 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 + //SEG365 [160] 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 - //SEG370 play_move_rotate::@4 + //SEG366 play_move_rotate::@4 b4: - //SEG371 [163] (byte) play_collision::xpos#3 ← (byte) current_xpos#24 -- vbuz1=vbuz2 + //SEG367 [161] (byte) play_collision::xpos#3 ← (byte) current_xpos#24 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG372 [164] (byte) play_collision::ypos#3 ← (byte) current_ypos#17 -- vbuz1=vbuz2 + //SEG368 [162] (byte) play_collision::ypos#3 ← (byte) current_ypos#17 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG373 [165] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 + //SEG369 [163] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 ldx orientation - //SEG374 [166] (byte*~) current_piece#93 ← (byte*) current_piece#14 -- pbuz1=pbuz2 + //SEG370 [164] (byte*~) current_piece#93 ← (byte*) current_piece#14 -- pbuz1=pbuz2 lda current_piece sta current_piece_93 lda current_piece+1 sta current_piece_93+1 - //SEG375 [167] call play_collision - //SEG376 [175] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] + //SEG371 [165] call play_collision + //SEG372 [173] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] play_collision_from_b4: - //SEG377 [175] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy - //SEG378 [175] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy - //SEG379 [175] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy - //SEG380 [175] phi (byte*) current_piece#16 = (byte*~) current_piece#93 [phi:play_move_rotate::@4->play_collision#3] -- register_copy + //SEG373 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy + //SEG374 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy + //SEG375 [173] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy + //SEG376 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#93 [phi:play_move_rotate::@4->play_collision#3] -- register_copy jsr play_collision - //SEG381 [168] (byte) play_collision::return#14 ← (byte) play_collision::return#15 + //SEG377 [166] (byte) play_collision::return#14 ← (byte) play_collision::return#15 // (byte) play_collision::return#14 = (byte) play_collision::return#15 // register copy reg byte a jmp b14 - //SEG382 play_move_rotate::@14 + //SEG378 play_move_rotate::@14 b14: - //SEG383 [169] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#14 + //SEG379 [167] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#14 // (byte~) play_move_rotate::$6 = (byte) play_collision::return#14 // register copy reg byte a - //SEG384 [170] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG380 [168] 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 - //SEG385 play_move_rotate::@11 + //SEG381 play_move_rotate::@11 b11: - //SEG386 [171] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG382 [169] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG387 [172] (byte*) current_piece_gfx#6 ← (byte*) current_piece#14 + (byte) current_orientation#7 -- pbuz1=pbuz2_plus_vbuz3 + //SEG383 [170] (byte*) current_piece_gfx#6 ← (byte*) current_piece#14 + (byte) current_orientation#7 -- pbuz1=pbuz2_plus_vbuz3 lda current_orientation clc adc current_piece @@ -17793,25 +17693,25 @@ play_move_rotate: { lda #0 adc current_piece+1 sta current_piece_gfx+1 - //SEG388 [158] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG384 [156] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] breturn_from_b11: - //SEG389 [158] phi (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#6 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG390 [158] phi (byte) current_orientation#24 = (byte) current_orientation#7 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG391 [158] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 + //SEG385 [156] phi (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#6 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG386 [156] phi (byte) current_orientation#24 = (byte) current_orientation#7 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy + //SEG387 [156] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG392 play_move_rotate::@1 + //SEG388 play_move_rotate::@1 b1: - //SEG393 [173] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#19 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 + //SEG389 [171] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#19 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 lda current_orientation sec sbc #$10 - //SEG394 [174] (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 + //SEG390 [172] (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 } -//SEG395 play_collision +//SEG391 play_collision play_collision: { .label xpos = $c .label ypos = $b @@ -17825,7 +17725,7 @@ play_collision: { .label i_3 = $e .label i_11 = $e .label i_13 = $e - //SEG396 [176] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#16 + (byte) play_collision::orientation#5 -- pbuz1=pbuz1_plus_vbuxx + //SEG392 [174] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#16 + (byte) play_collision::orientation#5 -- pbuz1=pbuz1_plus_vbuxx txa clc adc piece_gfx @@ -17833,637 +17733,637 @@ play_collision: { lda #0 adc piece_gfx+1 sta piece_gfx+1 - //SEG397 [177] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 + //SEG393 [175] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 asl ypos2 - //SEG398 [178] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] + //SEG394 [176] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] b1_from_play_collision: - //SEG399 [178] 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 + //SEG395 [176] 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 - //SEG400 [178] 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 + //SEG396 [176] 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 - //SEG401 [178] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy + //SEG397 [176] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy jmp b1 - //SEG402 play_collision::@1 + //SEG398 play_collision::@1 b1: - //SEG403 [179] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG399 [177] (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 - //SEG404 [180] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#6 -- vbuz1=vbuz2 + //SEG400 [178] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#6 -- vbuz1=vbuz2 lda xpos sta col - //SEG405 [181] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] + //SEG401 [179] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] b2_from_b1: - //SEG406 [181] 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 + //SEG402 [179] 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 - //SEG407 [181] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy - //SEG408 [181] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy + //SEG403 [179] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy + //SEG404 [179] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy jmp b2 - //SEG409 play_collision::@2 + //SEG405 play_collision::@2 b2: - //SEG410 [182] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG406 [180] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG411 [183] 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 + //SEG407 [181] 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 - //SEG412 play_collision::@8 + //SEG408 play_collision::@8 b8: - //SEG413 [184] 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 + //SEG409 [182] 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 - //SEG414 [185] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] + //SEG410 [183] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] breturn_from_b8: - //SEG415 [185] phi (byte) play_collision::return#15 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG411 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_BOTTOM jmp breturn - //SEG416 play_collision::@return + //SEG412 play_collision::@return breturn: - //SEG417 [186] return + //SEG413 [184] return rts - //SEG418 play_collision::@4 + //SEG414 play_collision::@4 b4: - //SEG419 [187] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG415 [185] (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 - //SEG420 [188] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuaa_eq_0_then_la1 + //SEG416 [186] 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 - //SEG421 [185] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] + //SEG417 [183] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] breturn_from_b4: - //SEG422 [185] phi (byte) play_collision::return#15 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG418 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_LEFT jmp breturn - //SEG423 play_collision::@5 + //SEG419 play_collision::@5 b5: - //SEG424 [189] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG420 [187] 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 - //SEG425 [185] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] + //SEG421 [183] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] breturn_from_b5: - //SEG426 [185] phi (byte) play_collision::return#15 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG422 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_RIGHT jmp breturn - //SEG427 play_collision::@6 + //SEG423 play_collision::@6 b6: - //SEG428 [190] 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 + //SEG424 [188] 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 - //SEG429 [185] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] + //SEG425 [183] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] breturn_from_b6: - //SEG430 [185] phi (byte) play_collision::return#15 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG426 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_PLAYFIELD jmp breturn - //SEG431 play_collision::@3 + //SEG427 play_collision::@3 b3: - //SEG432 [191] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG428 [189] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG433 [192] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx + //SEG429 [190] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx inx - //SEG434 [193] 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 + //SEG430 [191] 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 - //SEG435 play_collision::@17 + //SEG431 play_collision::@17 b17: - //SEG436 [194] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG432 [192] (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 - //SEG437 [195] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG433 [193] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG438 [196] 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 + //SEG434 [194] 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 - //SEG439 [185] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] + //SEG435 [183] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] breturn_from_b17: - //SEG440 [185] phi (byte) play_collision::return#15 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG436 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_NONE jmp breturn - //SEG441 play_collision::@20 + //SEG437 play_collision::@20 b20: - //SEG442 [197] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG438 [195] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG443 [178] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] + //SEG439 [176] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] b1_from_b20: - //SEG444 [178] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy - //SEG445 [178] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy - //SEG446 [178] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy + //SEG440 [176] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy + //SEG441 [176] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy + //SEG442 [176] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy jmp b1 - //SEG447 play_collision::@21 + //SEG443 play_collision::@21 b21: - //SEG448 [198] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG444 [196] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG449 [181] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] + //SEG445 [179] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] b2_from_b21: - //SEG450 [181] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy - //SEG451 [181] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy - //SEG452 [181] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy + //SEG446 [179] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy + //SEG447 [179] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy + //SEG448 [179] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy jmp b2 } -//SEG453 play_move_leftright +//SEG449 play_move_leftright play_move_leftright: { - //SEG454 [199] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG450 [197] 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 - //SEG455 play_move_leftright::@6 + //SEG451 play_move_leftright::@6 b6: - //SEG456 [200] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG452 [198] 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 - //SEG457 play_move_leftright::@7 + //SEG453 play_move_leftright::@7 b7: - //SEG458 [201] (byte) play_collision::xpos#2 ← (byte) current_xpos#20 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG454 [199] (byte) play_collision::xpos#2 ← (byte) current_xpos#20 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_xpos iny sty play_collision.xpos - //SEG459 [202] (byte) play_collision::ypos#2 ← (byte) current_ypos#17 -- vbuz1=vbuz2 + //SEG455 [200] (byte) play_collision::ypos#2 ← (byte) current_ypos#17 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG460 [203] (byte) play_collision::orientation#2 ← (byte) current_orientation#19 -- vbuxx=vbuz1 + //SEG456 [201] (byte) play_collision::orientation#2 ← (byte) current_orientation#19 -- vbuxx=vbuz1 ldx current_orientation - //SEG461 [204] (byte*~) current_piece#92 ← (byte*) current_piece#14 -- pbuz1=pbuz2 + //SEG457 [202] (byte*~) current_piece#92 ← (byte*) current_piece#14 -- pbuz1=pbuz2 lda current_piece sta current_piece_92 lda current_piece+1 sta current_piece_92+1 - //SEG462 [205] call play_collision - //SEG463 [175] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] + //SEG458 [203] call play_collision + //SEG459 [173] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] play_collision_from_b7: - //SEG464 [175] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy - //SEG465 [175] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy - //SEG466 [175] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy - //SEG467 [175] phi (byte*) current_piece#16 = (byte*~) current_piece#92 [phi:play_move_leftright::@7->play_collision#3] -- register_copy + //SEG460 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy + //SEG461 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy + //SEG462 [173] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy + //SEG463 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#92 [phi:play_move_leftright::@7->play_collision#3] -- register_copy jsr play_collision - //SEG468 [206] (byte) play_collision::return#13 ← (byte) play_collision::return#15 + //SEG464 [204] (byte) play_collision::return#13 ← (byte) play_collision::return#15 // (byte) play_collision::return#13 = (byte) play_collision::return#15 // register copy reg byte a jmp b15 - //SEG469 play_move_leftright::@15 + //SEG465 play_move_leftright::@15 b15: - //SEG470 [207] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 + //SEG466 [205] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 // (byte~) play_move_leftright::$4 = (byte) play_collision::return#13 // register copy reg byte a - //SEG471 [208] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG467 [206] 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 - //SEG472 play_move_leftright::@8 + //SEG468 play_move_leftright::@8 b8: - //SEG473 [209] (byte) current_xpos#5 ← ++ (byte) current_xpos#20 -- vbuz1=_inc_vbuz1 + //SEG469 [207] (byte) current_xpos#5 ← ++ (byte) current_xpos#20 -- vbuz1=_inc_vbuz1 inc current_xpos - //SEG474 [210] 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] + //SEG470 [208] 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: - //SEG475 [210] phi (byte) current_xpos#24 = (byte) current_xpos#7 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy - //SEG476 [210] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 + //SEG471 [208] phi (byte) current_xpos#24 = (byte) current_xpos#7 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy + //SEG472 [208] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG477 [210] 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] + //SEG473 [208] 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: - //SEG478 [210] phi (byte) current_xpos#24 = (byte) current_xpos#20 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy - //SEG479 [210] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 + //SEG474 [208] phi (byte) current_xpos#24 = (byte) current_xpos#20 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy + //SEG475 [208] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #0 jmp breturn - //SEG480 play_move_leftright::@return + //SEG476 play_move_leftright::@return breturn: - //SEG481 [211] return + //SEG477 [209] return rts - //SEG482 play_move_leftright::@1 + //SEG478 play_move_leftright::@1 b1: - //SEG483 [212] (byte) play_collision::xpos#1 ← (byte) current_xpos#20 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //SEG479 [210] (byte) play_collision::xpos#1 ← (byte) current_xpos#20 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 ldx current_xpos dex stx play_collision.xpos - //SEG484 [213] (byte) play_collision::ypos#1 ← (byte) current_ypos#17 -- vbuz1=vbuz2 + //SEG480 [211] (byte) play_collision::ypos#1 ← (byte) current_ypos#17 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG485 [214] (byte) play_collision::orientation#1 ← (byte) current_orientation#19 -- vbuxx=vbuz1 + //SEG481 [212] (byte) play_collision::orientation#1 ← (byte) current_orientation#19 -- vbuxx=vbuz1 ldx current_orientation - //SEG486 [215] (byte*~) current_piece#91 ← (byte*) current_piece#14 -- pbuz1=pbuz2 + //SEG482 [213] (byte*~) current_piece#91 ← (byte*) current_piece#14 -- pbuz1=pbuz2 lda current_piece sta current_piece_91 lda current_piece+1 sta current_piece_91+1 - //SEG487 [216] call play_collision - //SEG488 [175] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] + //SEG483 [214] call play_collision + //SEG484 [173] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] play_collision_from_b1: - //SEG489 [175] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy - //SEG490 [175] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy - //SEG491 [175] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy - //SEG492 [175] phi (byte*) current_piece#16 = (byte*~) current_piece#91 [phi:play_move_leftright::@1->play_collision#3] -- register_copy + //SEG485 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy + //SEG486 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy + //SEG487 [173] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy + //SEG488 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#91 [phi:play_move_leftright::@1->play_collision#3] -- register_copy jsr play_collision - //SEG493 [217] (byte) play_collision::return#1 ← (byte) play_collision::return#15 + //SEG489 [215] (byte) play_collision::return#1 ← (byte) play_collision::return#15 // (byte) play_collision::return#1 = (byte) play_collision::return#15 // register copy reg byte a jmp b14 - //SEG494 play_move_leftright::@14 + //SEG490 play_move_leftright::@14 b14: - //SEG495 [218] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + //SEG491 [216] (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 - //SEG496 [219] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG492 [217] 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 - //SEG497 play_move_leftright::@11 + //SEG493 play_move_leftright::@11 b11: - //SEG498 [220] (byte) current_xpos#7 ← -- (byte) current_xpos#20 -- vbuz1=_dec_vbuz1 + //SEG494 [218] (byte) current_xpos#7 ← -- (byte) current_xpos#20 -- vbuz1=_dec_vbuz1 dec current_xpos jmp breturn_from_b11 } -//SEG499 play_move_down +//SEG495 play_move_down play_move_down: { - //SEG500 [221] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 -- vbuz1=_inc_vbuz1 + //SEG496 [219] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG501 [222] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 + //SEG497 [220] 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 - //SEG502 [223] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG498 [221] 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 - //SEG503 play_move_down::@8 + //SEG499 play_move_down::@8 b8: - //SEG504 [224] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG500 [222] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] b1_from_b8: - //SEG505 [224] 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 + //SEG501 [222] 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 - //SEG506 [224] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG502 [222] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b1_from_play_move_down: - //SEG507 [224] 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 + //SEG503 [222] 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 - //SEG508 play_move_down::@1 + //SEG504 play_move_down::@1 b1: - //SEG509 [225] call keyboard_event_pressed - //SEG510 [357] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG505 [223] call keyboard_event_pressed + //SEG506 [355] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] keyboard_event_pressed_from_b1: - //SEG511 [357] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG507 [355] 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 - //SEG512 [226] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + //SEG508 [224] (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 - //SEG513 play_move_down::@17 + //SEG509 play_move_down::@17 b17: - //SEG514 [227] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + //SEG510 [225] (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 - //SEG515 [228] 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 + //SEG511 [226] 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 - //SEG516 play_move_down::@9 + //SEG512 play_move_down::@9 b9: - //SEG517 [229] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG513 [227] if((byte) current_movedown_counter#12<(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 - //SEG518 play_move_down::@10 + //SEG514 play_move_down::@10 b10: - //SEG519 [230] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx + //SEG515 [228] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx inx - //SEG520 [231] 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] + //SEG516 [229] 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: - //SEG521 [231] 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 + //SEG517 [229] 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 - //SEG522 play_move_down::@2 + //SEG518 play_move_down::@2 b2: - //SEG523 [232] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@4 -- vbuz1_lt_vbuz2_then_la1 + //SEG519 [230] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@4 -- vbuz1_lt_vbuz2_then_la1 lda current_movedown_counter cmp current_movedown_slow bcc b4_from_b2 jmp b11 - //SEG524 play_move_down::@11 + //SEG520 play_move_down::@11 b11: - //SEG525 [233] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx + //SEG521 [231] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx inx - //SEG526 [234] 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] + //SEG522 [232] 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: - //SEG527 [234] 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 + //SEG523 [232] 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 - //SEG528 play_move_down::@4 + //SEG524 play_move_down::@4 b4: - //SEG529 [235] 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 + //SEG525 [233] 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 - //SEG530 play_move_down::@12 + //SEG526 play_move_down::@12 b12: - //SEG531 [236] (byte) play_collision::ypos#0 ← (byte) current_ypos#25 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG527 [234] (byte) play_collision::ypos#0 ← (byte) current_ypos#25 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_ypos iny sty play_collision.ypos - //SEG532 [237] (byte) play_collision::xpos#0 ← (byte) current_xpos#115 -- vbuz1=vbuz2 + //SEG528 [235] (byte) play_collision::xpos#0 ← (byte) current_xpos#113 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG533 [238] (byte) play_collision::orientation#0 ← (byte) current_orientation#12 -- vbuxx=vbuz1 + //SEG529 [236] (byte) play_collision::orientation#0 ← (byte) current_orientation#12 -- vbuxx=vbuz1 ldx current_orientation - //SEG534 [239] (byte*~) current_piece#90 ← (byte*) current_piece#20 -- pbuz1=pbuz2 + //SEG530 [237] (byte*~) current_piece#90 ← (byte*) current_piece#20 -- pbuz1=pbuz2 lda current_piece sta current_piece_90 lda current_piece+1 sta current_piece_90+1 - //SEG535 [240] call play_collision - //SEG536 [175] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] + //SEG531 [238] call play_collision + //SEG532 [173] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] play_collision_from_b12: - //SEG537 [175] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy - //SEG538 [175] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy - //SEG539 [175] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy - //SEG540 [175] phi (byte*) current_piece#16 = (byte*~) current_piece#90 [phi:play_move_down::@12->play_collision#3] -- register_copy + //SEG533 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy + //SEG534 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy + //SEG535 [173] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy + //SEG536 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#90 [phi:play_move_down::@12->play_collision#3] -- register_copy jsr play_collision - //SEG541 [241] (byte) play_collision::return#0 ← (byte) play_collision::return#15 + //SEG537 [239] (byte) play_collision::return#0 ← (byte) play_collision::return#15 // (byte) play_collision::return#0 = (byte) play_collision::return#15 // register copy reg byte a jmp b18 - //SEG542 play_move_down::@18 + //SEG538 play_move_down::@18 b18: - //SEG543 [242] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + //SEG539 [240] (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 - //SEG544 [243] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuaa_eq_vbuc1_then_la1 + //SEG540 [241] 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 - //SEG545 [244] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG541 [242] 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 - //SEG546 play_move_down::@13 + //SEG542 play_move_down::@13 b13: - //SEG547 [245] call play_lock_current + //SEG543 [243] call play_lock_current jsr play_lock_current - //SEG548 [246] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG544 [244] 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 - //SEG549 play_move_down::@19 + //SEG545 play_move_down::@19 b19: - //SEG550 [247] call play_remove_lines - //SEG551 [317] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] + //SEG546 [245] call play_remove_lines + //SEG547 [315] 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 - //SEG552 [248] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 -- vbuaa=vbuz1 + //SEG548 [246] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 -- vbuaa=vbuz1 lda play_remove_lines.removed jmp b20 - //SEG553 play_move_down::@20 + //SEG549 play_move_down::@20 b20: - //SEG554 [249] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 + //SEG550 [247] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 // (byte) play_move_down::removed#0 = (byte) play_remove_lines::return#0 // register copy reg byte a - //SEG555 [250] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuxx=vbuaa + //SEG551 [248] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuxx=vbuaa tax - //SEG556 [251] call play_update_score + //SEG552 [249] call play_update_score jsr play_update_score - //SEG557 [252] phi from play_move_down::@20 to play_move_down::@21 [phi:play_move_down::@20->play_move_down::@21] + //SEG553 [250] phi from play_move_down::@20 to play_move_down::@21 [phi:play_move_down::@20->play_move_down::@21] b21_from_b20: jmp b21 - //SEG558 play_move_down::@21 + //SEG554 play_move_down::@21 b21: - //SEG559 [253] call play_spawn_current - //SEG560 [259] phi from play_move_down::@21 to play_spawn_current [phi:play_move_down::@21->play_spawn_current] + //SEG555 [251] call play_spawn_current + //SEG556 [257] phi from play_move_down::@21 to play_spawn_current [phi:play_move_down::@21->play_spawn_current] play_spawn_current_from_b21: - //SEG561 [259] phi (byte) game_over#70 = (byte) game_over#19 [phi:play_move_down::@21->play_spawn_current#0] -- register_copy + //SEG557 [257] phi (byte) game_over#70 = (byte) game_over#19 [phi:play_move_down::@21->play_spawn_current#0] -- register_copy jsr play_spawn_current - //SEG562 [254] (byte*~) current_piece#95 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG558 [252] (byte*~) current_piece#95 ← (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 - //SEG563 [255] phi from play_move_down::@21 to play_move_down::@7 [phi:play_move_down::@21->play_move_down::@7] + //SEG559 [253] phi from play_move_down::@21 to play_move_down::@7 [phi:play_move_down::@21->play_move_down::@7] b7_from_b21: - //SEG564 [255] phi (byte) game_over#26 = (byte) game_over#15 [phi:play_move_down::@21->play_move_down::@7#0] -- register_copy - //SEG565 [255] phi (byte) current_xpos#41 = (byte) current_xpos#28 [phi:play_move_down::@21->play_move_down::@7#1] -- register_copy - //SEG566 [255] phi (byte*) current_piece_gfx#33 = (byte*) current_piece_gfx#21 [phi:play_move_down::@21->play_move_down::@7#2] -- register_copy - //SEG567 [255] phi (byte) current_orientation#36 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@21->play_move_down::@7#3] -- vbuz1=vbuc1 + //SEG560 [253] phi (byte) game_over#26 = (byte) game_over#15 [phi:play_move_down::@21->play_move_down::@7#0] -- register_copy + //SEG561 [253] phi (byte) current_xpos#41 = (byte) current_xpos#28 [phi:play_move_down::@21->play_move_down::@7#1] -- register_copy + //SEG562 [253] phi (byte*) current_piece_gfx#33 = (byte*) current_piece_gfx#21 [phi:play_move_down::@21->play_move_down::@7#2] -- register_copy + //SEG563 [253] phi (byte) current_orientation#36 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@21->play_move_down::@7#3] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG568 [255] phi (byte) current_piece_char#27 = (byte) current_piece_char#16 [phi:play_move_down::@21->play_move_down::@7#4] -- register_copy - //SEG569 [255] phi (byte*) current_piece#27 = (byte*~) current_piece#95 [phi:play_move_down::@21->play_move_down::@7#5] -- register_copy - //SEG570 [255] phi (byte) level_bcd#32 = (byte) level_bcd#19 [phi:play_move_down::@21->play_move_down::@7#6] -- register_copy - //SEG571 [255] phi (byte) current_movedown_slow#38 = (byte) current_movedown_slow#23 [phi:play_move_down::@21->play_move_down::@7#7] -- register_copy - //SEG572 [255] phi (byte) level#31 = (byte) level#18 [phi:play_move_down::@21->play_move_down::@7#8] -- register_copy - //SEG573 [255] phi (dword) score_bcd#27 = (dword) score_bcd#16 [phi:play_move_down::@21->play_move_down::@7#9] -- register_copy - //SEG574 [255] phi (word) lines_bcd#27 = (word) lines_bcd#17 [phi:play_move_down::@21->play_move_down::@7#10] -- register_copy - //SEG575 [255] phi (byte) current_ypos#36 = (byte) current_ypos#22 [phi:play_move_down::@21->play_move_down::@7#11] -- register_copy + //SEG564 [253] phi (byte) current_piece_char#27 = (byte) current_piece_char#16 [phi:play_move_down::@21->play_move_down::@7#4] -- register_copy + //SEG565 [253] phi (byte*) current_piece#27 = (byte*~) current_piece#95 [phi:play_move_down::@21->play_move_down::@7#5] -- register_copy + //SEG566 [253] phi (byte) level_bcd#32 = (byte) level_bcd#19 [phi:play_move_down::@21->play_move_down::@7#6] -- register_copy + //SEG567 [253] phi (byte) current_movedown_slow#38 = (byte) current_movedown_slow#23 [phi:play_move_down::@21->play_move_down::@7#7] -- register_copy + //SEG568 [253] phi (byte) level#31 = (byte) level#18 [phi:play_move_down::@21->play_move_down::@7#8] -- register_copy + //SEG569 [253] phi (dword) score_bcd#27 = (dword) score_bcd#16 [phi:play_move_down::@21->play_move_down::@7#9] -- register_copy + //SEG570 [253] phi (word) lines_bcd#27 = (word) lines_bcd#17 [phi:play_move_down::@21->play_move_down::@7#10] -- register_copy + //SEG571 [253] phi (byte) current_ypos#36 = (byte) current_ypos#22 [phi:play_move_down::@21->play_move_down::@7#11] -- register_copy jmp b7 - //SEG576 play_move_down::@7 + //SEG572 play_move_down::@7 b7: - //SEG577 [256] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG573 [254] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] breturn_from_b7: - //SEG578 [256] phi (byte) game_over#14 = (byte) game_over#26 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG579 [256] phi (byte) current_xpos#20 = (byte) current_xpos#41 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG580 [256] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#33 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG581 [256] phi (byte) current_orientation#19 = (byte) current_orientation#36 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG582 [256] phi (byte) current_piece_char#14 = (byte) current_piece_char#27 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG583 [256] phi (byte*) current_piece#14 = (byte*) current_piece#27 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG584 [256] phi (byte) level_bcd#17 = (byte) level_bcd#32 [phi:play_move_down::@7->play_move_down::@return#6] -- register_copy - //SEG585 [256] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#38 [phi:play_move_down::@7->play_move_down::@return#7] -- register_copy - //SEG586 [256] phi (byte) level#16 = (byte) level#31 [phi:play_move_down::@7->play_move_down::@return#8] -- register_copy - //SEG587 [256] phi (dword) score_bcd#14 = (dword) score_bcd#27 [phi:play_move_down::@7->play_move_down::@return#9] -- register_copy - //SEG588 [256] phi (word) lines_bcd#15 = (word) lines_bcd#27 [phi:play_move_down::@7->play_move_down::@return#10] -- register_copy - //SEG589 [256] phi (byte) current_ypos#17 = (byte) current_ypos#36 [phi:play_move_down::@7->play_move_down::@return#11] -- register_copy - //SEG590 [256] phi (byte) current_movedown_counter#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#12] -- vbuz1=vbuc1 + //SEG574 [254] phi (byte) game_over#14 = (byte) game_over#26 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG575 [254] phi (byte) current_xpos#20 = (byte) current_xpos#41 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG576 [254] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#33 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG577 [254] phi (byte) current_orientation#19 = (byte) current_orientation#36 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy + //SEG578 [254] phi (byte) current_piece_char#14 = (byte) current_piece_char#27 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy + //SEG579 [254] phi (byte*) current_piece#14 = (byte*) current_piece#27 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG580 [254] phi (byte) level_bcd#17 = (byte) level_bcd#32 [phi:play_move_down::@7->play_move_down::@return#6] -- register_copy + //SEG581 [254] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#38 [phi:play_move_down::@7->play_move_down::@return#7] -- register_copy + //SEG582 [254] phi (byte) level#16 = (byte) level#31 [phi:play_move_down::@7->play_move_down::@return#8] -- register_copy + //SEG583 [254] phi (dword) score_bcd#14 = (dword) score_bcd#27 [phi:play_move_down::@7->play_move_down::@return#9] -- register_copy + //SEG584 [254] phi (word) lines_bcd#15 = (word) lines_bcd#27 [phi:play_move_down::@7->play_move_down::@return#10] -- register_copy + //SEG585 [254] phi (byte) current_ypos#17 = (byte) current_ypos#36 [phi:play_move_down::@7->play_move_down::@return#11] -- register_copy + //SEG586 [254] phi (byte) current_movedown_counter#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#12] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG591 [256] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#13] -- vbuxx=vbuc1 + //SEG587 [254] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#13] -- vbuxx=vbuc1 ldx #1 jmp breturn - //SEG592 [256] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG588 [254] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] breturn_from_b4: - //SEG593 [256] phi (byte) game_over#14 = (byte) game_over#19 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG594 [256] phi (byte) current_xpos#20 = (byte) current_xpos#115 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG595 [256] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#105 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG596 [256] phi (byte) current_orientation#19 = (byte) current_orientation#12 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG597 [256] phi (byte) current_piece_char#14 = (byte) current_piece_char#19 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG598 [256] phi (byte*) current_piece#14 = (byte*) current_piece#20 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG599 [256] phi (byte) level_bcd#17 = (byte) level_bcd#11 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG600 [256] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#14 [phi:play_move_down::@4->play_move_down::@return#7] -- register_copy - //SEG601 [256] phi (byte) level#16 = (byte) level#10 [phi:play_move_down::@4->play_move_down::@return#8] -- register_copy - //SEG602 [256] phi (dword) score_bcd#14 = (dword) score_bcd#18 [phi:play_move_down::@4->play_move_down::@return#9] -- register_copy - //SEG603 [256] phi (word) lines_bcd#15 = (word) lines_bcd#19 [phi:play_move_down::@4->play_move_down::@return#10] -- register_copy - //SEG604 [256] phi (byte) current_ypos#17 = (byte) current_ypos#25 [phi:play_move_down::@4->play_move_down::@return#11] -- register_copy - //SEG605 [256] phi (byte) current_movedown_counter#14 = (byte) current_movedown_counter#12 [phi:play_move_down::@4->play_move_down::@return#12] -- register_copy - //SEG606 [256] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#13] -- vbuxx=vbuc1 + //SEG589 [254] phi (byte) game_over#14 = (byte) game_over#19 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG590 [254] phi (byte) current_xpos#20 = (byte) current_xpos#113 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG591 [254] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#103 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG592 [254] phi (byte) current_orientation#19 = (byte) current_orientation#12 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy + //SEG593 [254] phi (byte) current_piece_char#14 = (byte) current_piece_char#19 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy + //SEG594 [254] phi (byte*) current_piece#14 = (byte*) current_piece#20 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG595 [254] phi (byte) level_bcd#17 = (byte) level_bcd#11 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy + //SEG596 [254] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#14 [phi:play_move_down::@4->play_move_down::@return#7] -- register_copy + //SEG597 [254] phi (byte) level#16 = (byte) level#10 [phi:play_move_down::@4->play_move_down::@return#8] -- register_copy + //SEG598 [254] phi (dword) score_bcd#14 = (dword) score_bcd#18 [phi:play_move_down::@4->play_move_down::@return#9] -- register_copy + //SEG599 [254] phi (word) lines_bcd#15 = (word) lines_bcd#19 [phi:play_move_down::@4->play_move_down::@return#10] -- register_copy + //SEG600 [254] phi (byte) current_ypos#17 = (byte) current_ypos#25 [phi:play_move_down::@4->play_move_down::@return#11] -- register_copy + //SEG601 [254] phi (byte) current_movedown_counter#14 = (byte) current_movedown_counter#12 [phi:play_move_down::@4->play_move_down::@return#12] -- register_copy + //SEG602 [254] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#13] -- vbuxx=vbuc1 ldx #0 jmp breturn - //SEG607 play_move_down::@return + //SEG603 play_move_down::@return breturn: - //SEG608 [257] return + //SEG604 [255] return rts - //SEG609 play_move_down::@6 + //SEG605 play_move_down::@6 b6: - //SEG610 [258] (byte) current_ypos#2 ← ++ (byte) current_ypos#25 -- vbuz1=_inc_vbuz1 + //SEG606 [256] (byte) current_ypos#2 ← ++ (byte) current_ypos#25 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG611 [255] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG607 [253] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] b7_from_b6: - //SEG612 [255] phi (byte) game_over#26 = (byte) game_over#19 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG613 [255] phi (byte) current_xpos#41 = (byte) current_xpos#115 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG614 [255] phi (byte*) current_piece_gfx#33 = (byte*) current_piece_gfx#105 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG615 [255] phi (byte) current_orientation#36 = (byte) current_orientation#12 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG616 [255] phi (byte) current_piece_char#27 = (byte) current_piece_char#19 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG617 [255] phi (byte*) current_piece#27 = (byte*) current_piece#20 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy - //SEG618 [255] phi (byte) level_bcd#32 = (byte) level_bcd#11 [phi:play_move_down::@6->play_move_down::@7#6] -- register_copy - //SEG619 [255] phi (byte) current_movedown_slow#38 = (byte) current_movedown_slow#14 [phi:play_move_down::@6->play_move_down::@7#7] -- register_copy - //SEG620 [255] phi (byte) level#31 = (byte) level#10 [phi:play_move_down::@6->play_move_down::@7#8] -- register_copy - //SEG621 [255] phi (dword) score_bcd#27 = (dword) score_bcd#18 [phi:play_move_down::@6->play_move_down::@7#9] -- register_copy - //SEG622 [255] phi (word) lines_bcd#27 = (word) lines_bcd#19 [phi:play_move_down::@6->play_move_down::@7#10] -- register_copy - //SEG623 [255] phi (byte) current_ypos#36 = (byte) current_ypos#2 [phi:play_move_down::@6->play_move_down::@7#11] -- register_copy + //SEG608 [253] phi (byte) game_over#26 = (byte) game_over#19 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG609 [253] phi (byte) current_xpos#41 = (byte) current_xpos#113 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG610 [253] phi (byte*) current_piece_gfx#33 = (byte*) current_piece_gfx#103 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG611 [253] phi (byte) current_orientation#36 = (byte) current_orientation#12 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy + //SEG612 [253] phi (byte) current_piece_char#27 = (byte) current_piece_char#19 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy + //SEG613 [253] phi (byte*) current_piece#27 = (byte*) current_piece#20 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG614 [253] phi (byte) level_bcd#32 = (byte) level_bcd#11 [phi:play_move_down::@6->play_move_down::@7#6] -- register_copy + //SEG615 [253] phi (byte) current_movedown_slow#38 = (byte) current_movedown_slow#14 [phi:play_move_down::@6->play_move_down::@7#7] -- register_copy + //SEG616 [253] phi (byte) level#31 = (byte) level#10 [phi:play_move_down::@6->play_move_down::@7#8] -- register_copy + //SEG617 [253] phi (dword) score_bcd#27 = (dword) score_bcd#18 [phi:play_move_down::@6->play_move_down::@7#9] -- register_copy + //SEG618 [253] phi (word) lines_bcd#27 = (word) lines_bcd#19 [phi:play_move_down::@6->play_move_down::@7#10] -- register_copy + //SEG619 [253] phi (byte) current_ypos#36 = (byte) current_ypos#2 [phi:play_move_down::@6->play_move_down::@7#11] -- register_copy jmp b7 } -//SEG624 play_spawn_current +//SEG620 play_spawn_current play_spawn_current: { .label _3 = 4 - //SEG625 [260] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] + //SEG621 [258] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] b1_from_play_spawn_current: - //SEG626 [260] 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 + //SEG622 [258] 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 - //SEG627 play_spawn_current::@1 + //SEG623 play_spawn_current::@1 b1: - //SEG628 [261] 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 + //SEG624 [259] 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 - //SEG629 play_spawn_current::@3 + //SEG625 play_spawn_current::@3 b3: - //SEG630 [262] (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 + //SEG626 [260] (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 - //SEG631 [263] (byte) current_piece_char#16 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG627 [261] (byte) current_piece_char#16 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_CHARS,x sta current_piece_char - //SEG632 [264] (byte*) current_piece_gfx#21 ← (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 + //SEG628 [262] (byte*) current_piece_gfx#21 ← (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 - //SEG633 [265] (byte) current_xpos#28 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG629 [263] (byte) current_xpos#28 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_START_X,x sta current_xpos - //SEG634 [266] (byte) current_ypos#22 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG630 [264] (byte) current_ypos#22 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_START_Y,x sta current_ypos - //SEG635 [267] (byte) play_collision::xpos#4 ← (byte) current_xpos#28 -- vbuz1=vbuz2 + //SEG631 [265] (byte) play_collision::xpos#4 ← (byte) current_xpos#28 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG636 [268] (byte) play_collision::ypos#4 ← (byte) current_ypos#22 -- vbuz1=vbuz2 + //SEG632 [266] (byte) play_collision::ypos#4 ← (byte) current_ypos#22 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG637 [269] (byte*~) current_piece#94 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG633 [267] (byte*~) current_piece#94 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy _3 lda PIECES,y sta current_piece_94 lda PIECES+1,y sta current_piece_94+1 - //SEG638 [270] call play_collision - //SEG639 [175] phi from play_spawn_current::@3 to play_collision [phi:play_spawn_current::@3->play_collision] + //SEG634 [268] call play_collision + //SEG635 [173] phi from play_spawn_current::@3 to play_collision [phi:play_spawn_current::@3->play_collision] play_collision_from_b3: - //SEG640 [175] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#4 [phi:play_spawn_current::@3->play_collision#0] -- register_copy - //SEG641 [175] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#4 [phi:play_spawn_current::@3->play_collision#1] -- register_copy - //SEG642 [175] phi (byte) play_collision::orientation#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_spawn_current::@3->play_collision#2] -- vbuxx=vbuc1 + //SEG636 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#4 [phi:play_spawn_current::@3->play_collision#0] -- register_copy + //SEG637 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#4 [phi:play_spawn_current::@3->play_collision#1] -- register_copy + //SEG638 [173] phi (byte) play_collision::orientation#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_spawn_current::@3->play_collision#2] -- vbuxx=vbuc1 ldx #0 - //SEG643 [175] phi (byte*) current_piece#16 = (byte*~) current_piece#94 [phi:play_spawn_current::@3->play_collision#3] -- register_copy + //SEG639 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#94 [phi:play_spawn_current::@3->play_collision#3] -- register_copy jsr play_collision - //SEG644 [271] (byte) play_collision::return#10 ← (byte) play_collision::return#15 + //SEG640 [269] (byte) play_collision::return#10 ← (byte) play_collision::return#15 // (byte) play_collision::return#10 = (byte) play_collision::return#15 // register copy reg byte a jmp b10 - //SEG645 play_spawn_current::@10 + //SEG641 play_spawn_current::@10 b10: - //SEG646 [272] (byte~) play_spawn_current::$5 ← (byte) play_collision::return#10 + //SEG642 [270] (byte~) play_spawn_current::$5 ← (byte) play_collision::return#10 // (byte~) play_spawn_current::$5 = (byte) play_collision::return#10 // register copy reg byte a - //SEG647 [273] if((byte~) play_spawn_current::$5!=(const byte) COLLISION_PLAYFIELD#0) goto play_spawn_current::@11 -- vbuaa_neq_vbuc1_then_la1 + //SEG643 [271] if((byte~) play_spawn_current::$5!=(const byte) COLLISION_PLAYFIELD#0) goto play_spawn_current::@11 -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_PLAYFIELD bne b11_from_b10 - //SEG648 [274] phi from play_spawn_current::@10 to play_spawn_current::@return [phi:play_spawn_current::@10->play_spawn_current::@return] + //SEG644 [272] phi from play_spawn_current::@10 to play_spawn_current::@return [phi:play_spawn_current::@10->play_spawn_current::@return] breturn_from_b10: - //SEG649 [274] phi (byte) game_over#15 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_spawn_current::@10->play_spawn_current::@return#0] -- vbuz1=vbuc1 + //SEG645 [272] phi (byte) game_over#15 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_spawn_current::@10->play_spawn_current::@return#0] -- vbuz1=vbuc1 lda #1 sta game_over jmp breturn - //SEG650 play_spawn_current::@return + //SEG646 play_spawn_current::@return breturn: - //SEG651 [275] return + //SEG647 [273] return rts - //SEG652 [276] phi from play_spawn_current::@10 to play_spawn_current::@11 [phi:play_spawn_current::@10->play_spawn_current::@11] + //SEG648 [274] phi from play_spawn_current::@10 to play_spawn_current::@11 [phi:play_spawn_current::@10->play_spawn_current::@11] b11_from_b10: jmp b11 - //SEG653 play_spawn_current::@11 + //SEG649 play_spawn_current::@11 b11: - //SEG654 [274] phi from play_spawn_current::@11 to play_spawn_current::@return [phi:play_spawn_current::@11->play_spawn_current::@return] + //SEG650 [272] phi from play_spawn_current::@11 to play_spawn_current::@return [phi:play_spawn_current::@11->play_spawn_current::@return] breturn_from_b11: - //SEG655 [274] phi (byte) game_over#15 = (byte) game_over#70 [phi:play_spawn_current::@11->play_spawn_current::@return#0] -- register_copy + //SEG651 [272] phi (byte) game_over#15 = (byte) game_over#70 [phi:play_spawn_current::@11->play_spawn_current::@return#0] -- register_copy jmp breturn - //SEG656 [277] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] + //SEG652 [275] 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 - //SEG657 play_spawn_current::@2 + //SEG653 play_spawn_current::@2 b2: - //SEG658 [278] call sid_rnd + //SEG654 [276] call sid_rnd jsr sid_rnd - //SEG659 [279] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + //SEG655 [277] (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 b9 - //SEG660 play_spawn_current::@9 + //SEG656 play_spawn_current::@9 b9: - //SEG661 [280] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 + //SEG657 [278] (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 - //SEG662 [281] (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 + //SEG658 [279] (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 - //SEG663 [260] phi from play_spawn_current::@9 to play_spawn_current::@1 [phi:play_spawn_current::@9->play_spawn_current::@1] + //SEG659 [258] phi from play_spawn_current::@9 to play_spawn_current::@1 [phi:play_spawn_current::@9->play_spawn_current::@1] b1_from_b9: - //SEG664 [260] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@9->play_spawn_current::@1#0] -- register_copy + //SEG660 [258] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@9->play_spawn_current::@1#0] -- register_copy jmp b1 } -//SEG665 sid_rnd +//SEG661 sid_rnd sid_rnd: { - //SEG666 [282] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 + //SEG662 [280] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 lda SID_VOICE3_OSC jmp breturn - //SEG667 sid_rnd::@return + //SEG663 sid_rnd::@return breturn: - //SEG668 [283] return + //SEG664 [281] return rts } -//SEG669 play_update_score +//SEG665 play_update_score play_update_score: { .label lines_before = 4 .label add_bcd = $2a - //SEG670 [284] if((byte) play_update_score::removed#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_update_score::@return -- vbuxx_eq_0_then_la1 + //SEG666 [282] if((byte) play_update_score::removed#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_update_score::@return -- vbuxx_eq_0_then_la1 cpx #0 beq breturn_from_play_update_score jmp b3 - //SEG671 play_update_score::@3 + //SEG667 play_update_score::@3 b3: - //SEG672 [285] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 -- vbuaa=_lo_vwuz1 + //SEG668 [283] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 -- vbuaa=_lo_vwuz1 lda lines_bcd - //SEG673 [286] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuaa_band_vbuc1 + //SEG669 [284] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuaa_band_vbuc1 and #$f0 sta lines_before - //SEG674 [287] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 + //SEG670 [285] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 txa asl asl - //SEG675 [288] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) -- vduz1=pduc1_derefidx_vbuaa + //SEG671 [286] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) -- vduz1=pduc1_derefidx_vbuaa tay lda score_add_bcd,y sta add_bcd @@ -18473,9 +18373,9 @@ play_update_score: { sta add_bcd+2 lda score_add_bcd+3,y sta add_bcd+3 - //SEG676 asm { sed } + //SEG672 asm { sed } sed - //SEG677 [290] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 -- vwuz1=vwuz1_plus_vbuxx + //SEG673 [288] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 -- vwuz1=vwuz1_plus_vbuxx txa clc adc lines_bcd @@ -18483,7 +18383,7 @@ play_update_score: { lda #0 adc lines_bcd+1 sta lines_bcd+1 - //SEG678 [291] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 -- vduz1=vduz1_plus_vduz2 + //SEG674 [289] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 -- vduz1=vduz1_plus_vduz2 lda score_bcd clc adc add_bcd @@ -18497,107 +18397,107 @@ play_update_score: { lda score_bcd+3 adc add_bcd+3 sta score_bcd+3 - //SEG679 asm { cld } + //SEG675 asm { cld } cld - //SEG680 [293] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 -- vbuaa=_lo_vwuz1 + //SEG676 [291] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 -- vbuaa=_lo_vwuz1 lda lines_bcd - //SEG681 [294] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 -- vbuaa=vbuaa_band_vbuc1 + //SEG677 [292] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 -- vbuaa=vbuaa_band_vbuc1 and #$f0 - //SEG682 [295] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return -- vbuz1_eq_vbuaa_then_la1 + //SEG678 [293] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return -- vbuz1_eq_vbuaa_then_la1 cmp lines_before beq breturn_from_b3 - //SEG683 [296] phi from play_update_score::@3 to play_update_score::@4 [phi:play_update_score::@3->play_update_score::@4] + //SEG679 [294] phi from play_update_score::@3 to play_update_score::@4 [phi:play_update_score::@3->play_update_score::@4] b4_from_b3: jmp b4 - //SEG684 play_update_score::@4 + //SEG680 play_update_score::@4 b4: - //SEG685 [297] call play_increase_level + //SEG681 [295] call play_increase_level jsr play_increase_level - //SEG686 [298] phi from play_update_score play_update_score::@3 play_update_score::@4 to play_update_score::@return [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return] + //SEG682 [296] phi from play_update_score play_update_score::@3 play_update_score::@4 to play_update_score::@return [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return] breturn_from_play_update_score: breturn_from_b3: breturn_from_b4: - //SEG687 [298] phi (byte) level_bcd#19 = (byte) level_bcd#11 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#0] -- register_copy - //SEG688 [298] phi (byte) current_movedown_slow#23 = (byte) current_movedown_slow#14 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#1] -- register_copy - //SEG689 [298] phi (byte) level#18 = (byte) level#10 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#2] -- register_copy - //SEG690 [298] phi (dword) score_bcd#16 = (dword) score_bcd#18 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#3] -- register_copy - //SEG691 [298] phi (word) lines_bcd#17 = (word) lines_bcd#19 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#4] -- register_copy + //SEG683 [296] phi (byte) level_bcd#19 = (byte) level_bcd#11 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#0] -- register_copy + //SEG684 [296] phi (byte) current_movedown_slow#23 = (byte) current_movedown_slow#14 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#1] -- register_copy + //SEG685 [296] phi (byte) level#18 = (byte) level#10 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#2] -- register_copy + //SEG686 [296] phi (dword) score_bcd#16 = (dword) score_bcd#18 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#3] -- register_copy + //SEG687 [296] phi (word) lines_bcd#17 = (word) lines_bcd#19 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#4] -- register_copy jmp breturn - //SEG692 play_update_score::@return + //SEG688 play_update_score::@return breturn: - //SEG693 [299] return + //SEG689 [297] return rts } -//SEG694 play_increase_level +//SEG690 play_increase_level play_increase_level: { - //SEG695 [300] (byte) level#20 ← ++ (byte) level#10 -- vbuz1=_inc_vbuz1 + //SEG691 [298] (byte) level#20 ← ++ (byte) level#10 -- vbuz1=_inc_vbuz1 inc level - //SEG696 [301] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 -- vbuz1_gt_vbuc1_then_la1 + //SEG692 [299] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 -- vbuz1_gt_vbuc1_then_la1 lda level cmp #$1d beq !+ bcs b2_from_play_increase_level !: jmp b5 - //SEG697 play_increase_level::@5 + //SEG693 play_increase_level::@5 b5: - //SEG698 [302] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG694 [300] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) -- vbuz1=pbuc1_derefidx_vbuz2 ldy level lda MOVEDOWN_SLOW_SPEEDS,y sta current_movedown_slow - //SEG699 [303] phi from play_increase_level::@5 to play_increase_level::@2 [phi:play_increase_level::@5->play_increase_level::@2] + //SEG695 [301] phi from play_increase_level::@5 to play_increase_level::@2 [phi:play_increase_level::@5->play_increase_level::@2] b2_from_b5: - //SEG700 [303] phi (byte) current_movedown_slow#69 = (byte) current_movedown_slow#10 [phi:play_increase_level::@5->play_increase_level::@2#0] -- register_copy + //SEG696 [301] phi (byte) current_movedown_slow#69 = (byte) current_movedown_slow#10 [phi:play_increase_level::@5->play_increase_level::@2#0] -- register_copy jmp b2 - //SEG701 [303] phi from play_increase_level to play_increase_level::@2 [phi:play_increase_level->play_increase_level::@2] + //SEG697 [301] phi from play_increase_level to play_increase_level::@2 [phi:play_increase_level->play_increase_level::@2] b2_from_play_increase_level: - //SEG702 [303] phi (byte) current_movedown_slow#69 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_increase_level->play_increase_level::@2#0] -- vbuz1=vbuc1 + //SEG698 [301] phi (byte) current_movedown_slow#69 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_increase_level->play_increase_level::@2#0] -- vbuz1=vbuc1 lda #1 sta current_movedown_slow jmp b2 - //SEG703 play_increase_level::@2 + //SEG699 play_increase_level::@2 b2: - //SEG704 [304] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 -- vbuz1=_inc_vbuz1 + //SEG700 [302] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 -- vbuz1=_inc_vbuz1 inc level_bcd - //SEG705 [305] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG701 [303] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 lda #$f and level_bcd - //SEG706 [306] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 -- vbuaa_neq_vbuc1_then_la1 + //SEG702 [304] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 -- vbuaa_neq_vbuc1_then_la1 cmp #$a bne b3_from_b2 jmp b7 - //SEG707 play_increase_level::@7 + //SEG703 play_increase_level::@7 b7: - //SEG708 [307] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 -- vbuz1=vbuz1_plus_vbuc1 + //SEG704 [305] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 -- vbuz1=vbuz1_plus_vbuc1 lda #6 clc adc level_bcd sta level_bcd - //SEG709 [308] phi from play_increase_level::@2 play_increase_level::@7 to play_increase_level::@3 [phi:play_increase_level::@2/play_increase_level::@7->play_increase_level::@3] + //SEG705 [306] phi from play_increase_level::@2 play_increase_level::@7 to play_increase_level::@3 [phi:play_increase_level::@2/play_increase_level::@7->play_increase_level::@3] b3_from_b2: b3_from_b7: - //SEG710 [308] phi (byte) level_bcd#64 = (byte) level_bcd#21 [phi:play_increase_level::@2/play_increase_level::@7->play_increase_level::@3#0] -- register_copy + //SEG706 [306] phi (byte) level_bcd#64 = (byte) level_bcd#21 [phi:play_increase_level::@2/play_increase_level::@7->play_increase_level::@3#0] -- register_copy jmp b3 - //SEG711 play_increase_level::@3 + //SEG707 play_increase_level::@3 b3: - //SEG712 asm { sed } + //SEG708 asm { sed } sed - //SEG713 [310] phi from play_increase_level::@3 to play_increase_level::@4 [phi:play_increase_level::@3->play_increase_level::@4] + //SEG709 [308] phi from play_increase_level::@3 to play_increase_level::@4 [phi:play_increase_level::@3->play_increase_level::@4] b4_from_b3: - //SEG714 [310] phi (byte) play_increase_level::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_increase_level::@3->play_increase_level::@4#0] -- vbuxx=vbuc1 + //SEG710 [308] phi (byte) play_increase_level::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_increase_level::@3->play_increase_level::@4#0] -- vbuxx=vbuc1 ldx #0 jmp b4 - //SEG715 [310] phi from play_increase_level::@4 to play_increase_level::@4 [phi:play_increase_level::@4->play_increase_level::@4] + //SEG711 [308] phi from play_increase_level::@4 to play_increase_level::@4 [phi:play_increase_level::@4->play_increase_level::@4] b4_from_b4: - //SEG716 [310] phi (byte) play_increase_level::b#2 = (byte) play_increase_level::b#1 [phi:play_increase_level::@4->play_increase_level::@4#0] -- register_copy + //SEG712 [308] phi (byte) play_increase_level::b#2 = (byte) play_increase_level::b#1 [phi:play_increase_level::@4->play_increase_level::@4#0] -- register_copy jmp b4 - //SEG717 play_increase_level::@4 + //SEG713 play_increase_level::@4 b4: - //SEG718 [311] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 + //SEG714 [309] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 txa asl asl - //SEG719 [312] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) -- pduc1_derefidx_vbuaa=pduc1_derefidx_vbuaa_plus_pduc2_derefidx_vbuaa + //SEG715 [310] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) -- pduc1_derefidx_vbuaa=pduc1_derefidx_vbuaa_plus_pduc2_derefidx_vbuaa tay clc lda score_add_bcd,y @@ -18612,164 +18512,164 @@ play_increase_level: { lda score_add_bcd+3,y adc SCORE_BASE_BCD+3,y sta score_add_bcd+3,y - //SEG720 [313] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 -- vbuxx=_inc_vbuxx + //SEG716 [311] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 -- vbuxx=_inc_vbuxx inx - //SEG721 [314] if((byte) play_increase_level::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_increase_level::@4 -- vbuxx_neq_vbuc1_then_la1 + //SEG717 [312] if((byte) play_increase_level::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_increase_level::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #5 bne b4_from_b4 jmp b8 - //SEG722 play_increase_level::@8 + //SEG718 play_increase_level::@8 b8: - //SEG723 asm { cld } + //SEG719 asm { cld } cld jmp breturn - //SEG724 play_increase_level::@return + //SEG720 play_increase_level::@return breturn: - //SEG725 [316] return + //SEG721 [314] return rts } -//SEG726 play_remove_lines +//SEG722 play_remove_lines play_remove_lines: { .label c = $c .label x = $a .label y = 4 .label removed = 9 .label full = $b - //SEG727 [318] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] + //SEG723 [316] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] b1_from_play_remove_lines: - //SEG728 [318] phi (byte) play_remove_lines::removed#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines->play_remove_lines::@1#0] -- vbuz1=vbuc1 + //SEG724 [316] phi (byte) play_remove_lines::removed#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines->play_remove_lines::@1#0] -- vbuz1=vbuc1 lda #0 sta removed - //SEG729 [318] 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#1] -- vbuz1=vbuc1 + //SEG725 [316] 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#1] -- vbuz1=vbuc1 lda #0 sta y - //SEG730 [318] 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#2] -- vbuxx=vbuc1 + //SEG726 [316] 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#2] -- vbuxx=vbuc1 ldx #PLAYFIELD_LINES*PLAYFIELD_COLS-1 - //SEG731 [318] 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#3] -- vbuyy=vbuc1 + //SEG727 [316] 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#3] -- vbuyy=vbuc1 ldy #PLAYFIELD_LINES*PLAYFIELD_COLS-1 jmp b1 - //SEG732 [318] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] + //SEG728 [316] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] b1_from_b4: - //SEG733 [318] phi (byte) play_remove_lines::removed#11 = (byte) play_remove_lines::removed#7 [phi:play_remove_lines::@4->play_remove_lines::@1#0] -- register_copy - //SEG734 [318] phi (byte) play_remove_lines::y#8 = (byte) play_remove_lines::y#1 [phi:play_remove_lines::@4->play_remove_lines::@1#1] -- register_copy - //SEG735 [318] phi (byte) play_remove_lines::w#12 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@4->play_remove_lines::@1#2] -- register_copy - //SEG736 [318] phi (byte) play_remove_lines::r#3 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@4->play_remove_lines::@1#3] -- register_copy + //SEG729 [316] phi (byte) play_remove_lines::removed#11 = (byte) play_remove_lines::removed#7 [phi:play_remove_lines::@4->play_remove_lines::@1#0] -- register_copy + //SEG730 [316] phi (byte) play_remove_lines::y#8 = (byte) play_remove_lines::y#1 [phi:play_remove_lines::@4->play_remove_lines::@1#1] -- register_copy + //SEG731 [316] phi (byte) play_remove_lines::w#12 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@4->play_remove_lines::@1#2] -- register_copy + //SEG732 [316] phi (byte) play_remove_lines::r#3 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@4->play_remove_lines::@1#3] -- register_copy jmp b1 - //SEG737 play_remove_lines::@1 + //SEG733 play_remove_lines::@1 b1: - //SEG738 [319] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] + //SEG734 [317] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] b2_from_b1: - //SEG739 [319] 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 + //SEG735 [317] 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 - //SEG740 [319] 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 + //SEG736 [317] 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 - //SEG741 [319] 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 - //SEG742 [319] 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 + //SEG737 [317] 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 + //SEG738 [317] 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 - //SEG743 [319] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] + //SEG739 [317] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] b2_from_b3: - //SEG744 [319] 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 - //SEG745 [319] 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 - //SEG746 [319] 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 - //SEG747 [319] 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 + //SEG740 [317] 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 + //SEG741 [317] 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 + //SEG742 [317] 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 + //SEG743 [317] 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 - //SEG748 play_remove_lines::@2 + //SEG744 play_remove_lines::@2 b2: - //SEG749 [320] (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 + //SEG745 [318] (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 - //SEG750 [321] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy + //SEG746 [319] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy dey - //SEG751 [322] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@18 -- vbuz1_neq_0_then_la1 + //SEG747 [320] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@18 -- vbuz1_neq_0_then_la1 lda c cmp #0 bne b18_from_b2 - //SEG752 [323] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] + //SEG748 [321] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] b3_from_b2: - //SEG753 [323] 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 + //SEG749 [321] 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 - //SEG754 play_remove_lines::@3 + //SEG750 play_remove_lines::@3 b3: - //SEG755 [324] *((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 + //SEG751 [322] *((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 - //SEG756 [325] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx + //SEG752 [323] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx dex - //SEG757 [326] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 + //SEG753 [324] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG758 [327] 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 + //SEG754 [325] 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 - //SEG759 play_remove_lines::@9 + //SEG755 play_remove_lines::@9 b9: - //SEG760 [328] 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 + //SEG756 [326] 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 - //SEG761 play_remove_lines::@10 + //SEG757 play_remove_lines::@10 b10: - //SEG762 [329] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuxx=vbuxx_plus_vbuc1 + //SEG758 [327] (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 - //SEG763 [330] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 + //SEG759 [328] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 inc removed - //SEG764 [331] 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] + //SEG760 [329] 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: - //SEG765 [331] phi (byte) play_remove_lines::removed#7 = (byte) play_remove_lines::removed#1 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4#0] -- register_copy - //SEG766 [331] 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#1] -- register_copy + //SEG761 [329] phi (byte) play_remove_lines::removed#7 = (byte) play_remove_lines::removed#1 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4#0] -- register_copy + //SEG762 [329] 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#1] -- register_copy jmp b4 - //SEG767 play_remove_lines::@4 + //SEG763 play_remove_lines::@4 b4: - //SEG768 [332] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 + //SEG764 [330] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG769 [333] 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 + //SEG765 [331] 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 - //SEG770 [334] 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] + //SEG766 [332] 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: - //SEG771 [334] 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 + //SEG767 [332] 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 - //SEG772 play_remove_lines::@5 + //SEG768 play_remove_lines::@5 b5: - //SEG773 [335] 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 + //SEG769 [333] 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 - //SEG774 play_remove_lines::@return + //SEG770 play_remove_lines::@return breturn: - //SEG775 [336] return + //SEG771 [334] return rts - //SEG776 play_remove_lines::@6 + //SEG772 play_remove_lines::@6 b6: - //SEG777 [337] *((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 + //SEG773 [335] *((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 - //SEG778 [338] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx + //SEG774 [336] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx dex jmp b5_from_b6 - //SEG779 [339] phi from play_remove_lines::@2 to play_remove_lines::@18 [phi:play_remove_lines::@2->play_remove_lines::@18] + //SEG775 [337] phi from play_remove_lines::@2 to play_remove_lines::@18 [phi:play_remove_lines::@2->play_remove_lines::@18] b18_from_b2: jmp b18 - //SEG780 play_remove_lines::@18 + //SEG776 play_remove_lines::@18 b18: - //SEG781 [323] phi from play_remove_lines::@18 to play_remove_lines::@3 [phi:play_remove_lines::@18->play_remove_lines::@3] + //SEG777 [321] phi from play_remove_lines::@18 to play_remove_lines::@3 [phi:play_remove_lines::@18->play_remove_lines::@3] b3_from_b18: - //SEG782 [323] phi (byte) play_remove_lines::full#2 = (byte) play_remove_lines::full#4 [phi:play_remove_lines::@18->play_remove_lines::@3#0] -- register_copy + //SEG778 [321] phi (byte) play_remove_lines::full#2 = (byte) play_remove_lines::full#4 [phi:play_remove_lines::@18->play_remove_lines::@3#0] -- register_copy jmp b3 } -//SEG783 play_lock_current +//SEG779 play_lock_current play_lock_current: { .label ypos2 = $10 .label playfield_line = 5 @@ -18780,531 +18680,531 @@ play_lock_current: { .label i_3 = 9 .label i_7 = 9 .label i_9 = 9 - //SEG784 [340] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#25 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 + //SEG780 [338] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#25 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 asl ypos2 - //SEG785 [341] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] + //SEG781 [339] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] b1_from_play_lock_current: - //SEG786 [341] 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 + //SEG782 [339] 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 - //SEG787 [341] 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 + //SEG783 [339] 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 - //SEG788 [341] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy + //SEG784 [339] 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 - //SEG789 play_lock_current::@1 + //SEG785 play_lock_current::@1 b1: - //SEG790 [342] (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 + //SEG786 [340] (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 - //SEG791 [343] (byte) play_lock_current::col#0 ← (byte) current_xpos#115 -- vbuz1=vbuz2 + //SEG787 [341] (byte) play_lock_current::col#0 ← (byte) current_xpos#113 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG792 [344] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] + //SEG788 [342] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] b2_from_b1: - //SEG793 [344] 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 + //SEG789 [342] 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 - //SEG794 [344] 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 - //SEG795 [344] 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 + //SEG790 [342] 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 + //SEG791 [342] 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 - //SEG796 play_lock_current::@2 + //SEG792 play_lock_current::@2 b2: - //SEG797 [345] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG793 [343] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG798 [346] if(*((byte*) current_piece_gfx#105 + (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 + //SEG794 [344] if(*((byte*) current_piece_gfx#103 + (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 - //SEG799 play_lock_current::@4 + //SEG795 play_lock_current::@4 b4: - //SEG800 [347] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#19 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG796 [345] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#19 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_char ldy col sta (playfield_line),y jmp b3 - //SEG801 play_lock_current::@3 + //SEG797 play_lock_current::@3 b3: - //SEG802 [348] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG798 [346] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG803 [349] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx + //SEG799 [347] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG804 [350] 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 + //SEG800 [348] 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 - //SEG805 play_lock_current::@5 + //SEG801 play_lock_current::@5 b5: - //SEG806 [351] (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 + //SEG802 [349] (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 - //SEG807 [352] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG803 [350] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG808 [353] 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 + //SEG804 [351] 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 - //SEG809 play_lock_current::@return + //SEG805 play_lock_current::@return breturn: - //SEG810 [354] return + //SEG806 [352] return rts - //SEG811 play_lock_current::@7 + //SEG807 play_lock_current::@7 b7: - //SEG812 [355] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG808 [353] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG813 [341] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] + //SEG809 [339] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] b1_from_b7: - //SEG814 [341] 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 - //SEG815 [341] 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 - //SEG816 [341] 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 + //SEG810 [339] 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 + //SEG811 [339] 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 + //SEG812 [339] 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 - //SEG817 play_lock_current::@8 + //SEG813 play_lock_current::@8 b8: - //SEG818 [356] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG814 [354] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG819 [344] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] + //SEG815 [342] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] b2_from_b8: - //SEG820 [344] 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 - //SEG821 [344] 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 - //SEG822 [344] 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 + //SEG816 [342] 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 + //SEG817 [342] 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 + //SEG818 [342] 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 } -//SEG823 keyboard_event_pressed +//SEG819 keyboard_event_pressed keyboard_event_pressed: { .label row_bits = $a .label keycode = 9 - //SEG824 [358] (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 + //SEG820 [356] (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 - //SEG825 [359] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa + //SEG821 [357] (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 - //SEG826 [360] (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 + //SEG822 [358] (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 - //SEG827 [361] (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 + //SEG823 [359] (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 - //SEG828 keyboard_event_pressed::@return + //SEG824 keyboard_event_pressed::@return breturn: - //SEG829 [362] return + //SEG825 [360] return rts } -//SEG830 keyboard_event_get +//SEG826 keyboard_event_get keyboard_event_get: { - //SEG831 [363] 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 + //SEG827 [361] 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 - //SEG832 keyboard_event_get::@3 + //SEG828 keyboard_event_get::@3 b3: - //SEG833 [364] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG829 [362] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG834 [365] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuxx=pbuc1_derefidx_vbuz1 + //SEG830 [363] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuxx=pbuc1_derefidx_vbuz1 ldx keyboard_events_size lda keyboard_events,x tax - //SEG835 [366] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG831 [364] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] breturn_from_b3: - //SEG836 [366] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG837 [366] 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 + //SEG832 [364] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG833 [364] 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 - //SEG838 [366] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG834 [364] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] breturn_from_keyboard_event_get: - //SEG839 [366] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG840 [366] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuxx=vbuc1 + //SEG835 [364] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG836 [364] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuxx=vbuc1 ldx #$ff jmp breturn - //SEG841 keyboard_event_get::@return + //SEG837 keyboard_event_get::@return breturn: - //SEG842 [367] return + //SEG838 [365] return rts } -//SEG843 keyboard_event_scan +//SEG839 keyboard_event_scan keyboard_event_scan: { .label row_scan = $b .label keycode = $a .label row = 9 - //SEG844 [369] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + //SEG840 [367] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] b1_from_keyboard_event_scan: - //SEG845 [369] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG846 [369] 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 + //SEG841 [367] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG842 [367] 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 - //SEG847 [369] 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 + //SEG843 [367] 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 - //SEG848 [369] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG844 [367] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] b1_from_b3: - //SEG849 [369] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG850 [369] 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 - //SEG851 [369] 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 + //SEG845 [367] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG846 [367] 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 + //SEG847 [367] 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 - //SEG852 keyboard_event_scan::@1 + //SEG848 keyboard_event_scan::@1 b1: - //SEG853 [370] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 + //SEG849 [368] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 ldx row - //SEG854 [371] call keyboard_matrix_read + //SEG850 [369] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG855 [372] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + //SEG851 [370] (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 - //SEG856 keyboard_event_scan::@25 + //SEG852 keyboard_event_scan::@25 b25: - //SEG857 [373] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa + //SEG853 [371] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa sta row_scan - //SEG858 [374] 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 + //SEG854 [372] 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 - //SEG859 keyboard_event_scan::@13 + //SEG855 keyboard_event_scan::@13 b13: - //SEG860 [375] (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 + //SEG856 [373] (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 - //SEG861 [376] 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] + //SEG857 [374] 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: - //SEG862 [376] 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 - //SEG863 [376] 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 + //SEG858 [374] 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 + //SEG859 [374] 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 - //SEG864 keyboard_event_scan::@3 + //SEG860 keyboard_event_scan::@3 b3: - //SEG865 [377] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG861 [375] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG866 [378] 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 + //SEG862 [376] 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 - //SEG867 [379] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG863 [377] 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 - //SEG868 keyboard_event_scan::@20 + //SEG864 keyboard_event_scan::@20 b20: - //SEG869 [380] call keyboard_event_pressed - //SEG870 [357] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG865 [378] call keyboard_event_pressed + //SEG866 [355] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] keyboard_event_pressed_from_b20: - //SEG871 [357] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG867 [355] 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 - //SEG872 [381] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + //SEG868 [379] (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 - //SEG873 keyboard_event_scan::@26 + //SEG869 keyboard_event_scan::@26 b26: - //SEG874 [382] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + //SEG870 [380] (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 - //SEG875 [383] 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 + //SEG871 [381] 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 - //SEG876 [384] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG872 [382] 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 - //SEG877 keyboard_event_scan::@21 + //SEG873 keyboard_event_scan::@21 b21: - //SEG878 [385] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] + //SEG874 [383] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] b9_from_b21: - //SEG879 [385] 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 + //SEG875 [383] 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 - //SEG880 [385] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG876 [383] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] b9_from_b26: - //SEG881 [385] 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 + //SEG877 [383] 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 - //SEG882 keyboard_event_scan::@9 + //SEG878 keyboard_event_scan::@9 b9: - //SEG883 [386] call keyboard_event_pressed - //SEG884 [357] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG879 [384] call keyboard_event_pressed + //SEG880 [355] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] keyboard_event_pressed_from_b9: - //SEG885 [357] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG881 [355] 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 - //SEG886 [387] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + //SEG882 [385] (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 - //SEG887 keyboard_event_scan::@27 + //SEG883 keyboard_event_scan::@27 b27: - //SEG888 [388] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + //SEG884 [386] (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 - //SEG889 [389] 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 + //SEG885 [387] 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 - //SEG890 keyboard_event_scan::@22 + //SEG886 keyboard_event_scan::@22 b22: - //SEG891 [390] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG887 [388] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_RSHIFT tax - //SEG892 [391] 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] + //SEG888 [389] 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: - //SEG893 [391] 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 + //SEG889 [389] 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 - //SEG894 keyboard_event_scan::@10 + //SEG890 keyboard_event_scan::@10 b10: - //SEG895 [392] call keyboard_event_pressed - //SEG896 [357] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG891 [390] call keyboard_event_pressed + //SEG892 [355] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] keyboard_event_pressed_from_b10: - //SEG897 [357] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG893 [355] 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 - //SEG898 [393] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + //SEG894 [391] (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 - //SEG899 keyboard_event_scan::@28 + //SEG895 keyboard_event_scan::@28 b28: - //SEG900 [394] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + //SEG896 [392] (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 - //SEG901 [395] 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 + //SEG897 [393] 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 - //SEG902 keyboard_event_scan::@23 + //SEG898 keyboard_event_scan::@23 b23: - //SEG903 [396] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG899 [394] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_CTRL tax - //SEG904 [397] 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] + //SEG900 [395] 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: - //SEG905 [397] 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 + //SEG901 [395] 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 - //SEG906 keyboard_event_scan::@11 + //SEG902 keyboard_event_scan::@11 b11: - //SEG907 [398] call keyboard_event_pressed - //SEG908 [357] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG903 [396] call keyboard_event_pressed + //SEG904 [355] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] keyboard_event_pressed_from_b11: - //SEG909 [357] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG905 [355] 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 - //SEG910 [399] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + //SEG906 [397] (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 - //SEG911 keyboard_event_scan::@29 + //SEG907 keyboard_event_scan::@29 b29: - //SEG912 [400] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + //SEG908 [398] (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 - //SEG913 [401] 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 + //SEG909 [399] 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 - //SEG914 keyboard_event_scan::@24 + //SEG910 keyboard_event_scan::@24 b24: - //SEG915 [402] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuaa=vbuxx_bor_vbuc1 + //SEG911 [400] (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 - //SEG916 keyboard_event_scan::@return + //SEG912 keyboard_event_scan::@return breturn: - //SEG917 [403] return + //SEG913 [401] return rts - //SEG918 [404] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG914 [402] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b4_from_b25: - //SEG919 [404] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG920 [404] 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 - //SEG921 [404] 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 + //SEG915 [402] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG916 [402] 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 + //SEG917 [402] 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 - //SEG922 [404] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG918 [402] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] b4_from_b5: - //SEG923 [404] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG924 [404] 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 - //SEG925 [404] 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 + //SEG919 [402] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG920 [402] 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 + //SEG921 [402] 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 - //SEG926 keyboard_event_scan::@4 + //SEG922 keyboard_event_scan::@4 b4: - //SEG927 [405] (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 + //SEG923 [403] (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 - //SEG928 [406] (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 + //SEG924 [404] (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 - //SEG929 [407] 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 + //SEG925 [405] 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 - //SEG930 keyboard_event_scan::@15 + //SEG926 keyboard_event_scan::@15 b15: - //SEG931 [408] 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 + //SEG927 [406] 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 - //SEG932 keyboard_event_scan::@16 + //SEG928 keyboard_event_scan::@16 b16: - //SEG933 [409] (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 + //SEG929 [407] (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 - //SEG934 [410] 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 + //SEG930 [408] 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 - //SEG935 keyboard_event_scan::@17 + //SEG931 keyboard_event_scan::@17 b17: - //SEG936 [411] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG932 [409] *((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 - //SEG937 [412] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG933 [410] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG938 [413] 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] + //SEG934 [411] 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: - //SEG939 [413] 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 + //SEG935 [411] 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 - //SEG940 keyboard_event_scan::@5 + //SEG936 keyboard_event_scan::@5 b5: - //SEG941 [414] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG937 [412] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG942 [415] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx + //SEG938 [413] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx inx - //SEG943 [416] 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 + //SEG939 [414] 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 - //SEG944 keyboard_event_scan::@19 + //SEG940 keyboard_event_scan::@19 b19: - //SEG945 [417] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG941 [415] *((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 - //SEG946 keyboard_event_scan::@7 + //SEG942 keyboard_event_scan::@7 b7: - //SEG947 [418] (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 + //SEG943 [416] (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 - //SEG948 [419] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa + //SEG944 [417] *((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 - //SEG949 [420] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG945 [418] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5_from_b7 } -//SEG950 keyboard_matrix_read +//SEG946 keyboard_matrix_read keyboard_matrix_read: { - //SEG951 [421] *((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 + //SEG947 [419] *((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 - //SEG952 [422] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 + //SEG948 [420] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff jmp breturn - //SEG953 keyboard_matrix_read::@return + //SEG949 keyboard_matrix_read::@return breturn: - //SEG954 [423] return + //SEG950 [421] return rts } -//SEG955 render_show +//SEG951 render_show render_show: { .const toD0181_return = (>(PLAYFIELD_SCREEN_1&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f .const toD0182_return = (>(PLAYFIELD_SCREEN_2&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f - //SEG956 [424] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 -- vbuz1_eq_0_then_la1 + //SEG952 [422] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 -- vbuz1_eq_0_then_la1 lda render_screen_show cmp #0 beq toD0181_from_render_show - //SEG957 [425] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] + //SEG953 [423] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] toD0182_from_render_show: jmp toD0182 - //SEG958 render_show::toD0182 + //SEG954 render_show::toD0182 toD0182: - //SEG959 [426] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] + //SEG955 [424] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] b2_from_toD0182: - //SEG960 [426] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@2#0] -- vbuaa=vbuc1 + //SEG956 [424] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@2#0] -- vbuaa=vbuc1 lda #toD0182_return jmp b2 - //SEG961 render_show::@2 + //SEG957 render_show::@2 b2: - //SEG962 [427] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuaa + //SEG958 [425] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuaa sta D018 - //SEG963 [428] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 + //SEG959 [426] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 lda render_screen_show sta render_screen_showing jmp breturn - //SEG964 render_show::@return + //SEG960 render_show::@return breturn: - //SEG965 [429] return + //SEG961 [427] return rts - //SEG966 [430] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] + //SEG962 [428] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] toD0181_from_render_show: jmp toD0181 - //SEG967 render_show::toD0181 + //SEG963 render_show::toD0181 toD0181: - //SEG968 [426] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] + //SEG964 [424] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] b2_from_toD0181: - //SEG969 [426] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@2#0] -- vbuaa=vbuc1 + //SEG965 [424] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@2#0] -- vbuaa=vbuc1 lda #toD0181_return jmp b2 } -//SEG970 play_init +//SEG966 play_init play_init: { .label pli = 5 .label idx = 2 - //SEG971 [432] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] + //SEG967 [430] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] b1_from_play_init: - //SEG972 [432] 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 + //SEG968 [430] 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 - //SEG973 [432] 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 + //SEG969 [430] 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 - //SEG974 [432] 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 + //SEG970 [430] 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 - //SEG975 [432] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] + //SEG971 [430] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] b1_from_b1: - //SEG976 [432] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy - //SEG977 [432] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy - //SEG978 [432] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy + //SEG972 [430] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy + //SEG973 [430] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy + //SEG974 [430] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy jmp b1 - //SEG979 play_init::@1 + //SEG975 play_init::@1 b1: - //SEG980 [433] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG976 [431] (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 - //SEG981 [434] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG977 [432] *((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 - //SEG982 [435] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG978 [433] *((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 - //SEG983 [436] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG979 [434] (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 @@ -19312,41 +19212,41 @@ play_init: { bcc !+ inc pli+1 !: - //SEG984 [437] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG980 [435] (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 - //SEG985 [438] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx + //SEG981 [436] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx inx - //SEG986 [439] 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 + //SEG982 [437] 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 b3 - //SEG987 play_init::@3 + //SEG983 play_init::@3 b3: - //SEG988 [440] *((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 + //SEG984 [438] *((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 - //SEG989 [441] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0) -- vbuz1=_deref_pbuc1 + //SEG985 [439] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0) -- vbuz1=_deref_pbuc1 lda MOVEDOWN_SLOW_SPEEDS sta current_movedown_slow - //SEG990 [442] phi from play_init::@3 to play_init::@2 [phi:play_init::@3->play_init::@2] + //SEG986 [440] phi from play_init::@3 to play_init::@2 [phi:play_init::@3->play_init::@2] b2_from_b3: - //SEG991 [442] phi (byte) play_init::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init::@3->play_init::@2#0] -- vbuxx=vbuc1 + //SEG987 [440] phi (byte) play_init::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init::@3->play_init::@2#0] -- vbuxx=vbuc1 ldx #0 jmp b2 - //SEG992 [442] phi from play_init::@2 to play_init::@2 [phi:play_init::@2->play_init::@2] + //SEG988 [440] phi from play_init::@2 to play_init::@2 [phi:play_init::@2->play_init::@2] b2_from_b2: - //SEG993 [442] phi (byte) play_init::b#2 = (byte) play_init::b#1 [phi:play_init::@2->play_init::@2#0] -- register_copy + //SEG989 [440] phi (byte) play_init::b#2 = (byte) play_init::b#1 [phi:play_init::@2->play_init::@2#0] -- register_copy jmp b2 - //SEG994 play_init::@2 + //SEG990 play_init::@2 b2: - //SEG995 [443] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 + //SEG991 [441] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 txa asl asl - //SEG996 [444] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) -- pduc1_derefidx_vbuaa=pduc2_derefidx_vbuaa + //SEG992 [442] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) -- pduc1_derefidx_vbuaa=pduc2_derefidx_vbuaa tay lda SCORE_BASE_BCD,y sta score_add_bcd,y @@ -19356,222 +19256,222 @@ play_init: { sta score_add_bcd+2,y lda SCORE_BASE_BCD+3,y sta score_add_bcd+3,y - //SEG997 [445] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 -- vbuxx=_inc_vbuxx + //SEG993 [443] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 -- vbuxx=_inc_vbuxx inx - //SEG998 [446] if((byte) play_init::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_init::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG994 [444] if((byte) play_init::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_init::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #5 bne b2_from_b2 jmp breturn - //SEG999 play_init::@return + //SEG995 play_init::@return breturn: - //SEG1000 [447] return + //SEG996 [445] return rts } -//SEG1001 sprites_irq_init +//SEG997 sprites_irq_init sprites_irq_init: { - //SEG1002 asm { sei } + //SEG998 asm { sei } sei - //SEG1003 [449] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG999 [447] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG1004 asm { ldaCIA1_INTERRUPT } + //SEG1000 asm { ldaCIA1_INTERRUPT } lda CIA1_INTERRUPT - //SEG1005 [451] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 + //SEG1001 [449] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_DDR_MEMORY_MASK sta PROCPORT_DDR - //SEG1006 [452] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 + //SEG1002 [450] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - //SEG1007 [453] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 + //SEG1003 [451] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG1008 [454] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + //SEG1004 [452] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 lda VIC_CONTROL and #$7f sta VIC_CONTROL - //SEG1009 [455] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 + //SEG1005 [453] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER_FIRST sta RASTER - //SEG1010 [456] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG1006 [454] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_ENABLE - //SEG1011 [457] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 + //SEG1007 [455] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 lda #sprites_irq sta HARDWARE_IRQ+1 - //SEG1012 asm { cli } + //SEG1008 asm { cli } cli jmp breturn - //SEG1013 sprites_irq_init::@return + //SEG1009 sprites_irq_init::@return breturn: - //SEG1014 [459] return + //SEG1010 [457] return rts } -//SEG1015 sprites_init +//SEG1011 sprites_init sprites_init: { .label xpos = 2 - //SEG1016 [460] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + //SEG1012 [458] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 lda #$f sta SPRITES_ENABLE - //SEG1017 [461] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG1013 [459] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SPRITES_MC - //SEG1018 [462] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG1014 [460] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 lda SPRITES_MC sta SPRITES_EXPAND_Y - //SEG1019 [463] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG1015 [461] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 lda SPRITES_EXPAND_Y sta SPRITES_EXPAND_X - //SEG1020 [464] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] + //SEG1016 [462] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] b1_from_sprites_init: - //SEG1021 [464] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 + //SEG1017 [462] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 lda #$18+$f*8 sta xpos - //SEG1022 [464] phi (byte) sprites_init::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuxx=vbuc1 + //SEG1018 [462] phi (byte) sprites_init::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuxx=vbuc1 ldx #0 jmp b1 - //SEG1023 [464] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] + //SEG1019 [462] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] b1_from_b1: - //SEG1024 [464] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy - //SEG1025 [464] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy + //SEG1020 [462] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy + //SEG1021 [462] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy jmp b1 - //SEG1026 sprites_init::@1 + //SEG1022 sprites_init::@1 b1: - //SEG1027 [465] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG1023 [463] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 txa asl - //SEG1028 [466] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG1024 [464] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuaa=vbuz1 tay lda xpos sta SPRITES_XPOS,y - //SEG1029 [467] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG1025 [465] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #BLACK sta SPRITES_COLS,x - //SEG1030 [468] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1026 [466] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 lda #$18 clc adc xpos sta xpos - //SEG1031 [469] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuxx=_inc_vbuxx + //SEG1027 [467] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuxx=_inc_vbuxx inx - //SEG1032 [470] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG1028 [468] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b1_from_b1 jmp breturn - //SEG1033 sprites_init::@return + //SEG1029 sprites_init::@return breturn: - //SEG1034 [471] return + //SEG1030 [469] return rts } -//SEG1035 render_init +//SEG1031 render_init render_init: { .const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_CHARSET)>>6 .label li_1 = 5 .label li_2 = 7 jmp vicSelectGfxBank1 - //SEG1036 render_init::vicSelectGfxBank1 + //SEG1032 render_init::vicSelectGfxBank1 vicSelectGfxBank1: - //SEG1037 [473] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG1033 [471] *((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 - //SEG1038 [474] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] + //SEG1034 [472] 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 - //SEG1039 render_init::vicSelectGfxBank1_toDd001 + //SEG1035 render_init::vicSelectGfxBank1_toDd001 vicSelectGfxBank1_toDd001: jmp vicSelectGfxBank1_b1 - //SEG1040 render_init::vicSelectGfxBank1_@1 + //SEG1036 render_init::vicSelectGfxBank1_@1 vicSelectGfxBank1_b1: - //SEG1041 [475] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 + //SEG1037 [473] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 lda #vicSelectGfxBank1_toDd001_return sta CIA2_PORT_A jmp b3 - //SEG1042 render_init::@3 + //SEG1038 render_init::@3 b3: - //SEG1043 [476] *((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 + //SEG1039 [474] *((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 - //SEG1044 [477] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG1040 [475] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BORDERCOL - //SEG1045 [478] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG1041 [476] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BGCOL1 - //SEG1046 [479] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 + //SEG1042 [477] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 lda #BLUE sta BGCOL2 - //SEG1047 [480] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 + //SEG1043 [478] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 lda #CYAN sta BGCOL3 - //SEG1048 [481] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 + //SEG1044 [479] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 lda #GREY sta BGCOL4 - //SEG1049 [482] call render_screen_original - //SEG1050 [495] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] + //SEG1045 [480] call render_screen_original + //SEG1046 [493] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] render_screen_original_from_b3: - //SEG1051 [495] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 + //SEG1047 [493] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1 sta render_screen_original.screen+1 jsr render_screen_original - //SEG1052 [483] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] + //SEG1048 [481] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] b4_from_b3: jmp b4 - //SEG1053 render_init::@4 + //SEG1049 render_init::@4 b4: - //SEG1054 [484] call render_screen_original - //SEG1055 [495] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] + //SEG1050 [482] call render_screen_original + //SEG1051 [493] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] render_screen_original_from_b4: - //SEG1056 [495] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_init::@4->render_screen_original#0] -- pbuz1=pbuc1 + //SEG1052 [493] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_init::@4->render_screen_original#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2 sta render_screen_original.screen+1 jsr render_screen_original - //SEG1057 [485] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] + //SEG1053 [483] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] b1_from_b4: - //SEG1058 [485] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#0] -- pbuz1=pbuc1 + //SEG1054 [483] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2+2*$28+$10 sta li_2+1 - //SEG1059 [485] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#1] -- pbuz1=pbuc1 + //SEG1055 [483] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#1] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1+2*$28+$10 sta li_1+1 - //SEG1060 [485] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@4->render_init::@1#2] -- vbuxx=vbuc1 + //SEG1056 [483] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@4->render_init::@1#2] -- vbuxx=vbuc1 ldx #0 jmp b1 - //SEG1061 [485] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + //SEG1057 [483] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] b1_from_b1: - //SEG1062 [485] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - //SEG1063 [485] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy - //SEG1064 [485] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy + //SEG1058 [483] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG1059 [483] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + //SEG1060 [483] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy jmp b1 - //SEG1065 render_init::@1 + //SEG1061 render_init::@1 b1: - //SEG1066 [486] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG1062 [484] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 txa asl - //SEG1067 [487] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG1063 [485] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuaa=pbuz1 tay lda li_1 sta screen_lines_1,y lda li_1+1 sta screen_lines_1+1,y - //SEG1068 [488] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG1064 [486] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 txa asl - //SEG1069 [489] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG1065 [487] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuaa=pbuz1 tay lda li_2 sta screen_lines_2,y lda li_2+1 sta screen_lines_2+1,y - //SEG1070 [490] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG1066 [488] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda li_1 clc adc #$28 @@ -19579,7 +19479,7 @@ render_init: { bcc !+ inc li_1+1 !: - //SEG1071 [491] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG1067 [489] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda li_2 clc adc #$28 @@ -19587,18 +19487,18 @@ render_init: { bcc !+ inc li_2+1 !: - //SEG1072 [492] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx + //SEG1068 [490] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx inx - //SEG1073 [493] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG1069 [491] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_LINES-1+1 bne b1_from_b1 jmp breturn - //SEG1074 render_init::@return + //SEG1070 render_init::@return breturn: - //SEG1075 [494] return + //SEG1071 [492] return rts } -//SEG1076 render_screen_original +//SEG1072 render_screen_original render_screen_original: { .const SPACE = 0 .label screen = $11 @@ -19606,357 +19506,357 @@ render_screen_original: { .label oscr = 5 .label ocols = 7 .label y = 2 - //SEG1077 [496] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] + //SEG1073 [494] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] b1_from_render_screen_original: - //SEG1078 [496] 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 + //SEG1074 [494] 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 - //SEG1079 [496] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 + //SEG1075 [494] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 lda #PLAYFIELD_COLORS_ORIGINAL+$20*2 sta ocols+1 - //SEG1080 [496] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 + //SEG1076 [494] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_ORIGINAL+$20*2 sta oscr+1 - //SEG1081 [496] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS#0 [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 + //SEG1077 [494] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS#0 [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 lda #COLS sta cols+1 - //SEG1082 [496] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#4] -- register_copy + //SEG1078 [494] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#4] -- register_copy jmp b1 - //SEG1083 [496] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] + //SEG1079 [494] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] b1_from_b7: - //SEG1084 [496] 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 - //SEG1085 [496] phi (byte*) render_screen_original::ocols#4 = (byte*) render_screen_original::ocols#1 [phi:render_screen_original::@7->render_screen_original::@1#1] -- register_copy - //SEG1086 [496] phi (byte*) render_screen_original::oscr#4 = (byte*) render_screen_original::oscr#1 [phi:render_screen_original::@7->render_screen_original::@1#2] -- register_copy - //SEG1087 [496] phi (byte*) render_screen_original::cols#7 = (byte*) render_screen_original::cols#3 [phi:render_screen_original::@7->render_screen_original::@1#3] -- register_copy - //SEG1088 [496] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#10 [phi:render_screen_original::@7->render_screen_original::@1#4] -- register_copy + //SEG1080 [494] 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 + //SEG1081 [494] phi (byte*) render_screen_original::ocols#4 = (byte*) render_screen_original::ocols#1 [phi:render_screen_original::@7->render_screen_original::@1#1] -- register_copy + //SEG1082 [494] phi (byte*) render_screen_original::oscr#4 = (byte*) render_screen_original::oscr#1 [phi:render_screen_original::@7->render_screen_original::@1#2] -- register_copy + //SEG1083 [494] phi (byte*) render_screen_original::cols#7 = (byte*) render_screen_original::cols#3 [phi:render_screen_original::@7->render_screen_original::@1#3] -- register_copy + //SEG1084 [494] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#10 [phi:render_screen_original::@7->render_screen_original::@1#4] -- register_copy jmp b1 - //SEG1089 render_screen_original::@1 + //SEG1085 render_screen_original::@1 b1: - //SEG1090 [497] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] + //SEG1086 [495] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] b2_from_b1: - //SEG1091 [497] 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 + //SEG1087 [495] 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 - //SEG1092 [497] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#7 [phi:render_screen_original::@1->render_screen_original::@2#1] -- register_copy - //SEG1093 [497] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#8 [phi:render_screen_original::@1->render_screen_original::@2#2] -- register_copy + //SEG1088 [495] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#7 [phi:render_screen_original::@1->render_screen_original::@2#1] -- register_copy + //SEG1089 [495] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#8 [phi:render_screen_original::@1->render_screen_original::@2#2] -- register_copy jmp b2 - //SEG1094 [497] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] + //SEG1090 [495] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] b2_from_b2: - //SEG1095 [497] 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 - //SEG1096 [497] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2->render_screen_original::@2#1] -- register_copy - //SEG1097 [497] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2->render_screen_original::@2#2] -- register_copy + //SEG1091 [495] 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 + //SEG1092 [495] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2->render_screen_original::@2#1] -- register_copy + //SEG1093 [495] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2->render_screen_original::@2#2] -- register_copy jmp b2 - //SEG1098 render_screen_original::@2 + //SEG1094 render_screen_original::@2 b2: - //SEG1099 [498] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG1095 [496] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG1100 [499] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 + //SEG1096 [497] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG1101 [500] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG1097 [498] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG1102 [501] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 + //SEG1098 [499] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1103 [502] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx + //SEG1099 [500] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx inx - //SEG1104 [503] 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 + //SEG1100 [501] 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 - //SEG1105 [504] 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] + //SEG1101 [502] 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: - //SEG1106 [504] 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 - //SEG1107 [504] phi (byte*) render_screen_original::cols#5 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#1] -- register_copy - //SEG1108 [504] phi (byte*) render_screen_original::ocols#2 = (byte*) render_screen_original::ocols#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#2] -- register_copy - //SEG1109 [504] phi (byte*) render_screen_original::screen#6 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#3] -- register_copy - //SEG1110 [504] phi (byte*) render_screen_original::oscr#2 = (byte*) render_screen_original::oscr#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#4] -- register_copy + //SEG1102 [502] 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 + //SEG1103 [502] phi (byte*) render_screen_original::cols#5 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#1] -- register_copy + //SEG1104 [502] phi (byte*) render_screen_original::ocols#2 = (byte*) render_screen_original::ocols#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#2] -- register_copy + //SEG1105 [502] phi (byte*) render_screen_original::screen#6 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#3] -- register_copy + //SEG1106 [502] phi (byte*) render_screen_original::oscr#2 = (byte*) render_screen_original::oscr#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#4] -- register_copy jmp b3 - //SEG1111 render_screen_original::@3 + //SEG1107 render_screen_original::@3 b3: - //SEG1112 [505] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG1108 [503] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (oscr),y ldy #0 sta (screen),y - //SEG1113 [506] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 + //SEG1109 [504] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG1114 [507] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 + //SEG1110 [505] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 inc oscr bne !+ inc oscr+1 !: - //SEG1115 [508] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG1111 [506] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (ocols),y ldy #0 sta (cols),y - //SEG1116 [509] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 + //SEG1112 [507] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1117 [510] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 + //SEG1113 [508] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 inc ocols bne !+ inc ocols+1 !: - //SEG1118 [511] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx + //SEG1114 [509] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx inx - //SEG1119 [512] 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 + //SEG1115 [510] 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 - //SEG1120 [513] 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] + //SEG1116 [511] 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: - //SEG1121 [513] 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 - //SEG1122 [513] phi (byte*) render_screen_original::cols#6 = (byte*) render_screen_original::cols#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#1] -- register_copy - //SEG1123 [513] phi (byte*) render_screen_original::screen#7 = (byte*) render_screen_original::screen#3 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#2] -- register_copy + //SEG1117 [511] 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 + //SEG1118 [511] phi (byte*) render_screen_original::cols#6 = (byte*) render_screen_original::cols#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#1] -- register_copy + //SEG1119 [511] phi (byte*) render_screen_original::screen#7 = (byte*) render_screen_original::screen#3 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#2] -- register_copy jmp b4 - //SEG1124 render_screen_original::@4 + //SEG1120 render_screen_original::@4 b4: - //SEG1125 [514] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG1121 [512] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG1126 [515] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 + //SEG1122 [513] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG1127 [516] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG1123 [514] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG1128 [517] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 + //SEG1124 [515] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1129 [518] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx + //SEG1125 [516] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx inx - //SEG1130 [519] 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 + //SEG1126 [517] 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 - //SEG1131 render_screen_original::@7 + //SEG1127 render_screen_original::@7 b7: - //SEG1132 [520] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 + //SEG1128 [518] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG1133 [521] 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 + //SEG1129 [519] 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 - //SEG1134 render_screen_original::@return + //SEG1130 render_screen_original::@return breturn: - //SEG1135 [522] return + //SEG1131 [520] return rts } -//SEG1136 sid_rnd_init +//SEG1132 sid_rnd_init sid_rnd_init: { - //SEG1137 [523] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 + //SEG1133 [521] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 lda #<$ffff sta SID_VOICE3_FREQ lda #>$ffff sta SID_VOICE3_FREQ+1 - //SEG1138 [524] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG1134 [522] *((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 - //SEG1139 sid_rnd_init::@return + //SEG1135 sid_rnd_init::@return breturn: - //SEG1140 [525] return + //SEG1136 [523] return rts } -//SEG1141 sprites_irq +//SEG1137 sprites_irq sprites_irq: { .const toSpritePtr2_return = PLAYFIELD_SPRITES>>6 .label raster_sprite_gfx_modify = $2e - //SEG1142 entry interrupt(HARDWARE_CLOBBER) + //SEG1138 entry interrupt(HARDWARE_CLOBBER) sta rega+1 stx regx+1 - //SEG1143 asm { cld } + //SEG1139 asm { cld } cld - //SEG1144 [527] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuaa=vbuz1 + //SEG1140 [525] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuaa=vbuz1 lda irq_sprite_ypos - //SEG1145 [528] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1141 [526] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS - //SEG1146 [529] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1142 [527] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS+2 - //SEG1147 [530] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1143 [528] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS+4 - //SEG1148 [531] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1144 [529] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS+6 - //SEG1149 [532] (byte/signed word/word/dword/signed dword~) sprites_irq::$0 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuz1_plus_1 + //SEG1145 [530] (byte/signed word/word/dword/signed dword~) sprites_irq::$0 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuz1_plus_1 ldx irq_raster_next inx - //SEG1150 [533] (byte) sprites_irq::raster_sprite_gfx_modify#0 ← (byte/signed word/word/dword/signed dword~) sprites_irq::$0 -- vbuz1=vbuxx + //SEG1146 [531] (byte) sprites_irq::raster_sprite_gfx_modify#0 ← (byte/signed word/word/dword/signed dword~) sprites_irq::$0 -- vbuz1=vbuxx stx raster_sprite_gfx_modify jmp b1 - //SEG1151 sprites_irq::@1 + //SEG1147 sprites_irq::@1 b1: - //SEG1152 [534] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 + //SEG1148 [532] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 lda RASTER cmp raster_sprite_gfx_modify bcc b1 jmp b8 - //SEG1153 sprites_irq::@8 + //SEG1149 sprites_irq::@8 b8: - //SEG1154 [535] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuxx=vbuz1 + //SEG1150 [533] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuxx=vbuz1 ldx irq_sprite_ptr - //SEG1155 [536] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 -- vbuz1_eq_0_then_la1 + //SEG1151 [534] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 -- vbuz1_eq_0_then_la1 lda render_screen_showing cmp #0 beq b2 jmp b9 - //SEG1156 sprites_irq::@9 + //SEG1152 sprites_irq::@9 b9: - //SEG1157 [537] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx + //SEG1153 [535] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_2 - //SEG1158 [538] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx + //SEG1154 [536] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx txa clc adc #1 - //SEG1159 [539] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuaa + //SEG1155 [537] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_2+1 - //SEG1160 [540] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuaa + //SEG1156 [538] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_2+2 - //SEG1161 [541] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuaa=_inc_vbuaa + //SEG1157 [539] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuaa=_inc_vbuaa clc adc #1 - //SEG1162 [542] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 -- _deref_pbuc1=vbuaa + //SEG1158 [540] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_2+3 jmp b3 - //SEG1163 sprites_irq::@3 + //SEG1159 sprites_irq::@3 b3: - //SEG1164 [543] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz1 + //SEG1160 [541] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz1 inc irq_cnt - //SEG1165 [544] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 + //SEG1161 [542] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 lda irq_cnt cmp #9 beq b4 jmp b11 - //SEG1166 sprites_irq::@11 + //SEG1162 sprites_irq::@11 b11: - //SEG1167 [545] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 -- vbuz1_eq_vbuc1_then_la1 + //SEG1163 [543] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 -- vbuz1_eq_vbuc1_then_la1 lda irq_cnt cmp #$a beq b5 jmp b12 - //SEG1168 sprites_irq::@12 + //SEG1164 sprites_irq::@12 b12: - //SEG1169 [546] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1165 [544] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 -- vbuz1=vbuz1_plus_vbuc1 lda #$14 clc adc irq_raster_next sta irq_raster_next - //SEG1170 [547] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1166 [545] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_sprite_ypos sta irq_sprite_ypos - //SEG1171 [548] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1167 [546] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 lda #3 clc adc irq_sprite_ptr sta irq_sprite_ptr - //SEG1172 [549] phi from sprites_irq::@12 sprites_irq::@15 sprites_irq::@5 to sprites_irq::@7 [phi:sprites_irq::@12/sprites_irq::@15/sprites_irq::@5->sprites_irq::@7] + //SEG1168 [547] phi from sprites_irq::@12 sprites_irq::@15 sprites_irq::@5 to sprites_irq::@7 [phi:sprites_irq::@12/sprites_irq::@15/sprites_irq::@5->sprites_irq::@7] b7_from_b12: b7_from_b15: b7_from_b5: - //SEG1173 [549] phi (byte) irq_raster_next#4 = (byte) irq_raster_next#3 [phi:sprites_irq::@12/sprites_irq::@15/sprites_irq::@5->sprites_irq::@7#0] -- register_copy + //SEG1169 [547] phi (byte) irq_raster_next#4 = (byte) irq_raster_next#3 [phi:sprites_irq::@12/sprites_irq::@15/sprites_irq::@5->sprites_irq::@7#0] -- register_copy jmp b7 - //SEG1174 sprites_irq::@7 + //SEG1170 sprites_irq::@7 b7: - //SEG1175 [550] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 -- _deref_pbuc1=vbuz1 + //SEG1171 [548] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 -- _deref_pbuc1=vbuz1 lda irq_raster_next sta RASTER - //SEG1176 [551] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG1172 [549] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS jmp breturn - //SEG1177 sprites_irq::@return + //SEG1173 sprites_irq::@return breturn: - //SEG1178 [552] return - exit interrupt(HARDWARE_CLOBBER) + //SEG1174 [550] return - exit interrupt(HARDWARE_CLOBBER) rega: lda #00 regx: ldx #00 rti - //SEG1179 sprites_irq::@5 + //SEG1175 sprites_irq::@5 b5: - //SEG1180 [553] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 + //SEG1176 [551] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 lda #0 sta irq_cnt - //SEG1181 [554] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 + //SEG1177 [552] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next - //SEG1182 [555] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1178 [553] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_sprite_ypos sta irq_sprite_ypos - //SEG1183 [556] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1179 [554] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 lda #3 clc adc irq_sprite_ptr sta irq_sprite_ptr jmp b7_from_b5 - //SEG1184 sprites_irq::@4 + //SEG1180 sprites_irq::@4 b4: - //SEG1185 [557] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1181 [555] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_raster_next sta irq_raster_next - //SEG1186 [558] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 -- vbuz1=vbuc1 + //SEG1182 [556] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 -- vbuz1=vbuc1 lda #SPRITES_FIRST_YPOS sta irq_sprite_ypos - //SEG1187 [559] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] + //SEG1183 [557] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] toSpritePtr2_from_b4: jmp toSpritePtr2 - //SEG1188 sprites_irq::toSpritePtr2 + //SEG1184 sprites_irq::toSpritePtr2 toSpritePtr2: jmp b15 - //SEG1189 sprites_irq::@15 + //SEG1185 sprites_irq::@15 b15: - //SEG1190 [560] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 + //SEG1186 [558] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 lda #toSpritePtr2_return sta irq_sprite_ptr jmp b7_from_b15 - //SEG1191 sprites_irq::@2 + //SEG1187 sprites_irq::@2 b2: - //SEG1192 [561] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx + //SEG1188 [559] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_1 - //SEG1193 [562] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx + //SEG1189 [560] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx txa clc adc #1 - //SEG1194 [563] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuaa + //SEG1190 [561] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_1+1 - //SEG1195 [564] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuaa + //SEG1191 [562] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_1+2 - //SEG1196 [565] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuaa=_inc_vbuaa + //SEG1192 [563] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuaa=_inc_vbuaa clc adc #1 - //SEG1197 [566] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 -- _deref_pbuc1=vbuaa + //SEG1193 [564] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_1+3 jmp b3 } @@ -20067,12 +19967,11 @@ Removing instruction jmp b2 Removing instruction jmp b1 Removing instruction jmp breturn Removing instruction jmp b1 -Removing instruction jmp b7 +Removing instruction jmp b6 Removing instruction jmp b3 Removing instruction jmp breturn Removing instruction jmp b4 -Removing instruction jmp b9 -Removing instruction jmp b10 +Removing instruction jmp b8 Removing instruction jmp b5 Removing instruction jmp b1 Removing instruction jmp b2 @@ -20311,7 +20210,7 @@ Removing instruction b1_from_render_bcd: Removing instruction b1_from_b2: Removing instruction b1_from_b3: Removing instruction b3_from_b5: -Removing instruction b3_from_b7: +Removing instruction b3_from_b6: Removing instruction b4_from_b5: Removing instruction b1_from_b3: Removing instruction b2_from_b2: @@ -20445,10 +20344,10 @@ Removing instruction breturn: Removing instruction b2: Removing instruction breturn: Removing instruction b1_from_render_moving: +Removing instruction b6: Removing instruction breturn: Removing instruction b4_from_b2: -Removing instruction b9: -Removing instruction b10: +Removing instruction b8: Removing instruction b1_from_render_playfield: Removing instruction b2_from_b1: Removing instruction b3: @@ -20599,7 +20498,6 @@ Removing instruction jmp b1 Removing instruction jmp b1 Removing instruction jmp b2 Succesful ASM optimization Pass5NextJumpElimination -Replacing instruction ldy xpos with TAY Removing instruction lda irq_cnt Succesful ASM optimization Pass5UnnecesaryLoadElimination Removing instruction b11: @@ -20929,35 +20827,35 @@ FINAL SYMBOL TABLE (byte*~) current_piece#94 current_piece#94 zp ZP_WORD:5 4.0 (byte*~) current_piece#95 current_piece zp ZP_WORD:26 4.0 (byte) current_piece_char -(byte~) current_piece_char#104 reg byte x 4.0 -(byte~) current_piece_char#105 reg byte x 22.0 +(byte~) current_piece_char#102 reg byte x 4.0 +(byte~) current_piece_char#103 reg byte x 22.0 (byte) current_piece_char#14 current_piece_char zp ZP_BYTE:28 3.628571428571428 (byte) current_piece_char#16 current_piece_char zp ZP_BYTE:28 0.32 (byte) current_piece_char#19 current_piece_char zp ZP_BYTE:28 187.38888888888889 (byte) current_piece_char#27 current_piece_char zp ZP_BYTE:28 6.0 -(byte) current_piece_char#76 reg byte x 46.09090909090909 +(byte) current_piece_char#64 reg byte x 50.699999999999996 (byte*) current_piece_gfx -(byte*) current_piece_gfx#105 current_piece_gfx zp ZP_WORD:30 187.38888888888889 -(byte*~) current_piece_gfx#116 current_piece_gfx#116 zp ZP_WORD:5 2.0 -(byte*~) current_piece_gfx#117 current_piece_gfx#117 zp ZP_WORD:5 11.0 +(byte*) current_piece_gfx#103 current_piece_gfx zp ZP_WORD:30 187.38888888888889 +(byte*~) current_piece_gfx#114 current_piece_gfx#114 zp ZP_WORD:5 2.0 +(byte*~) current_piece_gfx#115 current_piece_gfx#115 zp ZP_WORD:5 11.0 (byte*) current_piece_gfx#16 current_piece_gfx zp ZP_WORD:30 7.055555555555554 (byte*) current_piece_gfx#18 current_piece_gfx zp ZP_WORD:30 0.3571428571428571 (byte*) current_piece_gfx#19 current_piece_gfx zp ZP_WORD:30 1.3333333333333333 (byte*) current_piece_gfx#21 current_piece_gfx zp ZP_WORD:30 0.3333333333333333 (byte*) current_piece_gfx#33 current_piece_gfx zp ZP_WORD:30 6.0 (byte*) current_piece_gfx#6 current_piece_gfx zp ZP_WORD:30 4.0 -(byte*) current_piece_gfx#63 current_piece_gfx#63 zp ZP_WORD:5 46.09090909090909 +(byte*) current_piece_gfx#62 current_piece_gfx#62 zp ZP_WORD:5 50.699999999999996 (byte) current_xpos -(byte) current_xpos#115 current_xpos zp ZP_BYTE:32 20.75925925925926 -(byte~) current_xpos#126 current_xpos#126 zp ZP_BYTE:10 1.3333333333333333 -(byte~) current_xpos#127 current_xpos#127 zp ZP_BYTE:10 7.333333333333333 +(byte) current_xpos#113 current_xpos zp ZP_BYTE:32 20.75925925925926 +(byte~) current_xpos#124 current_xpos#124 zp ZP_BYTE:10 1.3333333333333333 +(byte~) current_xpos#125 current_xpos#125 zp ZP_BYTE:10 7.333333333333333 (byte) current_xpos#17 current_xpos zp ZP_BYTE:32 7.055555555555554 (byte) current_xpos#20 current_xpos zp ZP_BYTE:32 0.7692307692307692 (byte) current_xpos#24 current_xpos zp ZP_BYTE:32 0.4666666666666666 (byte) current_xpos#28 current_xpos zp ZP_BYTE:32 0.43478260869565216 (byte) current_xpos#41 current_xpos zp ZP_BYTE:32 6.0 (byte) current_xpos#5 current_xpos zp ZP_BYTE:32 4.0 -(byte) current_xpos#57 current_xpos#57 zp ZP_BYTE:10 5.181818181818182 +(byte) current_xpos#57 current_xpos#57 zp ZP_BYTE:10 5.7 (byte) current_xpos#7 current_xpos zp ZP_BYTE:32 4.0 (byte) current_ypos (byte~) current_ypos#100 reg byte y 1.0 @@ -21499,41 +21397,39 @@ FINAL SYMBOL TABLE (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_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 6 (void()) render_moving() -(byte~) render_moving::$5 reg byte a 202.0 +(byte~) render_moving::$2 reg byte a 202.0 (label) render_moving::@1 -(label) render_moving::@10 -(label) render_moving::@13 (label) render_moving::@2 (label) render_moving::@3 (label) render_moving::@4 (label) render_moving::@5 -(label) render_moving::@7 -(label) render_moving::@9 +(label) render_moving::@6 +(label) render_moving::@8 (label) render_moving::@return (byte) render_moving::c (byte) render_moving::c#1 c zp ZP_BYTE:15 1501.5 -(byte) render_moving::c#2 c zp ZP_BYTE:15 286.0 +(byte) render_moving::c#2 c zp ZP_BYTE:15 333.6666666666667 (byte) render_moving::current_cell (byte) render_moving::current_cell#0 reg byte a 1001.0 (byte) render_moving::i (byte) render_moving::i#1 i zp ZP_BYTE:13 202.0 -(byte) render_moving::i#10 i zp ZP_BYTE:13 429.0 -(byte) render_moving::i#3 i zp ZP_BYTE:13 50.5 +(byte) render_moving::i#2 i zp ZP_BYTE:13 500.5 +(byte) render_moving::i#3 i zp ZP_BYTE:13 60.599999999999994 (byte) render_moving::i#4 i zp ZP_BYTE:13 1552.0 (byte) render_moving::i#8 i zp ZP_BYTE:13 300.75 (byte) render_moving::l (byte) render_moving::l#1 l zp ZP_BYTE:12 151.5 -(byte) render_moving::l#4 l zp ZP_BYTE:12 11.222222222222221 +(byte) render_moving::l#4 l zp ZP_BYTE:12 12.625 (byte*) render_moving::screen_line -(byte*) render_moving::screen_line#0 screen_line zp ZP_WORD:7 100.18181818181819 +(byte*) render_moving::screen_line#0 screen_line zp ZP_WORD:7 110.19999999999999 (byte) render_moving::xpos (byte) render_moving::xpos#0 xpos zp ZP_BYTE:14 202.0 (byte) render_moving::xpos#1 xpos zp ZP_BYTE:14 667.3333333333334 -(byte) render_moving::xpos#2 xpos zp ZP_BYTE:14 684.1666666666667 +(byte) render_moving::xpos#2 xpos zp ZP_BYTE:14 620.8 (byte) render_moving::ypos2 (byte) render_moving::ypos2#0 ypos2 zp ZP_BYTE:11 4.0 (byte) render_moving::ypos2#1 ypos2 zp ZP_BYTE:11 67.33333333333333 -(byte) render_moving::ypos2#2 ypos2 zp ZP_BYTE:11 29.823529411764707 +(byte) render_moving::ypos2#2 ypos2 zp ZP_BYTE:11 27.06666666666667 (void()) render_playfield() (byte~) render_playfield::$2 reg byte a 202.0 (byte~) render_playfield::$3 reg byte a 202.0 @@ -21622,9 +21518,9 @@ FINAL SYMBOL TABLE (byte) render_screen_render#11 render_screen_render zp ZP_BYTE:3 3.25 (byte) render_screen_render#17 render_screen_render zp ZP_BYTE:3 0.7551020408163266 (byte) render_screen_render#21 reg byte x 8.615384615384615 -(byte) render_screen_render#30 render_screen_render#30 zp ZP_BYTE:9 5.090909090909091 -(byte~) render_screen_render#66 render_screen_render#66 zp ZP_BYTE:9 5.5 -(byte~) render_screen_render#67 reg byte x 22.0 +(byte) render_screen_render#30 render_screen_render#30 zp ZP_BYTE:9 5.6 +(byte~) render_screen_render#64 render_screen_render#64 zp ZP_BYTE:9 5.5 +(byte~) render_screen_render#65 reg byte x 22.0 (byte) render_screen_show (byte) render_screen_show#13 render_screen_show zp ZP_BYTE:2 4.333333333333333 (byte) render_screen_show#16 render_screen_show zp ZP_BYTE:2 0.48571428571428577 @@ -21740,20 +21636,20 @@ interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 render_screen_original::y#6 render_screen_original::y#1 ] zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_spawn_current::$3 play_update_score::lines_before#0 ] -zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 current_piece_gfx#63 current_piece_gfx#116 current_piece_gfx#117 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li_1#2 render_init::li_1#1 render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 play_lock_current::playfield_line#0 ] +zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li_1#2 render_init::li_1#1 render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 play_lock_current::playfield_line#0 ] zp ZP_WORD:7 [ render_bcd::offset#6 render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 render_bcd::screen_pos#1 render_init::li_2#2 render_init::li_2#1 render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 render_moving::screen_line#0 play_collision::playfield_line#0 ] reg byte y [ render_bcd::only_low#6 ] reg byte x [ render_bcd::bcd#6 render_bcd::bcd#0 render_bcd::bcd#1 render_bcd::bcd#2 render_bcd::bcd#3 render_bcd::bcd#4 render_bcd::bcd#5 ] reg byte y [ current_ypos#11 current_ypos#100 current_ypos#101 ] -zp ZP_BYTE:9 [ render_screen_render#30 render_screen_render#66 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -zp ZP_BYTE:10 [ current_xpos#57 current_xpos#126 current_xpos#127 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 keyboard_event_pressed::row_bits#0 ] -reg byte x [ current_piece_char#76 current_piece_char#104 current_piece_char#105 ] +zp ZP_BYTE:9 [ render_screen_render#30 render_screen_render#64 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +zp ZP_BYTE:10 [ current_xpos#57 current_xpos#124 current_xpos#125 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 keyboard_event_pressed::row_bits#0 ] +reg byte x [ current_piece_char#64 current_piece_char#102 current_piece_char#103 ] zp ZP_BYTE:11 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::i#1 keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:12 [ render_moving::l#4 render_moving::l#1 play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 play_remove_lines::c#0 ] -zp ZP_BYTE:13 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#10 render_moving::i#1 play_collision::l#6 play_collision::l#1 ] +zp ZP_BYTE:13 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 play_collision::l#6 play_collision::l#1 ] zp ZP_BYTE:14 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] zp ZP_BYTE:15 [ render_moving::c#2 render_moving::c#1 play_collision::col#2 play_collision::col#9 play_collision::col#1 ] -reg byte x [ render_screen_render#21 render_screen_render#67 ] +reg byte x [ render_screen_render#21 render_screen_render#65 ] reg byte a [ play_move_rotate::return#2 ] reg byte x [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] reg byte x [ play_collision::c#2 play_collision::c#1 ] @@ -21769,8 +21665,8 @@ zp ZP_BYTE:25 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 zp ZP_WORD:26 [ current_piece#27 current_piece#95 current_piece#20 current_piece#14 current_piece#88 render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 ] zp ZP_BYTE:28 [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] zp ZP_BYTE:29 [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] -zp ZP_WORD:30 [ current_piece_gfx#33 current_piece_gfx#105 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] -zp ZP_BYTE:32 [ current_xpos#41 current_xpos#115 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] +zp ZP_WORD:30 [ current_piece_gfx#33 current_piece_gfx#103 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] +zp ZP_BYTE:32 [ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] reg byte x [ play_move_down::return#3 ] zp ZP_BYTE:33 [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] reg byte x [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] @@ -21802,7 +21698,7 @@ reg byte a [ render_bcd::$3 ] reg byte a [ render_bcd::$4 ] reg byte a [ render_bcd::$5 ] reg byte a [ render_bcd::$6 ] -reg byte a [ render_moving::$5 ] +reg byte a [ render_moving::$2 ] reg byte a [ render_moving::current_cell#0 ] reg byte a [ render_playfield::$2 ] reg byte a [ render_playfield::$3 ] @@ -21879,7 +21775,7 @@ reg byte a [ sprites_irq::ptr#2 ] FINAL ASSEMBLER -Score: 3292734 +Score: 3285184 //SEG0 Basic Upstart .pc = $801 "Basic" @@ -21985,12 +21881,12 @@ Score: 3292734 .label current_piece_16 = 5 .label render_screen_render_30 = 9 .label current_xpos_57 = $a - .label current_piece_gfx_63 = 5 - .label render_screen_render_66 = 9 - .label current_xpos_126 = $a - .label current_xpos_127 = $a - .label current_piece_gfx_116 = 5 - .label current_piece_gfx_117 = 5 + .label current_piece_gfx_62 = 5 + .label render_screen_render_64 = 9 + .label current_xpos_124 = $a + .label current_xpos_125 = $a + .label current_piece_gfx_114 = 5 + .label current_piece_gfx_115 = 5 .label current_piece_90 = 5 .label current_piece_91 = 5 .label current_piece_92 = 5 @@ -22038,7 +21934,7 @@ main: { //SEG27 asm { sei } sei //SEG28 [17] call render_init - //SEG29 [472] phi from main::@25 to render_init [phi:main::@25->render_init] + //SEG29 [470] phi from main::@25 to render_init [phi:main::@25->render_init] jsr render_init //SEG30 [18] phi from main::@25 to main::@26 [phi:main::@25->main::@26] //SEG31 main::@26 @@ -22051,41 +21947,41 @@ main: { //SEG36 [22] phi from main::@27 to main::@28 [phi:main::@27->main::@28] //SEG37 main::@28 //SEG38 [23] call play_init - //SEG39 [431] phi from main::@28 to play_init [phi:main::@28->play_init] + //SEG39 [429] phi from main::@28 to play_init [phi:main::@28->play_init] jsr play_init //SEG40 [24] phi from main::@28 to main::@29 [phi:main::@28->main::@29] //SEG41 main::@29 //SEG42 [25] call play_spawn_current - //SEG43 [259] phi from main::@29 to play_spawn_current [phi:main::@29->play_spawn_current] - //SEG44 [259] phi (byte) game_over#70 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@29->play_spawn_current#0] -- vbuz1=vbuc1 + //SEG43 [257] phi from main::@29 to play_spawn_current [phi:main::@29->play_spawn_current] + //SEG44 [257] phi (byte) game_over#70 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@29->play_spawn_current#0] -- vbuz1=vbuc1 lda #0 sta game_over jsr play_spawn_current //SEG45 [26] phi from main::@29 to main::@30 [phi:main::@29->main::@30] //SEG46 main::@30 //SEG47 [27] call render_playfield - //SEG48 [124] phi from main::@30 to render_playfield [phi:main::@30->render_playfield] - //SEG49 [124] phi (byte) render_screen_render#21 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@30->render_playfield#0] -- vbuxx=vbuc1 + //SEG48 [122] phi from main::@30 to render_playfield [phi:main::@30->render_playfield] + //SEG49 [122] phi (byte) render_screen_render#21 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@30->render_playfield#0] -- vbuxx=vbuc1 ldx #$40 jsr render_playfield //SEG50 main::@31 //SEG51 [28] (byte~) current_ypos#100 ← (byte) current_ypos#22 -- vbuyy=vbuz1 ldy current_ypos - //SEG52 [29] (byte~) current_xpos#126 ← (byte) current_xpos#28 -- vbuz1=vbuz2 + //SEG52 [29] (byte~) current_xpos#124 ← (byte) current_xpos#28 -- vbuz1=vbuz2 lda current_xpos - sta current_xpos_126 - //SEG53 [30] (byte*~) current_piece_gfx#116 ← (byte*) current_piece_gfx#21 -- pbuz1=pbuz2 + sta current_xpos_124 + //SEG53 [30] (byte*~) current_piece_gfx#114 ← (byte*) current_piece_gfx#21 -- pbuz1=pbuz2 lda current_piece_gfx - sta current_piece_gfx_116 + sta current_piece_gfx_114 lda current_piece_gfx+1 - sta current_piece_gfx_116+1 - //SEG54 [31] (byte~) current_piece_char#104 ← (byte) current_piece_char#16 -- vbuxx=vbuz1 + sta current_piece_gfx_114+1 + //SEG54 [31] (byte~) current_piece_char#102 ← (byte) current_piece_char#16 -- vbuxx=vbuz1 ldx current_piece_char //SEG55 [32] call render_moving //SEG56 [101] phi from main::@31 to render_moving [phi:main::@31->render_moving] - //SEG57 [101] phi (byte) current_piece_char#76 = (byte~) current_piece_char#104 [phi:main::@31->render_moving#0] -- register_copy - //SEG58 [101] phi (byte*) current_piece_gfx#63 = (byte*~) current_piece_gfx#116 [phi:main::@31->render_moving#1] -- register_copy - //SEG59 [101] phi (byte) current_xpos#57 = (byte~) current_xpos#126 [phi:main::@31->render_moving#2] -- register_copy + //SEG57 [101] phi (byte) current_piece_char#64 = (byte~) current_piece_char#102 [phi:main::@31->render_moving#0] -- register_copy + //SEG58 [101] phi (byte*) current_piece_gfx#62 = (byte*~) current_piece_gfx#114 [phi:main::@31->render_moving#1] -- register_copy + //SEG59 [101] phi (byte) current_xpos#57 = (byte~) current_xpos#124 [phi:main::@31->render_moving#2] -- register_copy //SEG60 [101] phi (byte) render_screen_render#30 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@31->render_moving#3] -- vbuz1=vbuc1 lda #$40 sta render_screen_render_30 @@ -22117,8 +22013,8 @@ main: { sta keyboard_events_size //SEG70 [34] phi (byte) game_over#19 = (byte) game_over#15 [phi:main::@31->main::@1#6] -- register_copy //SEG71 [34] phi (byte) current_ypos#25 = (byte) current_ypos#22 [phi:main::@31->main::@1#7] -- register_copy - //SEG72 [34] phi (byte) current_xpos#115 = (byte) current_xpos#28 [phi:main::@31->main::@1#8] -- register_copy - //SEG73 [34] phi (byte*) current_piece_gfx#105 = (byte*) current_piece_gfx#21 [phi:main::@31->main::@1#9] -- register_copy + //SEG72 [34] phi (byte) current_xpos#113 = (byte) current_xpos#28 [phi:main::@31->main::@1#8] -- register_copy + //SEG73 [34] phi (byte*) current_piece_gfx#103 = (byte*) current_piece_gfx#21 [phi:main::@31->main::@1#9] -- register_copy //SEG74 [34] phi (byte) current_orientation#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#10] -- vbuz1=vbuc1 sta current_orientation //SEG75 [34] phi (byte) current_piece_char#19 = (byte) current_piece_char#16 [phi:main::@31->main::@1#11] -- register_copy @@ -22139,8 +22035,8 @@ main: { //SEG86 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@11->main::@1#5] -- register_copy //SEG87 [34] phi (byte) game_over#19 = (byte) game_over#14 [phi:main::@11->main::@1#6] -- register_copy //SEG88 [34] phi (byte) current_ypos#25 = (byte) current_ypos#17 [phi:main::@11->main::@1#7] -- register_copy - //SEG89 [34] phi (byte) current_xpos#115 = (byte) current_xpos#17 [phi:main::@11->main::@1#8] -- register_copy - //SEG90 [34] phi (byte*) current_piece_gfx#105 = (byte*) current_piece_gfx#16 [phi:main::@11->main::@1#9] -- register_copy + //SEG89 [34] phi (byte) current_xpos#113 = (byte) current_xpos#17 [phi:main::@11->main::@1#8] -- register_copy + //SEG90 [34] phi (byte*) current_piece_gfx#103 = (byte*) current_piece_gfx#16 [phi:main::@11->main::@1#9] -- register_copy //SEG91 [34] phi (byte) current_orientation#12 = (byte) current_orientation#16 [phi:main::@11->main::@1#10] -- register_copy //SEG92 [34] phi (byte) current_piece_char#19 = (byte) current_piece_char#14 [phi:main::@11->main::@1#11] -- register_copy //SEG93 [34] phi (byte*) current_piece#20 = (byte*) current_piece#14 [phi:main::@11->main::@1#12] -- register_copy @@ -22159,7 +22055,7 @@ main: { //SEG101 [38] phi from main::@6 to main::@33 [phi:main::@6->main::@33] //SEG102 main::@33 //SEG103 [39] call keyboard_event_scan - //SEG104 [368] phi from main::@33 to keyboard_event_scan [phi:main::@33->keyboard_event_scan] + //SEG104 [366] phi from main::@33 to keyboard_event_scan [phi:main::@33->keyboard_event_scan] jsr keyboard_event_scan //SEG105 [40] phi from main::@33 to main::@34 [phi:main::@33->main::@34] //SEG106 main::@34 @@ -22195,34 +22091,34 @@ main: { cmp #0 beq b4 //SEG122 main::@23 - //SEG123 [51] (byte~) render_screen_render#67 ← (byte) render_screen_render#17 -- vbuxx=vbuz1 + //SEG123 [51] (byte~) render_screen_render#65 ← (byte) render_screen_render#17 -- vbuxx=vbuz1 ldx render_screen_render //SEG124 [52] call render_playfield - //SEG125 [124] phi from main::@23 to render_playfield [phi:main::@23->render_playfield] - //SEG126 [124] phi (byte) render_screen_render#21 = (byte~) render_screen_render#67 [phi:main::@23->render_playfield#0] -- register_copy + //SEG125 [122] phi from main::@23 to render_playfield [phi:main::@23->render_playfield] + //SEG126 [122] phi (byte) render_screen_render#21 = (byte~) render_screen_render#65 [phi:main::@23->render_playfield#0] -- register_copy jsr render_playfield //SEG127 main::@37 //SEG128 [53] (byte~) current_ypos#101 ← (byte) current_ypos#17 -- vbuyy=vbuz1 ldy current_ypos - //SEG129 [54] (byte~) render_screen_render#66 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 + //SEG129 [54] (byte~) render_screen_render#64 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 lda render_screen_render - sta render_screen_render_66 - //SEG130 [55] (byte~) current_xpos#127 ← (byte) current_xpos#17 -- vbuz1=vbuz2 + sta render_screen_render_64 + //SEG130 [55] (byte~) current_xpos#125 ← (byte) current_xpos#17 -- vbuz1=vbuz2 lda current_xpos - sta current_xpos_127 - //SEG131 [56] (byte*~) current_piece_gfx#117 ← (byte*) current_piece_gfx#16 -- pbuz1=pbuz2 + sta current_xpos_125 + //SEG131 [56] (byte*~) current_piece_gfx#115 ← (byte*) current_piece_gfx#16 -- pbuz1=pbuz2 lda current_piece_gfx - sta current_piece_gfx_117 + sta current_piece_gfx_115 lda current_piece_gfx+1 - sta current_piece_gfx_117+1 - //SEG132 [57] (byte~) current_piece_char#105 ← (byte) current_piece_char#14 -- vbuxx=vbuz1 + sta current_piece_gfx_115+1 + //SEG132 [57] (byte~) current_piece_char#103 ← (byte) current_piece_char#14 -- vbuxx=vbuz1 ldx current_piece_char //SEG133 [58] call render_moving //SEG134 [101] phi from main::@37 to render_moving [phi:main::@37->render_moving] - //SEG135 [101] phi (byte) current_piece_char#76 = (byte~) current_piece_char#105 [phi:main::@37->render_moving#0] -- register_copy - //SEG136 [101] phi (byte*) current_piece_gfx#63 = (byte*~) current_piece_gfx#117 [phi:main::@37->render_moving#1] -- register_copy - //SEG137 [101] phi (byte) current_xpos#57 = (byte~) current_xpos#127 [phi:main::@37->render_moving#2] -- register_copy - //SEG138 [101] phi (byte) render_screen_render#30 = (byte~) render_screen_render#66 [phi:main::@37->render_moving#3] -- register_copy + //SEG135 [101] phi (byte) current_piece_char#64 = (byte~) current_piece_char#103 [phi:main::@37->render_moving#0] -- register_copy + //SEG136 [101] phi (byte*) current_piece_gfx#62 = (byte*~) current_piece_gfx#115 [phi:main::@37->render_moving#1] -- register_copy + //SEG137 [101] phi (byte) current_xpos#57 = (byte~) current_xpos#125 [phi:main::@37->render_moving#2] -- register_copy + //SEG138 [101] phi (byte) render_screen_render#30 = (byte~) render_screen_render#64 [phi:main::@37->render_moving#3] -- register_copy //SEG139 [101] phi (byte) current_ypos#11 = (byte~) current_ypos#101 [phi:main::@37->render_moving#4] -- register_copy jsr render_moving //SEG140 [59] phi from main::@37 to main::@38 [phi:main::@37->main::@38] @@ -22242,8 +22138,8 @@ main: { //SEG152 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@39->main::@1#5] -- register_copy //SEG153 [34] phi (byte) game_over#19 = (byte) game_over#14 [phi:main::@39->main::@1#6] -- register_copy //SEG154 [34] phi (byte) current_ypos#25 = (byte) current_ypos#17 [phi:main::@39->main::@1#7] -- register_copy - //SEG155 [34] phi (byte) current_xpos#115 = (byte) current_xpos#17 [phi:main::@39->main::@1#8] -- register_copy - //SEG156 [34] phi (byte*) current_piece_gfx#105 = (byte*) current_piece_gfx#16 [phi:main::@39->main::@1#9] -- register_copy + //SEG155 [34] phi (byte) current_xpos#113 = (byte) current_xpos#17 [phi:main::@39->main::@1#8] -- register_copy + //SEG156 [34] phi (byte*) current_piece_gfx#103 = (byte*) current_piece_gfx#16 [phi:main::@39->main::@1#9] -- register_copy //SEG157 [34] phi (byte) current_orientation#12 = (byte) current_orientation#16 [phi:main::@39->main::@1#10] -- register_copy //SEG158 [34] phi (byte) current_piece_char#19 = (byte) current_piece_char#14 [phi:main::@39->main::@1#11] -- register_copy //SEG159 [34] phi (byte*) current_piece#20 = (byte*) current_piece#14 [phi:main::@39->main::@1#12] -- register_copy @@ -22484,21 +22380,20 @@ render_moving: { //SEG258 [103] phi (byte) render_moving::ypos2#2 = (byte) render_moving::ypos2#1 [phi:render_moving::@3->render_moving::@1#2] -- register_copy //SEG259 render_moving::@1 b1: - //SEG260 [104] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@13 -- vbuz1_gt_vbuc1_then_la1 + //SEG260 [104] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@2 -- vbuz1_gt_vbuc1_then_la1 lda ypos2 cmp #2 beq !+ - bcs b13 + bcs b2 !: - //SEG261 render_moving::@7 - b7: + //SEG261 render_moving::@6 //SEG262 [105] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz1_plus_vbuc1 lda #4 clc adc i sta i - //SEG263 [106] phi from render_moving::@5 render_moving::@7 to render_moving::@3 [phi:render_moving::@5/render_moving::@7->render_moving::@3] - //SEG264 [106] phi (byte) render_moving::i#8 = (byte) render_moving::i#10 [phi:render_moving::@5/render_moving::@7->render_moving::@3#0] -- register_copy + //SEG263 [106] phi from render_moving::@5 render_moving::@6 to render_moving::@3 [phi:render_moving::@5/render_moving::@6->render_moving::@3] + //SEG264 [106] phi (byte) render_moving::i#8 = (byte) render_moving::i#2 [phi:render_moving::@5/render_moving::@6->render_moving::@3#0] -- register_copy //SEG265 render_moving::@3 b3: //SEG266 [107] (byte) render_moving::ypos2#1 ← (byte) render_moving::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 @@ -22515,293 +22410,281 @@ render_moving: { //SEG269 render_moving::@return //SEG270 [110] return rts - //SEG271 render_moving::@13 - b13: - //SEG272 [111] if((byte) render_moving::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_moving::@2 -- vbuz1_lt_vbuc1_then_la1 - lda ypos2 - cmp #2*PLAYFIELD_LINES - bcc b2 - jmp b7 - //SEG273 render_moving::@2 + //SEG271 render_moving::@2 b2: - //SEG274 [112] (byte~) render_moving::$5 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 -- vbuaa=vbuz1_plus_vbuz2 + //SEG272 [111] (byte~) render_moving::$2 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 -- vbuaa=vbuz1_plus_vbuz2 lda render_screen_render_30 clc adc ypos2 - //SEG275 [113] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$5) -- pbuz1=pptc1_derefidx_vbuaa + //SEG273 [112] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$2) -- pbuz1=pptc1_derefidx_vbuaa tay lda screen_lines_1,y sta screen_line lda screen_lines_1+1,y sta screen_line+1 - //SEG276 [114] (byte) render_moving::xpos#0 ← (byte) current_xpos#57 -- vbuz1=vbuz2 + //SEG274 [113] (byte) render_moving::xpos#0 ← (byte) current_xpos#57 -- vbuz1=vbuz2 lda current_xpos_57 sta xpos - //SEG277 [115] phi from render_moving::@2 to render_moving::@4 [phi:render_moving::@2->render_moving::@4] - //SEG278 [115] phi (byte) render_moving::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving::@2->render_moving::@4#0] -- vbuz1=vbuc1 + //SEG275 [114] phi from render_moving::@2 to render_moving::@4 [phi:render_moving::@2->render_moving::@4] + //SEG276 [114] phi (byte) render_moving::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving::@2->render_moving::@4#0] -- vbuz1=vbuc1 lda #0 sta c - //SEG279 [115] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#0 [phi:render_moving::@2->render_moving::@4#1] -- register_copy - //SEG280 [115] phi (byte) render_moving::i#4 = (byte) render_moving::i#3 [phi:render_moving::@2->render_moving::@4#2] -- register_copy - //SEG281 [115] phi from render_moving::@5 to render_moving::@4 [phi:render_moving::@5->render_moving::@4] - //SEG282 [115] phi (byte) render_moving::c#2 = (byte) render_moving::c#1 [phi:render_moving::@5->render_moving::@4#0] -- register_copy - //SEG283 [115] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#1 [phi:render_moving::@5->render_moving::@4#1] -- register_copy - //SEG284 [115] phi (byte) render_moving::i#4 = (byte) render_moving::i#10 [phi:render_moving::@5->render_moving::@4#2] -- register_copy - //SEG285 render_moving::@4 + //SEG277 [114] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#0 [phi:render_moving::@2->render_moving::@4#1] -- register_copy + //SEG278 [114] phi (byte) render_moving::i#4 = (byte) render_moving::i#3 [phi:render_moving::@2->render_moving::@4#2] -- register_copy + //SEG279 [114] phi from render_moving::@5 to render_moving::@4 [phi:render_moving::@5->render_moving::@4] + //SEG280 [114] phi (byte) render_moving::c#2 = (byte) render_moving::c#1 [phi:render_moving::@5->render_moving::@4#0] -- register_copy + //SEG281 [114] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#1 [phi:render_moving::@5->render_moving::@4#1] -- register_copy + //SEG282 [114] phi (byte) render_moving::i#4 = (byte) render_moving::i#2 [phi:render_moving::@5->render_moving::@4#2] -- register_copy + //SEG283 render_moving::@4 b4: - //SEG286 [116] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_moving::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 + //SEG284 [115] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#62 + (byte) render_moving::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 ldy i - lda (current_piece_gfx_63),y - //SEG287 [117] (byte) render_moving::i#10 ← ++ (byte) render_moving::i#4 -- vbuz1=_inc_vbuz1 + lda (current_piece_gfx_62),y + //SEG285 [116] (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 -- vbuz1=_inc_vbuz1 inc i - //SEG288 [118] if((byte) render_moving::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_moving::@5 -- vbuaa_eq_0_then_la1 + //SEG286 [117] if((byte) render_moving::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_moving::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq b5 - //SEG289 render_moving::@9 - //SEG290 [119] if((byte) render_moving::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_moving::@5 -- vbuz1_ge_vbuc1_then_la1 - lda xpos - cmp #PLAYFIELD_COLS - bcs b5 - //SEG291 render_moving::@10 - //SEG292 [120] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#76 -- pbuz1_derefidx_vbuz2=vbuxx - tay + //SEG287 render_moving::@8 + //SEG288 [118] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#64 -- pbuz1_derefidx_vbuz2=vbuxx + ldy xpos txa sta (screen_line),y - //SEG293 render_moving::@5 + //SEG289 render_moving::@5 b5: - //SEG294 [121] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG290 [119] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG295 [122] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 -- vbuz1=_inc_vbuz1 + //SEG291 [120] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG296 [123] if((byte) render_moving::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG292 [121] if((byte) render_moving::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@4 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #4 bne b4 jmp b3 } -//SEG297 render_playfield +//SEG293 render_playfield render_playfield: { .label screen_line = 5 .label i = $a .label c = $b .label l = 9 - //SEG298 [125] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] - //SEG299 [125] phi (byte) render_playfield::i#3 = (const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 + //SEG294 [123] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + //SEG295 [123] phi (byte) render_playfield::i#3 = (const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 lda #PLAYFIELD_COLS*2 sta i - //SEG300 [125] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 + //SEG296 [123] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 lda #2 sta l - //SEG301 [125] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] - //SEG302 [125] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG303 [125] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy - //SEG304 render_playfield::@1 + //SEG297 [123] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG298 [123] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + //SEG299 [123] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //SEG300 render_playfield::@1 b1: - //SEG305 [126] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 + //SEG301 [124] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 lda l asl - //SEG306 [127] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 -- vbuaa=vbuxx_plus_vbuaa + //SEG302 [125] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 -- vbuaa=vbuxx_plus_vbuaa stx $ff clc adc $ff - //SEG307 [128] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuaa + //SEG303 [126] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuaa tay lda screen_lines_1,y sta screen_line lda screen_lines_1+1,y sta screen_line+1 - //SEG308 [129] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] - //SEG309 [129] 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 + //SEG304 [127] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG305 [127] 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 - //SEG310 [129] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG311 [129] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy - //SEG312 [129] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] - //SEG313 [129] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG314 [129] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG315 [129] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy - //SEG316 render_playfield::@2 + //SEG306 [127] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + //SEG307 [127] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //SEG308 [127] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG309 [127] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + //SEG310 [127] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + //SEG311 [127] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //SEG312 render_playfield::@2 b2: - //SEG317 [130] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG313 [128] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy i lda playfield,y ldy #0 sta (screen_line),y - //SEG318 [131] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 + //SEG314 [129] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 inc screen_line bne !+ inc screen_line+1 !: - //SEG319 [132] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG315 [130] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG320 [133] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 + //SEG316 [131] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG321 [134] 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 + //SEG317 [132] 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 - //SEG322 render_playfield::@3 - //SEG323 [135] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG318 render_playfield::@3 + //SEG319 [133] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG324 [136] 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 + //SEG320 [134] 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 - //SEG325 render_playfield::@return - //SEG326 [137] return + //SEG321 render_playfield::@return + //SEG322 [135] return rts } -//SEG327 play_movement +//SEG323 play_movement play_movement: { .label render = 9 .label return = 9 .label key_event = $28 - //SEG328 [138] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 + //SEG324 [136] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG329 [139] call play_move_down + //SEG325 [137] call play_move_down jsr play_move_down - //SEG330 [140] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuaa=vbuxx + //SEG326 [138] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuaa=vbuxx txa - //SEG331 play_movement::@5 - //SEG332 [141] (byte~) play_movement::$0 ← (byte) play_move_down::return#0 + //SEG327 play_movement::@5 + //SEG328 [139] (byte~) play_movement::$0 ← (byte) play_move_down::return#0 // (byte~) play_movement::$0 = (byte) play_move_down::return#0 // register copy reg byte a - //SEG333 [142] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 -- vbuz1=vbuc1_plus_vbuaa + //SEG329 [140] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 -- vbuz1=vbuc1_plus_vbuaa clc adc #0 sta render - //SEG334 [143] if((byte) game_over#14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movement::@1 -- vbuz1_eq_0_then_la1 + //SEG330 [141] if((byte) game_over#14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movement::@1 -- vbuz1_eq_0_then_la1 lda game_over cmp #0 beq b1 - //SEG335 [144] phi from play_movement::@5 play_movement::@7 to play_movement::@return [phi:play_movement::@5/play_movement::@7->play_movement::@return] - //SEG336 [144] phi (byte) current_xpos#17 = (byte) current_xpos#20 [phi:play_movement::@5/play_movement::@7->play_movement::@return#0] -- register_copy - //SEG337 [144] phi (byte*) current_piece_gfx#16 = (byte*) current_piece_gfx#18 [phi:play_movement::@5/play_movement::@7->play_movement::@return#1] -- register_copy - //SEG338 [144] phi (byte) current_orientation#16 = (byte) current_orientation#19 [phi:play_movement::@5/play_movement::@7->play_movement::@return#2] -- register_copy - //SEG339 [144] phi (byte) play_movement::return#2 = (byte) play_movement::render#1 [phi:play_movement::@5/play_movement::@7->play_movement::@return#3] -- register_copy - //SEG340 play_movement::@return + //SEG331 [142] phi from play_movement::@5 play_movement::@7 to play_movement::@return [phi:play_movement::@5/play_movement::@7->play_movement::@return] + //SEG332 [142] phi (byte) current_xpos#17 = (byte) current_xpos#20 [phi:play_movement::@5/play_movement::@7->play_movement::@return#0] -- register_copy + //SEG333 [142] phi (byte*) current_piece_gfx#16 = (byte*) current_piece_gfx#18 [phi:play_movement::@5/play_movement::@7->play_movement::@return#1] -- register_copy + //SEG334 [142] phi (byte) current_orientation#16 = (byte) current_orientation#19 [phi:play_movement::@5/play_movement::@7->play_movement::@return#2] -- register_copy + //SEG335 [142] phi (byte) play_movement::return#2 = (byte) play_movement::render#1 [phi:play_movement::@5/play_movement::@7->play_movement::@return#3] -- register_copy + //SEG336 play_movement::@return breturn: - //SEG341 [145] return + //SEG337 [143] return rts - //SEG342 play_movement::@1 + //SEG338 play_movement::@1 b1: - //SEG343 [146] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 + //SEG339 [144] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG344 [147] call play_move_leftright + //SEG340 [145] call play_move_leftright jsr play_move_leftright - //SEG345 [148] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 + //SEG341 [146] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 // (byte) play_move_leftright::return#0 = (byte) play_move_leftright::return#2 // register copy reg byte a - //SEG346 play_movement::@6 - //SEG347 [149] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 + //SEG342 play_movement::@6 + //SEG343 [147] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 // (byte~) play_movement::$3 = (byte) play_move_leftright::return#0 // register copy reg byte a - //SEG348 [150] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 -- vbuz1=vbuz1_plus_vbuaa + //SEG344 [148] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 -- vbuz1=vbuz1_plus_vbuaa clc adc render sta render - //SEG349 [151] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 + //SEG345 [149] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG350 [152] call play_move_rotate + //SEG346 [150] call play_move_rotate jsr play_move_rotate - //SEG351 [153] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 + //SEG347 [151] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 // (byte) play_move_rotate::return#0 = (byte) play_move_rotate::return#2 // register copy reg byte a - //SEG352 play_movement::@7 - //SEG353 [154] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 + //SEG348 play_movement::@7 + //SEG349 [152] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 // (byte~) play_movement::$4 = (byte) play_move_rotate::return#0 // register copy reg byte a - //SEG354 [155] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 -- vbuz1=vbuz1_plus_vbuaa + //SEG350 [153] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 -- vbuz1=vbuz1_plus_vbuaa clc adc return sta return jmp breturn } -//SEG355 play_move_rotate +//SEG351 play_move_rotate play_move_rotate: { .label orientation = $a - //SEG356 [156] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG352 [154] 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 - //SEG357 play_move_rotate::@6 - //SEG358 [157] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 + //SEG353 play_move_rotate::@6 + //SEG354 [155] 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 - //SEG359 [158] 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] + //SEG355 [156] 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: - //SEG360 [158] phi (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#18 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy - //SEG361 [158] phi (byte) current_orientation#24 = (byte) current_orientation#19 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy - //SEG362 [158] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 + //SEG356 [156] phi (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#18 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + //SEG357 [156] phi (byte) current_orientation#24 = (byte) current_orientation#19 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy + //SEG358 [156] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #0 - //SEG363 play_move_rotate::@return + //SEG359 play_move_rotate::@return breturn: - //SEG364 [159] return + //SEG360 [157] return rts - //SEG365 play_move_rotate::@2 + //SEG361 play_move_rotate::@2 b2: - //SEG366 [160] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#19 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 + //SEG362 [158] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#19 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 lda #$10 clc adc current_orientation - //SEG367 [161] (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 + //SEG363 [159] (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 - //SEG368 [162] 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] - //SEG369 [162] 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 - //SEG370 play_move_rotate::@4 + //SEG364 [160] 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] + //SEG365 [160] 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 + //SEG366 play_move_rotate::@4 b4: - //SEG371 [163] (byte) play_collision::xpos#3 ← (byte) current_xpos#24 -- vbuz1=vbuz2 + //SEG367 [161] (byte) play_collision::xpos#3 ← (byte) current_xpos#24 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG372 [164] (byte) play_collision::ypos#3 ← (byte) current_ypos#17 -- vbuz1=vbuz2 + //SEG368 [162] (byte) play_collision::ypos#3 ← (byte) current_ypos#17 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG373 [165] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 + //SEG369 [163] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 ldx orientation - //SEG374 [166] (byte*~) current_piece#93 ← (byte*) current_piece#14 -- pbuz1=pbuz2 + //SEG370 [164] (byte*~) current_piece#93 ← (byte*) current_piece#14 -- pbuz1=pbuz2 lda current_piece sta current_piece_93 lda current_piece+1 sta current_piece_93+1 - //SEG375 [167] call play_collision - //SEG376 [175] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] - //SEG377 [175] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy - //SEG378 [175] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy - //SEG379 [175] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy - //SEG380 [175] phi (byte*) current_piece#16 = (byte*~) current_piece#93 [phi:play_move_rotate::@4->play_collision#3] -- register_copy + //SEG371 [165] call play_collision + //SEG372 [173] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] + //SEG373 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy + //SEG374 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy + //SEG375 [173] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy + //SEG376 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#93 [phi:play_move_rotate::@4->play_collision#3] -- register_copy jsr play_collision - //SEG381 [168] (byte) play_collision::return#14 ← (byte) play_collision::return#15 + //SEG377 [166] (byte) play_collision::return#14 ← (byte) play_collision::return#15 // (byte) play_collision::return#14 = (byte) play_collision::return#15 // register copy reg byte a - //SEG382 play_move_rotate::@14 - //SEG383 [169] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#14 + //SEG378 play_move_rotate::@14 + //SEG379 [167] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#14 // (byte~) play_move_rotate::$6 = (byte) play_collision::return#14 // register copy reg byte a - //SEG384 [170] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG380 [168] 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 - //SEG385 play_move_rotate::@11 - //SEG386 [171] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG381 play_move_rotate::@11 + //SEG382 [169] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG387 [172] (byte*) current_piece_gfx#6 ← (byte*) current_piece#14 + (byte) current_orientation#7 -- pbuz1=pbuz2_plus_vbuz3 + //SEG383 [170] (byte*) current_piece_gfx#6 ← (byte*) current_piece#14 + (byte) current_orientation#7 -- pbuz1=pbuz2_plus_vbuz3 clc adc current_piece sta current_piece_gfx lda #0 adc current_piece+1 sta current_piece_gfx+1 - //SEG388 [158] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] - //SEG389 [158] phi (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#6 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG390 [158] phi (byte) current_orientation#24 = (byte) current_orientation#7 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG391 [158] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 + //SEG384 [156] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG385 [156] phi (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#6 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG386 [156] phi (byte) current_orientation#24 = (byte) current_orientation#7 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy + //SEG387 [156] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG392 play_move_rotate::@1 + //SEG388 play_move_rotate::@1 b1: - //SEG393 [173] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#19 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 + //SEG389 [171] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#19 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 lda current_orientation sec sbc #$10 - //SEG394 [174] (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 + //SEG390 [172] (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 } -//SEG395 play_collision +//SEG391 play_collision play_collision: { .label xpos = $c .label ypos = $b @@ -22815,7 +22698,7 @@ play_collision: { .label i_3 = $e .label i_11 = $e .label i_13 = $e - //SEG396 [176] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#16 + (byte) play_collision::orientation#5 -- pbuz1=pbuz1_plus_vbuxx + //SEG392 [174] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#16 + (byte) play_collision::orientation#5 -- pbuz1=pbuz1_plus_vbuxx txa clc adc piece_gfx @@ -22823,534 +22706,534 @@ play_collision: { lda #0 adc piece_gfx+1 sta piece_gfx+1 - //SEG397 [177] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 + //SEG393 [175] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 asl ypos2 - //SEG398 [178] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] - //SEG399 [178] 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 + //SEG394 [176] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] + //SEG395 [176] 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 - //SEG400 [178] 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 + //SEG396 [176] 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 - //SEG401 [178] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy - //SEG402 play_collision::@1 + //SEG397 [176] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy + //SEG398 play_collision::@1 b1: - //SEG403 [179] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG399 [177] (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 - //SEG404 [180] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#6 -- vbuz1=vbuz2 + //SEG400 [178] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#6 -- vbuz1=vbuz2 lda xpos sta col - //SEG405 [181] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] - //SEG406 [181] 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 + //SEG401 [179] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] + //SEG402 [179] 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 - //SEG407 [181] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy - //SEG408 [181] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy - //SEG409 play_collision::@2 + //SEG403 [179] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy + //SEG404 [179] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy + //SEG405 play_collision::@2 b2: - //SEG410 [182] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG406 [180] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG411 [183] 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 + //SEG407 [181] 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 - //SEG412 play_collision::@8 - //SEG413 [184] 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 + //SEG408 play_collision::@8 + //SEG409 [182] 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 - //SEG414 [185] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] - //SEG415 [185] phi (byte) play_collision::return#15 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG410 [183] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] + //SEG411 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_BOTTOM - //SEG416 play_collision::@return + //SEG412 play_collision::@return breturn: - //SEG417 [186] return + //SEG413 [184] return rts - //SEG418 play_collision::@4 + //SEG414 play_collision::@4 b4: - //SEG419 [187] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG415 [185] (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 - //SEG420 [188] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuaa_eq_0_then_la1 + //SEG416 [186] 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 - //SEG421 [185] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] - //SEG422 [185] phi (byte) play_collision::return#15 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG417 [183] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] + //SEG418 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_LEFT jmp breturn - //SEG423 play_collision::@5 + //SEG419 play_collision::@5 b5: - //SEG424 [189] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG420 [187] 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 - //SEG425 [185] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] - //SEG426 [185] phi (byte) play_collision::return#15 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG421 [183] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] + //SEG422 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_RIGHT jmp breturn - //SEG427 play_collision::@6 + //SEG423 play_collision::@6 b6: - //SEG428 [190] 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 + //SEG424 [188] 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 - //SEG429 [185] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] - //SEG430 [185] phi (byte) play_collision::return#15 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG425 [183] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] + //SEG426 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_PLAYFIELD jmp breturn - //SEG431 play_collision::@3 + //SEG427 play_collision::@3 b3: - //SEG432 [191] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG428 [189] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG433 [192] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx + //SEG429 [190] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx inx - //SEG434 [193] 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 + //SEG430 [191] 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 - //SEG435 play_collision::@17 - //SEG436 [194] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG431 play_collision::@17 + //SEG432 [192] (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 - //SEG437 [195] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG433 [193] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG438 [196] 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 + //SEG434 [194] 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 - //SEG439 [185] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] - //SEG440 [185] phi (byte) play_collision::return#15 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG435 [183] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] + //SEG436 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_NONE jmp breturn - //SEG441 play_collision::@20 + //SEG437 play_collision::@20 b20: - //SEG442 [197] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG438 [195] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG443 [178] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] - //SEG444 [178] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy - //SEG445 [178] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy - //SEG446 [178] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy + //SEG439 [176] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] + //SEG440 [176] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy + //SEG441 [176] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy + //SEG442 [176] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy jmp b1 - //SEG447 play_collision::@21 + //SEG443 play_collision::@21 b21: - //SEG448 [198] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG444 [196] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG449 [181] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] - //SEG450 [181] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy - //SEG451 [181] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy - //SEG452 [181] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy + //SEG445 [179] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] + //SEG446 [179] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy + //SEG447 [179] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy + //SEG448 [179] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy jmp b2 } -//SEG453 play_move_leftright +//SEG449 play_move_leftright play_move_leftright: { - //SEG454 [199] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG450 [197] 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 - //SEG455 play_move_leftright::@6 - //SEG456 [200] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG451 play_move_leftright::@6 + //SEG452 [198] 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 - //SEG457 play_move_leftright::@7 - //SEG458 [201] (byte) play_collision::xpos#2 ← (byte) current_xpos#20 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG453 play_move_leftright::@7 + //SEG454 [199] (byte) play_collision::xpos#2 ← (byte) current_xpos#20 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_xpos iny sty play_collision.xpos - //SEG459 [202] (byte) play_collision::ypos#2 ← (byte) current_ypos#17 -- vbuz1=vbuz2 + //SEG455 [200] (byte) play_collision::ypos#2 ← (byte) current_ypos#17 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG460 [203] (byte) play_collision::orientation#2 ← (byte) current_orientation#19 -- vbuxx=vbuz1 + //SEG456 [201] (byte) play_collision::orientation#2 ← (byte) current_orientation#19 -- vbuxx=vbuz1 ldx current_orientation - //SEG461 [204] (byte*~) current_piece#92 ← (byte*) current_piece#14 -- pbuz1=pbuz2 + //SEG457 [202] (byte*~) current_piece#92 ← (byte*) current_piece#14 -- pbuz1=pbuz2 lda current_piece sta current_piece_92 lda current_piece+1 sta current_piece_92+1 - //SEG462 [205] call play_collision - //SEG463 [175] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] - //SEG464 [175] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy - //SEG465 [175] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy - //SEG466 [175] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy - //SEG467 [175] phi (byte*) current_piece#16 = (byte*~) current_piece#92 [phi:play_move_leftright::@7->play_collision#3] -- register_copy + //SEG458 [203] call play_collision + //SEG459 [173] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] + //SEG460 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy + //SEG461 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy + //SEG462 [173] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy + //SEG463 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#92 [phi:play_move_leftright::@7->play_collision#3] -- register_copy jsr play_collision - //SEG468 [206] (byte) play_collision::return#13 ← (byte) play_collision::return#15 + //SEG464 [204] (byte) play_collision::return#13 ← (byte) play_collision::return#15 // (byte) play_collision::return#13 = (byte) play_collision::return#15 // register copy reg byte a - //SEG469 play_move_leftright::@15 - //SEG470 [207] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 + //SEG465 play_move_leftright::@15 + //SEG466 [205] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 // (byte~) play_move_leftright::$4 = (byte) play_collision::return#13 // register copy reg byte a - //SEG471 [208] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG467 [206] 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 - //SEG472 play_move_leftright::@8 - //SEG473 [209] (byte) current_xpos#5 ← ++ (byte) current_xpos#20 -- vbuz1=_inc_vbuz1 + //SEG468 play_move_leftright::@8 + //SEG469 [207] (byte) current_xpos#5 ← ++ (byte) current_xpos#20 -- vbuz1=_inc_vbuz1 inc current_xpos - //SEG474 [210] 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] + //SEG470 [208] 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: - //SEG475 [210] phi (byte) current_xpos#24 = (byte) current_xpos#7 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy - //SEG476 [210] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 + //SEG471 [208] phi (byte) current_xpos#24 = (byte) current_xpos#7 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy + //SEG472 [208] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG477 [210] 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] + //SEG473 [208] 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: - //SEG478 [210] phi (byte) current_xpos#24 = (byte) current_xpos#20 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy - //SEG479 [210] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 + //SEG474 [208] phi (byte) current_xpos#24 = (byte) current_xpos#20 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy + //SEG475 [208] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #0 - //SEG480 play_move_leftright::@return + //SEG476 play_move_leftright::@return breturn: - //SEG481 [211] return + //SEG477 [209] return rts - //SEG482 play_move_leftright::@1 + //SEG478 play_move_leftright::@1 b1: - //SEG483 [212] (byte) play_collision::xpos#1 ← (byte) current_xpos#20 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //SEG479 [210] (byte) play_collision::xpos#1 ← (byte) current_xpos#20 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 ldx current_xpos dex stx play_collision.xpos - //SEG484 [213] (byte) play_collision::ypos#1 ← (byte) current_ypos#17 -- vbuz1=vbuz2 + //SEG480 [211] (byte) play_collision::ypos#1 ← (byte) current_ypos#17 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG485 [214] (byte) play_collision::orientation#1 ← (byte) current_orientation#19 -- vbuxx=vbuz1 + //SEG481 [212] (byte) play_collision::orientation#1 ← (byte) current_orientation#19 -- vbuxx=vbuz1 ldx current_orientation - //SEG486 [215] (byte*~) current_piece#91 ← (byte*) current_piece#14 -- pbuz1=pbuz2 + //SEG482 [213] (byte*~) current_piece#91 ← (byte*) current_piece#14 -- pbuz1=pbuz2 lda current_piece sta current_piece_91 lda current_piece+1 sta current_piece_91+1 - //SEG487 [216] call play_collision - //SEG488 [175] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] - //SEG489 [175] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy - //SEG490 [175] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy - //SEG491 [175] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy - //SEG492 [175] phi (byte*) current_piece#16 = (byte*~) current_piece#91 [phi:play_move_leftright::@1->play_collision#3] -- register_copy + //SEG483 [214] call play_collision + //SEG484 [173] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] + //SEG485 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy + //SEG486 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy + //SEG487 [173] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy + //SEG488 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#91 [phi:play_move_leftright::@1->play_collision#3] -- register_copy jsr play_collision - //SEG493 [217] (byte) play_collision::return#1 ← (byte) play_collision::return#15 + //SEG489 [215] (byte) play_collision::return#1 ← (byte) play_collision::return#15 // (byte) play_collision::return#1 = (byte) play_collision::return#15 // register copy reg byte a - //SEG494 play_move_leftright::@14 - //SEG495 [218] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + //SEG490 play_move_leftright::@14 + //SEG491 [216] (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 - //SEG496 [219] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG492 [217] 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 - //SEG497 play_move_leftright::@11 - //SEG498 [220] (byte) current_xpos#7 ← -- (byte) current_xpos#20 -- vbuz1=_dec_vbuz1 + //SEG493 play_move_leftright::@11 + //SEG494 [218] (byte) current_xpos#7 ← -- (byte) current_xpos#20 -- vbuz1=_dec_vbuz1 dec current_xpos jmp b2 } -//SEG499 play_move_down +//SEG495 play_move_down play_move_down: { - //SEG500 [221] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 -- vbuz1=_inc_vbuz1 + //SEG496 [219] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG501 [222] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 + //SEG497 [220] 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 - //SEG502 [223] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] - //SEG503 play_move_down::@8 - //SEG504 [224] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] - //SEG505 [224] 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 + //SEG498 [221] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG499 play_move_down::@8 + //SEG500 [222] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG501 [222] 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 - //SEG506 [224] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG502 [222] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b3: - //SEG507 [224] 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 + //SEG503 [222] 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 - //SEG508 play_move_down::@1 + //SEG504 play_move_down::@1 b1: - //SEG509 [225] call keyboard_event_pressed - //SEG510 [357] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] - //SEG511 [357] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG505 [223] call keyboard_event_pressed + //SEG506 [355] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG507 [355] 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 - //SEG512 [226] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + //SEG508 [224] (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 - //SEG513 play_move_down::@17 - //SEG514 [227] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + //SEG509 play_move_down::@17 + //SEG510 [225] (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 - //SEG515 [228] 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 + //SEG511 [226] 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 - //SEG516 play_move_down::@9 - //SEG517 [229] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG512 play_move_down::@9 + //SEG513 [227] if((byte) current_movedown_counter#12<(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 - //SEG518 play_move_down::@10 - //SEG519 [230] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx + //SEG514 play_move_down::@10 + //SEG515 [228] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx inx - //SEG520 [231] 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] - //SEG521 [231] 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 - //SEG522 play_move_down::@2 + //SEG516 [229] 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] + //SEG517 [229] 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 + //SEG518 play_move_down::@2 b2: - //SEG523 [232] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@4 -- vbuz1_lt_vbuz2_then_la1 + //SEG519 [230] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@4 -- vbuz1_lt_vbuz2_then_la1 lda current_movedown_counter cmp current_movedown_slow bcc b4 - //SEG524 play_move_down::@11 - //SEG525 [233] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx + //SEG520 play_move_down::@11 + //SEG521 [231] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx inx - //SEG526 [234] 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] - //SEG527 [234] 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 - //SEG528 play_move_down::@4 + //SEG522 [232] 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] + //SEG523 [232] 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 + //SEG524 play_move_down::@4 b4: - //SEG529 [235] 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 + //SEG525 [233] 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 - //SEG530 play_move_down::@12 - //SEG531 [236] (byte) play_collision::ypos#0 ← (byte) current_ypos#25 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG526 play_move_down::@12 + //SEG527 [234] (byte) play_collision::ypos#0 ← (byte) current_ypos#25 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_ypos iny sty play_collision.ypos - //SEG532 [237] (byte) play_collision::xpos#0 ← (byte) current_xpos#115 -- vbuz1=vbuz2 + //SEG528 [235] (byte) play_collision::xpos#0 ← (byte) current_xpos#113 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG533 [238] (byte) play_collision::orientation#0 ← (byte) current_orientation#12 -- vbuxx=vbuz1 + //SEG529 [236] (byte) play_collision::orientation#0 ← (byte) current_orientation#12 -- vbuxx=vbuz1 ldx current_orientation - //SEG534 [239] (byte*~) current_piece#90 ← (byte*) current_piece#20 -- pbuz1=pbuz2 + //SEG530 [237] (byte*~) current_piece#90 ← (byte*) current_piece#20 -- pbuz1=pbuz2 lda current_piece sta current_piece_90 lda current_piece+1 sta current_piece_90+1 - //SEG535 [240] call play_collision - //SEG536 [175] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] - //SEG537 [175] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy - //SEG538 [175] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy - //SEG539 [175] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy - //SEG540 [175] phi (byte*) current_piece#16 = (byte*~) current_piece#90 [phi:play_move_down::@12->play_collision#3] -- register_copy + //SEG531 [238] call play_collision + //SEG532 [173] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] + //SEG533 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy + //SEG534 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy + //SEG535 [173] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy + //SEG536 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#90 [phi:play_move_down::@12->play_collision#3] -- register_copy jsr play_collision - //SEG541 [241] (byte) play_collision::return#0 ← (byte) play_collision::return#15 + //SEG537 [239] (byte) play_collision::return#0 ← (byte) play_collision::return#15 // (byte) play_collision::return#0 = (byte) play_collision::return#15 // register copy reg byte a - //SEG542 play_move_down::@18 - //SEG543 [242] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + //SEG538 play_move_down::@18 + //SEG539 [240] (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 - //SEG544 [243] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuaa_eq_vbuc1_then_la1 + //SEG540 [241] 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 - //SEG545 [244] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] - //SEG546 play_move_down::@13 - //SEG547 [245] call play_lock_current + //SEG541 [242] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG542 play_move_down::@13 + //SEG543 [243] call play_lock_current jsr play_lock_current - //SEG548 [246] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] - //SEG549 play_move_down::@19 - //SEG550 [247] call play_remove_lines - //SEG551 [317] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] + //SEG544 [244] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG545 play_move_down::@19 + //SEG546 [245] call play_remove_lines + //SEG547 [315] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] jsr play_remove_lines - //SEG552 [248] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 -- vbuaa=vbuz1 + //SEG548 [246] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 -- vbuaa=vbuz1 lda play_remove_lines.removed - //SEG553 play_move_down::@20 - //SEG554 [249] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 + //SEG549 play_move_down::@20 + //SEG550 [247] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 // (byte) play_move_down::removed#0 = (byte) play_remove_lines::return#0 // register copy reg byte a - //SEG555 [250] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuxx=vbuaa + //SEG551 [248] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuxx=vbuaa tax - //SEG556 [251] call play_update_score + //SEG552 [249] call play_update_score jsr play_update_score - //SEG557 [252] phi from play_move_down::@20 to play_move_down::@21 [phi:play_move_down::@20->play_move_down::@21] - //SEG558 play_move_down::@21 - //SEG559 [253] call play_spawn_current - //SEG560 [259] phi from play_move_down::@21 to play_spawn_current [phi:play_move_down::@21->play_spawn_current] - //SEG561 [259] phi (byte) game_over#70 = (byte) game_over#19 [phi:play_move_down::@21->play_spawn_current#0] -- register_copy + //SEG553 [250] phi from play_move_down::@20 to play_move_down::@21 [phi:play_move_down::@20->play_move_down::@21] + //SEG554 play_move_down::@21 + //SEG555 [251] call play_spawn_current + //SEG556 [257] phi from play_move_down::@21 to play_spawn_current [phi:play_move_down::@21->play_spawn_current] + //SEG557 [257] phi (byte) game_over#70 = (byte) game_over#19 [phi:play_move_down::@21->play_spawn_current#0] -- register_copy jsr play_spawn_current - //SEG562 [254] (byte*~) current_piece#95 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG558 [252] (byte*~) current_piece#95 ← (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 - //SEG563 [255] phi from play_move_down::@21 to play_move_down::@7 [phi:play_move_down::@21->play_move_down::@7] - //SEG564 [255] phi (byte) game_over#26 = (byte) game_over#15 [phi:play_move_down::@21->play_move_down::@7#0] -- register_copy - //SEG565 [255] phi (byte) current_xpos#41 = (byte) current_xpos#28 [phi:play_move_down::@21->play_move_down::@7#1] -- register_copy - //SEG566 [255] phi (byte*) current_piece_gfx#33 = (byte*) current_piece_gfx#21 [phi:play_move_down::@21->play_move_down::@7#2] -- register_copy - //SEG567 [255] phi (byte) current_orientation#36 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@21->play_move_down::@7#3] -- vbuz1=vbuc1 + //SEG559 [253] phi from play_move_down::@21 to play_move_down::@7 [phi:play_move_down::@21->play_move_down::@7] + //SEG560 [253] phi (byte) game_over#26 = (byte) game_over#15 [phi:play_move_down::@21->play_move_down::@7#0] -- register_copy + //SEG561 [253] phi (byte) current_xpos#41 = (byte) current_xpos#28 [phi:play_move_down::@21->play_move_down::@7#1] -- register_copy + //SEG562 [253] phi (byte*) current_piece_gfx#33 = (byte*) current_piece_gfx#21 [phi:play_move_down::@21->play_move_down::@7#2] -- register_copy + //SEG563 [253] phi (byte) current_orientation#36 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@21->play_move_down::@7#3] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG568 [255] phi (byte) current_piece_char#27 = (byte) current_piece_char#16 [phi:play_move_down::@21->play_move_down::@7#4] -- register_copy - //SEG569 [255] phi (byte*) current_piece#27 = (byte*~) current_piece#95 [phi:play_move_down::@21->play_move_down::@7#5] -- register_copy - //SEG570 [255] phi (byte) level_bcd#32 = (byte) level_bcd#19 [phi:play_move_down::@21->play_move_down::@7#6] -- register_copy - //SEG571 [255] phi (byte) current_movedown_slow#38 = (byte) current_movedown_slow#23 [phi:play_move_down::@21->play_move_down::@7#7] -- register_copy - //SEG572 [255] phi (byte) level#31 = (byte) level#18 [phi:play_move_down::@21->play_move_down::@7#8] -- register_copy - //SEG573 [255] phi (dword) score_bcd#27 = (dword) score_bcd#16 [phi:play_move_down::@21->play_move_down::@7#9] -- register_copy - //SEG574 [255] phi (word) lines_bcd#27 = (word) lines_bcd#17 [phi:play_move_down::@21->play_move_down::@7#10] -- register_copy - //SEG575 [255] phi (byte) current_ypos#36 = (byte) current_ypos#22 [phi:play_move_down::@21->play_move_down::@7#11] -- register_copy - //SEG576 play_move_down::@7 + //SEG564 [253] phi (byte) current_piece_char#27 = (byte) current_piece_char#16 [phi:play_move_down::@21->play_move_down::@7#4] -- register_copy + //SEG565 [253] phi (byte*) current_piece#27 = (byte*~) current_piece#95 [phi:play_move_down::@21->play_move_down::@7#5] -- register_copy + //SEG566 [253] phi (byte) level_bcd#32 = (byte) level_bcd#19 [phi:play_move_down::@21->play_move_down::@7#6] -- register_copy + //SEG567 [253] phi (byte) current_movedown_slow#38 = (byte) current_movedown_slow#23 [phi:play_move_down::@21->play_move_down::@7#7] -- register_copy + //SEG568 [253] phi (byte) level#31 = (byte) level#18 [phi:play_move_down::@21->play_move_down::@7#8] -- register_copy + //SEG569 [253] phi (dword) score_bcd#27 = (dword) score_bcd#16 [phi:play_move_down::@21->play_move_down::@7#9] -- register_copy + //SEG570 [253] phi (word) lines_bcd#27 = (word) lines_bcd#17 [phi:play_move_down::@21->play_move_down::@7#10] -- register_copy + //SEG571 [253] phi (byte) current_ypos#36 = (byte) current_ypos#22 [phi:play_move_down::@21->play_move_down::@7#11] -- register_copy + //SEG572 play_move_down::@7 b7: - //SEG577 [256] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] - //SEG578 [256] phi (byte) game_over#14 = (byte) game_over#26 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG579 [256] phi (byte) current_xpos#20 = (byte) current_xpos#41 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG580 [256] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#33 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG581 [256] phi (byte) current_orientation#19 = (byte) current_orientation#36 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG582 [256] phi (byte) current_piece_char#14 = (byte) current_piece_char#27 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG583 [256] phi (byte*) current_piece#14 = (byte*) current_piece#27 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG584 [256] phi (byte) level_bcd#17 = (byte) level_bcd#32 [phi:play_move_down::@7->play_move_down::@return#6] -- register_copy - //SEG585 [256] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#38 [phi:play_move_down::@7->play_move_down::@return#7] -- register_copy - //SEG586 [256] phi (byte) level#16 = (byte) level#31 [phi:play_move_down::@7->play_move_down::@return#8] -- register_copy - //SEG587 [256] phi (dword) score_bcd#14 = (dword) score_bcd#27 [phi:play_move_down::@7->play_move_down::@return#9] -- register_copy - //SEG588 [256] phi (word) lines_bcd#15 = (word) lines_bcd#27 [phi:play_move_down::@7->play_move_down::@return#10] -- register_copy - //SEG589 [256] phi (byte) current_ypos#17 = (byte) current_ypos#36 [phi:play_move_down::@7->play_move_down::@return#11] -- register_copy - //SEG590 [256] phi (byte) current_movedown_counter#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#12] -- vbuz1=vbuc1 + //SEG573 [254] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG574 [254] phi (byte) game_over#14 = (byte) game_over#26 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG575 [254] phi (byte) current_xpos#20 = (byte) current_xpos#41 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG576 [254] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#33 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG577 [254] phi (byte) current_orientation#19 = (byte) current_orientation#36 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy + //SEG578 [254] phi (byte) current_piece_char#14 = (byte) current_piece_char#27 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy + //SEG579 [254] phi (byte*) current_piece#14 = (byte*) current_piece#27 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG580 [254] phi (byte) level_bcd#17 = (byte) level_bcd#32 [phi:play_move_down::@7->play_move_down::@return#6] -- register_copy + //SEG581 [254] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#38 [phi:play_move_down::@7->play_move_down::@return#7] -- register_copy + //SEG582 [254] phi (byte) level#16 = (byte) level#31 [phi:play_move_down::@7->play_move_down::@return#8] -- register_copy + //SEG583 [254] phi (dword) score_bcd#14 = (dword) score_bcd#27 [phi:play_move_down::@7->play_move_down::@return#9] -- register_copy + //SEG584 [254] phi (word) lines_bcd#15 = (word) lines_bcd#27 [phi:play_move_down::@7->play_move_down::@return#10] -- register_copy + //SEG585 [254] phi (byte) current_ypos#17 = (byte) current_ypos#36 [phi:play_move_down::@7->play_move_down::@return#11] -- register_copy + //SEG586 [254] phi (byte) current_movedown_counter#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#12] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG591 [256] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#13] -- vbuxx=vbuc1 + //SEG587 [254] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#13] -- vbuxx=vbuc1 ldx #1 jmp breturn - //SEG592 [256] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG588 [254] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] b5: - //SEG593 [256] phi (byte) game_over#14 = (byte) game_over#19 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG594 [256] phi (byte) current_xpos#20 = (byte) current_xpos#115 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG595 [256] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#105 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG596 [256] phi (byte) current_orientation#19 = (byte) current_orientation#12 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG597 [256] phi (byte) current_piece_char#14 = (byte) current_piece_char#19 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG598 [256] phi (byte*) current_piece#14 = (byte*) current_piece#20 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG599 [256] phi (byte) level_bcd#17 = (byte) level_bcd#11 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG600 [256] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#14 [phi:play_move_down::@4->play_move_down::@return#7] -- register_copy - //SEG601 [256] phi (byte) level#16 = (byte) level#10 [phi:play_move_down::@4->play_move_down::@return#8] -- register_copy - //SEG602 [256] phi (dword) score_bcd#14 = (dword) score_bcd#18 [phi:play_move_down::@4->play_move_down::@return#9] -- register_copy - //SEG603 [256] phi (word) lines_bcd#15 = (word) lines_bcd#19 [phi:play_move_down::@4->play_move_down::@return#10] -- register_copy - //SEG604 [256] phi (byte) current_ypos#17 = (byte) current_ypos#25 [phi:play_move_down::@4->play_move_down::@return#11] -- register_copy - //SEG605 [256] phi (byte) current_movedown_counter#14 = (byte) current_movedown_counter#12 [phi:play_move_down::@4->play_move_down::@return#12] -- register_copy - //SEG606 [256] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#13] -- vbuxx=vbuc1 + //SEG589 [254] phi (byte) game_over#14 = (byte) game_over#19 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG590 [254] phi (byte) current_xpos#20 = (byte) current_xpos#113 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG591 [254] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#103 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG592 [254] phi (byte) current_orientation#19 = (byte) current_orientation#12 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy + //SEG593 [254] phi (byte) current_piece_char#14 = (byte) current_piece_char#19 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy + //SEG594 [254] phi (byte*) current_piece#14 = (byte*) current_piece#20 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG595 [254] phi (byte) level_bcd#17 = (byte) level_bcd#11 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy + //SEG596 [254] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#14 [phi:play_move_down::@4->play_move_down::@return#7] -- register_copy + //SEG597 [254] phi (byte) level#16 = (byte) level#10 [phi:play_move_down::@4->play_move_down::@return#8] -- register_copy + //SEG598 [254] phi (dword) score_bcd#14 = (dword) score_bcd#18 [phi:play_move_down::@4->play_move_down::@return#9] -- register_copy + //SEG599 [254] phi (word) lines_bcd#15 = (word) lines_bcd#19 [phi:play_move_down::@4->play_move_down::@return#10] -- register_copy + //SEG600 [254] phi (byte) current_ypos#17 = (byte) current_ypos#25 [phi:play_move_down::@4->play_move_down::@return#11] -- register_copy + //SEG601 [254] phi (byte) current_movedown_counter#14 = (byte) current_movedown_counter#12 [phi:play_move_down::@4->play_move_down::@return#12] -- register_copy + //SEG602 [254] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#13] -- vbuxx=vbuc1 ldx #0 - //SEG607 play_move_down::@return + //SEG603 play_move_down::@return breturn: - //SEG608 [257] return + //SEG604 [255] return rts - //SEG609 play_move_down::@6 + //SEG605 play_move_down::@6 b6: - //SEG610 [258] (byte) current_ypos#2 ← ++ (byte) current_ypos#25 -- vbuz1=_inc_vbuz1 + //SEG606 [256] (byte) current_ypos#2 ← ++ (byte) current_ypos#25 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG611 [255] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] - //SEG612 [255] phi (byte) game_over#26 = (byte) game_over#19 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG613 [255] phi (byte) current_xpos#41 = (byte) current_xpos#115 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG614 [255] phi (byte*) current_piece_gfx#33 = (byte*) current_piece_gfx#105 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG615 [255] phi (byte) current_orientation#36 = (byte) current_orientation#12 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG616 [255] phi (byte) current_piece_char#27 = (byte) current_piece_char#19 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG617 [255] phi (byte*) current_piece#27 = (byte*) current_piece#20 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy - //SEG618 [255] phi (byte) level_bcd#32 = (byte) level_bcd#11 [phi:play_move_down::@6->play_move_down::@7#6] -- register_copy - //SEG619 [255] phi (byte) current_movedown_slow#38 = (byte) current_movedown_slow#14 [phi:play_move_down::@6->play_move_down::@7#7] -- register_copy - //SEG620 [255] phi (byte) level#31 = (byte) level#10 [phi:play_move_down::@6->play_move_down::@7#8] -- register_copy - //SEG621 [255] phi (dword) score_bcd#27 = (dword) score_bcd#18 [phi:play_move_down::@6->play_move_down::@7#9] -- register_copy - //SEG622 [255] phi (word) lines_bcd#27 = (word) lines_bcd#19 [phi:play_move_down::@6->play_move_down::@7#10] -- register_copy - //SEG623 [255] phi (byte) current_ypos#36 = (byte) current_ypos#2 [phi:play_move_down::@6->play_move_down::@7#11] -- register_copy + //SEG607 [253] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG608 [253] phi (byte) game_over#26 = (byte) game_over#19 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG609 [253] phi (byte) current_xpos#41 = (byte) current_xpos#113 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG610 [253] phi (byte*) current_piece_gfx#33 = (byte*) current_piece_gfx#103 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG611 [253] phi (byte) current_orientation#36 = (byte) current_orientation#12 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy + //SEG612 [253] phi (byte) current_piece_char#27 = (byte) current_piece_char#19 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy + //SEG613 [253] phi (byte*) current_piece#27 = (byte*) current_piece#20 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG614 [253] phi (byte) level_bcd#32 = (byte) level_bcd#11 [phi:play_move_down::@6->play_move_down::@7#6] -- register_copy + //SEG615 [253] phi (byte) current_movedown_slow#38 = (byte) current_movedown_slow#14 [phi:play_move_down::@6->play_move_down::@7#7] -- register_copy + //SEG616 [253] phi (byte) level#31 = (byte) level#10 [phi:play_move_down::@6->play_move_down::@7#8] -- register_copy + //SEG617 [253] phi (dword) score_bcd#27 = (dword) score_bcd#18 [phi:play_move_down::@6->play_move_down::@7#9] -- register_copy + //SEG618 [253] phi (word) lines_bcd#27 = (word) lines_bcd#19 [phi:play_move_down::@6->play_move_down::@7#10] -- register_copy + //SEG619 [253] phi (byte) current_ypos#36 = (byte) current_ypos#2 [phi:play_move_down::@6->play_move_down::@7#11] -- register_copy jmp b7 } -//SEG624 play_spawn_current +//SEG620 play_spawn_current play_spawn_current: { .label _3 = 4 - //SEG625 [260] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] - //SEG626 [260] 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 + //SEG621 [258] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] + //SEG622 [258] 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 - //SEG627 play_spawn_current::@1 + //SEG623 play_spawn_current::@1 b1: - //SEG628 [261] 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 + //SEG624 [259] 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 - //SEG629 play_spawn_current::@3 - //SEG630 [262] (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 + //SEG625 play_spawn_current::@3 + //SEG626 [260] (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 - //SEG631 [263] (byte) current_piece_char#16 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG627 [261] (byte) current_piece_char#16 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_CHARS,x sta current_piece_char - //SEG632 [264] (byte*) current_piece_gfx#21 ← (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 + //SEG628 [262] (byte*) current_piece_gfx#21 ← (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 - //SEG633 [265] (byte) current_xpos#28 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG629 [263] (byte) current_xpos#28 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_START_X,x sta current_xpos - //SEG634 [266] (byte) current_ypos#22 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG630 [264] (byte) current_ypos#22 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_START_Y,x sta current_ypos - //SEG635 [267] (byte) play_collision::xpos#4 ← (byte) current_xpos#28 -- vbuz1=vbuz2 + //SEG631 [265] (byte) play_collision::xpos#4 ← (byte) current_xpos#28 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG636 [268] (byte) play_collision::ypos#4 ← (byte) current_ypos#22 -- vbuz1=vbuz2 + //SEG632 [266] (byte) play_collision::ypos#4 ← (byte) current_ypos#22 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG637 [269] (byte*~) current_piece#94 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG633 [267] (byte*~) current_piece#94 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 lda PIECES,y sta current_piece_94 lda PIECES+1,y sta current_piece_94+1 - //SEG638 [270] call play_collision - //SEG639 [175] phi from play_spawn_current::@3 to play_collision [phi:play_spawn_current::@3->play_collision] - //SEG640 [175] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#4 [phi:play_spawn_current::@3->play_collision#0] -- register_copy - //SEG641 [175] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#4 [phi:play_spawn_current::@3->play_collision#1] -- register_copy - //SEG642 [175] phi (byte) play_collision::orientation#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_spawn_current::@3->play_collision#2] -- vbuxx=vbuc1 + //SEG634 [268] call play_collision + //SEG635 [173] phi from play_spawn_current::@3 to play_collision [phi:play_spawn_current::@3->play_collision] + //SEG636 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#4 [phi:play_spawn_current::@3->play_collision#0] -- register_copy + //SEG637 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#4 [phi:play_spawn_current::@3->play_collision#1] -- register_copy + //SEG638 [173] phi (byte) play_collision::orientation#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_spawn_current::@3->play_collision#2] -- vbuxx=vbuc1 ldx #0 - //SEG643 [175] phi (byte*) current_piece#16 = (byte*~) current_piece#94 [phi:play_spawn_current::@3->play_collision#3] -- register_copy + //SEG639 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#94 [phi:play_spawn_current::@3->play_collision#3] -- register_copy jsr play_collision - //SEG644 [271] (byte) play_collision::return#10 ← (byte) play_collision::return#15 + //SEG640 [269] (byte) play_collision::return#10 ← (byte) play_collision::return#15 // (byte) play_collision::return#10 = (byte) play_collision::return#15 // register copy reg byte a - //SEG645 play_spawn_current::@10 - //SEG646 [272] (byte~) play_spawn_current::$5 ← (byte) play_collision::return#10 + //SEG641 play_spawn_current::@10 + //SEG642 [270] (byte~) play_spawn_current::$5 ← (byte) play_collision::return#10 // (byte~) play_spawn_current::$5 = (byte) play_collision::return#10 // register copy reg byte a - //SEG647 [273] if((byte~) play_spawn_current::$5!=(const byte) COLLISION_PLAYFIELD#0) goto play_spawn_current::@11 -- vbuaa_neq_vbuc1_then_la1 + //SEG643 [271] if((byte~) play_spawn_current::$5!=(const byte) COLLISION_PLAYFIELD#0) goto play_spawn_current::@11 -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_PLAYFIELD bne breturn - //SEG648 [274] phi from play_spawn_current::@10 to play_spawn_current::@return [phi:play_spawn_current::@10->play_spawn_current::@return] - //SEG649 [274] phi (byte) game_over#15 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_spawn_current::@10->play_spawn_current::@return#0] -- vbuz1=vbuc1 + //SEG644 [272] phi from play_spawn_current::@10 to play_spawn_current::@return [phi:play_spawn_current::@10->play_spawn_current::@return] + //SEG645 [272] phi (byte) game_over#15 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_spawn_current::@10->play_spawn_current::@return#0] -- vbuz1=vbuc1 lda #1 sta game_over - //SEG650 play_spawn_current::@return + //SEG646 play_spawn_current::@return breturn: - //SEG651 [275] return + //SEG647 [273] return rts - //SEG652 [276] phi from play_spawn_current::@10 to play_spawn_current::@11 [phi:play_spawn_current::@10->play_spawn_current::@11] - //SEG653 play_spawn_current::@11 - //SEG654 [274] phi from play_spawn_current::@11 to play_spawn_current::@return [phi:play_spawn_current::@11->play_spawn_current::@return] - //SEG655 [274] phi (byte) game_over#15 = (byte) game_over#70 [phi:play_spawn_current::@11->play_spawn_current::@return#0] -- register_copy - //SEG656 [277] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] - //SEG657 play_spawn_current::@2 + //SEG648 [274] phi from play_spawn_current::@10 to play_spawn_current::@11 [phi:play_spawn_current::@10->play_spawn_current::@11] + //SEG649 play_spawn_current::@11 + //SEG650 [272] phi from play_spawn_current::@11 to play_spawn_current::@return [phi:play_spawn_current::@11->play_spawn_current::@return] + //SEG651 [272] phi (byte) game_over#15 = (byte) game_over#70 [phi:play_spawn_current::@11->play_spawn_current::@return#0] -- register_copy + //SEG652 [275] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] + //SEG653 play_spawn_current::@2 b2: - //SEG658 [278] call sid_rnd + //SEG654 [276] call sid_rnd jsr sid_rnd - //SEG659 [279] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + //SEG655 [277] (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 - //SEG660 play_spawn_current::@9 - //SEG661 [280] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 + //SEG656 play_spawn_current::@9 + //SEG657 [278] (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 - //SEG662 [281] (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 + //SEG658 [279] (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 - //SEG663 [260] phi from play_spawn_current::@9 to play_spawn_current::@1 [phi:play_spawn_current::@9->play_spawn_current::@1] - //SEG664 [260] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@9->play_spawn_current::@1#0] -- register_copy + //SEG659 [258] phi from play_spawn_current::@9 to play_spawn_current::@1 [phi:play_spawn_current::@9->play_spawn_current::@1] + //SEG660 [258] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@9->play_spawn_current::@1#0] -- register_copy jmp b1 } -//SEG665 sid_rnd +//SEG661 sid_rnd sid_rnd: { - //SEG666 [282] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 + //SEG662 [280] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 lda SID_VOICE3_OSC - //SEG667 sid_rnd::@return - //SEG668 [283] return + //SEG663 sid_rnd::@return + //SEG664 [281] return rts } -//SEG669 play_update_score +//SEG665 play_update_score play_update_score: { .label lines_before = 4 .label add_bcd = $2a - //SEG670 [284] if((byte) play_update_score::removed#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_update_score::@return -- vbuxx_eq_0_then_la1 + //SEG666 [282] if((byte) play_update_score::removed#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_update_score::@return -- vbuxx_eq_0_then_la1 cpx #0 beq breturn - //SEG671 play_update_score::@3 - //SEG672 [285] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 -- vbuaa=_lo_vwuz1 + //SEG667 play_update_score::@3 + //SEG668 [283] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 -- vbuaa=_lo_vwuz1 lda lines_bcd - //SEG673 [286] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuaa_band_vbuc1 + //SEG669 [284] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuaa_band_vbuc1 and #$f0 sta lines_before - //SEG674 [287] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 + //SEG670 [285] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 txa asl asl - //SEG675 [288] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) -- vduz1=pduc1_derefidx_vbuaa + //SEG671 [286] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) -- vduz1=pduc1_derefidx_vbuaa tay lda score_add_bcd,y sta add_bcd @@ -23360,9 +23243,9 @@ play_update_score: { sta add_bcd+2 lda score_add_bcd+3,y sta add_bcd+3 - //SEG676 asm { sed } + //SEG672 asm { sed } sed - //SEG677 [290] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 -- vwuz1=vwuz1_plus_vbuxx + //SEG673 [288] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 -- vwuz1=vwuz1_plus_vbuxx txa clc adc lines_bcd @@ -23370,7 +23253,7 @@ play_update_score: { lda #0 adc lines_bcd+1 sta lines_bcd+1 - //SEG678 [291] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 -- vduz1=vduz1_plus_vduz2 + //SEG674 [289] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 -- vduz1=vduz1_plus_vduz2 lda score_bcd clc adc add_bcd @@ -23384,87 +23267,87 @@ play_update_score: { lda score_bcd+3 adc add_bcd+3 sta score_bcd+3 - //SEG679 asm { cld } + //SEG675 asm { cld } cld - //SEG680 [293] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 -- vbuaa=_lo_vwuz1 + //SEG676 [291] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 -- vbuaa=_lo_vwuz1 lda lines_bcd - //SEG681 [294] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 -- vbuaa=vbuaa_band_vbuc1 + //SEG677 [292] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 -- vbuaa=vbuaa_band_vbuc1 and #$f0 - //SEG682 [295] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return -- vbuz1_eq_vbuaa_then_la1 + //SEG678 [293] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return -- vbuz1_eq_vbuaa_then_la1 cmp lines_before beq breturn - //SEG683 [296] phi from play_update_score::@3 to play_update_score::@4 [phi:play_update_score::@3->play_update_score::@4] - //SEG684 play_update_score::@4 - //SEG685 [297] call play_increase_level + //SEG679 [294] phi from play_update_score::@3 to play_update_score::@4 [phi:play_update_score::@3->play_update_score::@4] + //SEG680 play_update_score::@4 + //SEG681 [295] call play_increase_level jsr play_increase_level - //SEG686 [298] phi from play_update_score play_update_score::@3 play_update_score::@4 to play_update_score::@return [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return] - //SEG687 [298] phi (byte) level_bcd#19 = (byte) level_bcd#11 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#0] -- register_copy - //SEG688 [298] phi (byte) current_movedown_slow#23 = (byte) current_movedown_slow#14 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#1] -- register_copy - //SEG689 [298] phi (byte) level#18 = (byte) level#10 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#2] -- register_copy - //SEG690 [298] phi (dword) score_bcd#16 = (dword) score_bcd#18 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#3] -- register_copy - //SEG691 [298] phi (word) lines_bcd#17 = (word) lines_bcd#19 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#4] -- register_copy - //SEG692 play_update_score::@return + //SEG682 [296] phi from play_update_score play_update_score::@3 play_update_score::@4 to play_update_score::@return [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return] + //SEG683 [296] phi (byte) level_bcd#19 = (byte) level_bcd#11 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#0] -- register_copy + //SEG684 [296] phi (byte) current_movedown_slow#23 = (byte) current_movedown_slow#14 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#1] -- register_copy + //SEG685 [296] phi (byte) level#18 = (byte) level#10 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#2] -- register_copy + //SEG686 [296] phi (dword) score_bcd#16 = (dword) score_bcd#18 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#3] -- register_copy + //SEG687 [296] phi (word) lines_bcd#17 = (word) lines_bcd#19 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#4] -- register_copy + //SEG688 play_update_score::@return breturn: - //SEG693 [299] return + //SEG689 [297] return rts } -//SEG694 play_increase_level +//SEG690 play_increase_level play_increase_level: { - //SEG695 [300] (byte) level#20 ← ++ (byte) level#10 -- vbuz1=_inc_vbuz1 + //SEG691 [298] (byte) level#20 ← ++ (byte) level#10 -- vbuz1=_inc_vbuz1 inc level - //SEG696 [301] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 -- vbuz1_gt_vbuc1_then_la1 + //SEG692 [299] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 -- vbuz1_gt_vbuc1_then_la1 lda level cmp #$1d beq !+ bcs b1 !: - //SEG697 play_increase_level::@5 - //SEG698 [302] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG693 play_increase_level::@5 + //SEG694 [300] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) -- vbuz1=pbuc1_derefidx_vbuz2 ldy level lda MOVEDOWN_SLOW_SPEEDS,y sta current_movedown_slow - //SEG699 [303] phi from play_increase_level::@5 to play_increase_level::@2 [phi:play_increase_level::@5->play_increase_level::@2] - //SEG700 [303] phi (byte) current_movedown_slow#69 = (byte) current_movedown_slow#10 [phi:play_increase_level::@5->play_increase_level::@2#0] -- register_copy + //SEG695 [301] phi from play_increase_level::@5 to play_increase_level::@2 [phi:play_increase_level::@5->play_increase_level::@2] + //SEG696 [301] phi (byte) current_movedown_slow#69 = (byte) current_movedown_slow#10 [phi:play_increase_level::@5->play_increase_level::@2#0] -- register_copy jmp b2 - //SEG701 [303] phi from play_increase_level to play_increase_level::@2 [phi:play_increase_level->play_increase_level::@2] + //SEG697 [301] phi from play_increase_level to play_increase_level::@2 [phi:play_increase_level->play_increase_level::@2] b1: - //SEG702 [303] phi (byte) current_movedown_slow#69 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_increase_level->play_increase_level::@2#0] -- vbuz1=vbuc1 + //SEG698 [301] phi (byte) current_movedown_slow#69 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_increase_level->play_increase_level::@2#0] -- vbuz1=vbuc1 lda #1 sta current_movedown_slow - //SEG703 play_increase_level::@2 + //SEG699 play_increase_level::@2 b2: - //SEG704 [304] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 -- vbuz1=_inc_vbuz1 + //SEG700 [302] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 -- vbuz1=_inc_vbuz1 inc level_bcd - //SEG705 [305] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG701 [303] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 lda #$f and level_bcd - //SEG706 [306] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 -- vbuaa_neq_vbuc1_then_la1 + //SEG702 [304] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 -- vbuaa_neq_vbuc1_then_la1 cmp #$a bne b3 - //SEG707 play_increase_level::@7 - //SEG708 [307] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 -- vbuz1=vbuz1_plus_vbuc1 + //SEG703 play_increase_level::@7 + //SEG704 [305] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 -- vbuz1=vbuz1_plus_vbuc1 lda #6 clc adc level_bcd sta level_bcd - //SEG709 [308] phi from play_increase_level::@2 play_increase_level::@7 to play_increase_level::@3 [phi:play_increase_level::@2/play_increase_level::@7->play_increase_level::@3] - //SEG710 [308] phi (byte) level_bcd#64 = (byte) level_bcd#21 [phi:play_increase_level::@2/play_increase_level::@7->play_increase_level::@3#0] -- register_copy - //SEG711 play_increase_level::@3 + //SEG705 [306] phi from play_increase_level::@2 play_increase_level::@7 to play_increase_level::@3 [phi:play_increase_level::@2/play_increase_level::@7->play_increase_level::@3] + //SEG706 [306] phi (byte) level_bcd#64 = (byte) level_bcd#21 [phi:play_increase_level::@2/play_increase_level::@7->play_increase_level::@3#0] -- register_copy + //SEG707 play_increase_level::@3 b3: - //SEG712 asm { sed } + //SEG708 asm { sed } sed - //SEG713 [310] phi from play_increase_level::@3 to play_increase_level::@4 [phi:play_increase_level::@3->play_increase_level::@4] - //SEG714 [310] phi (byte) play_increase_level::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_increase_level::@3->play_increase_level::@4#0] -- vbuxx=vbuc1 + //SEG709 [308] phi from play_increase_level::@3 to play_increase_level::@4 [phi:play_increase_level::@3->play_increase_level::@4] + //SEG710 [308] phi (byte) play_increase_level::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_increase_level::@3->play_increase_level::@4#0] -- vbuxx=vbuc1 ldx #0 - //SEG715 [310] phi from play_increase_level::@4 to play_increase_level::@4 [phi:play_increase_level::@4->play_increase_level::@4] - //SEG716 [310] phi (byte) play_increase_level::b#2 = (byte) play_increase_level::b#1 [phi:play_increase_level::@4->play_increase_level::@4#0] -- register_copy - //SEG717 play_increase_level::@4 + //SEG711 [308] phi from play_increase_level::@4 to play_increase_level::@4 [phi:play_increase_level::@4->play_increase_level::@4] + //SEG712 [308] phi (byte) play_increase_level::b#2 = (byte) play_increase_level::b#1 [phi:play_increase_level::@4->play_increase_level::@4#0] -- register_copy + //SEG713 play_increase_level::@4 b4: - //SEG718 [311] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 + //SEG714 [309] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 txa asl asl - //SEG719 [312] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) -- pduc1_derefidx_vbuaa=pduc1_derefidx_vbuaa_plus_pduc2_derefidx_vbuaa + //SEG715 [310] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) -- pduc1_derefidx_vbuaa=pduc1_derefidx_vbuaa_plus_pduc2_derefidx_vbuaa tay clc lda score_add_bcd,y @@ -23479,131 +23362,131 @@ play_increase_level: { lda score_add_bcd+3,y adc SCORE_BASE_BCD+3,y sta score_add_bcd+3,y - //SEG720 [313] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 -- vbuxx=_inc_vbuxx + //SEG716 [311] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 -- vbuxx=_inc_vbuxx inx - //SEG721 [314] if((byte) play_increase_level::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_increase_level::@4 -- vbuxx_neq_vbuc1_then_la1 + //SEG717 [312] if((byte) play_increase_level::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_increase_level::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #5 bne b4 - //SEG722 play_increase_level::@8 - //SEG723 asm { cld } + //SEG718 play_increase_level::@8 + //SEG719 asm { cld } cld - //SEG724 play_increase_level::@return - //SEG725 [316] return + //SEG720 play_increase_level::@return + //SEG721 [314] return rts } -//SEG726 play_remove_lines +//SEG722 play_remove_lines play_remove_lines: { .label c = $c .label x = $a .label y = 4 .label removed = 9 .label full = $b - //SEG727 [318] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] - //SEG728 [318] phi (byte) play_remove_lines::removed#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines->play_remove_lines::@1#0] -- vbuz1=vbuc1 + //SEG723 [316] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] + //SEG724 [316] phi (byte) play_remove_lines::removed#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines->play_remove_lines::@1#0] -- vbuz1=vbuc1 lda #0 sta removed - //SEG729 [318] 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#1] -- vbuz1=vbuc1 + //SEG725 [316] 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#1] -- vbuz1=vbuc1 sta y - //SEG730 [318] 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#2] -- vbuxx=vbuc1 + //SEG726 [316] 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#2] -- vbuxx=vbuc1 ldx #PLAYFIELD_LINES*PLAYFIELD_COLS-1 - //SEG731 [318] 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#3] -- vbuyy=vbuc1 + //SEG727 [316] 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#3] -- vbuyy=vbuc1 ldy #PLAYFIELD_LINES*PLAYFIELD_COLS-1 - //SEG732 [318] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] - //SEG733 [318] phi (byte) play_remove_lines::removed#11 = (byte) play_remove_lines::removed#7 [phi:play_remove_lines::@4->play_remove_lines::@1#0] -- register_copy - //SEG734 [318] phi (byte) play_remove_lines::y#8 = (byte) play_remove_lines::y#1 [phi:play_remove_lines::@4->play_remove_lines::@1#1] -- register_copy - //SEG735 [318] phi (byte) play_remove_lines::w#12 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@4->play_remove_lines::@1#2] -- register_copy - //SEG736 [318] phi (byte) play_remove_lines::r#3 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@4->play_remove_lines::@1#3] -- register_copy - //SEG737 play_remove_lines::@1 + //SEG728 [316] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] + //SEG729 [316] phi (byte) play_remove_lines::removed#11 = (byte) play_remove_lines::removed#7 [phi:play_remove_lines::@4->play_remove_lines::@1#0] -- register_copy + //SEG730 [316] phi (byte) play_remove_lines::y#8 = (byte) play_remove_lines::y#1 [phi:play_remove_lines::@4->play_remove_lines::@1#1] -- register_copy + //SEG731 [316] phi (byte) play_remove_lines::w#12 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@4->play_remove_lines::@1#2] -- register_copy + //SEG732 [316] phi (byte) play_remove_lines::r#3 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@4->play_remove_lines::@1#3] -- register_copy + //SEG733 play_remove_lines::@1 b1: - //SEG738 [319] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] - //SEG739 [319] 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 + //SEG734 [317] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] + //SEG735 [317] 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 - //SEG740 [319] 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 + //SEG736 [317] 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 - //SEG741 [319] 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 - //SEG742 [319] 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 - //SEG743 [319] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] - //SEG744 [319] 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 - //SEG745 [319] 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 - //SEG746 [319] 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 - //SEG747 [319] 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 - //SEG748 play_remove_lines::@2 + //SEG737 [317] 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 + //SEG738 [317] 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 + //SEG739 [317] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] + //SEG740 [317] 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 + //SEG741 [317] 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 + //SEG742 [317] 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 + //SEG743 [317] 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 + //SEG744 play_remove_lines::@2 b2: - //SEG749 [320] (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 + //SEG745 [318] (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 - //SEG750 [321] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy + //SEG746 [319] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy dey - //SEG751 [322] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@18 -- vbuz1_neq_0_then_la1 + //SEG747 [320] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@18 -- vbuz1_neq_0_then_la1 cmp #0 bne b3 - //SEG752 [323] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] - //SEG753 [323] 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 + //SEG748 [321] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] + //SEG749 [321] 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 - //SEG754 play_remove_lines::@3 + //SEG750 play_remove_lines::@3 b3: - //SEG755 [324] *((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 + //SEG751 [322] *((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 - //SEG756 [325] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx + //SEG752 [323] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx dex - //SEG757 [326] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 + //SEG753 [324] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG758 [327] 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 + //SEG754 [325] 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 - //SEG759 play_remove_lines::@9 - //SEG760 [328] 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 + //SEG755 play_remove_lines::@9 + //SEG756 [326] 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 - //SEG761 play_remove_lines::@10 - //SEG762 [329] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuxx=vbuxx_plus_vbuc1 + //SEG757 play_remove_lines::@10 + //SEG758 [327] (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 - //SEG763 [330] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 + //SEG759 [328] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 inc removed - //SEG764 [331] 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] - //SEG765 [331] phi (byte) play_remove_lines::removed#7 = (byte) play_remove_lines::removed#1 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4#0] -- register_copy - //SEG766 [331] 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#1] -- register_copy - //SEG767 play_remove_lines::@4 + //SEG760 [329] 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] + //SEG761 [329] phi (byte) play_remove_lines::removed#7 = (byte) play_remove_lines::removed#1 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4#0] -- register_copy + //SEG762 [329] 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#1] -- register_copy + //SEG763 play_remove_lines::@4 b4: - //SEG768 [332] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 + //SEG764 [330] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG769 [333] 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 + //SEG765 [331] 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 - //SEG770 [334] 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] - //SEG771 [334] 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 - //SEG772 play_remove_lines::@5 + //SEG766 [332] 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] + //SEG767 [332] 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 + //SEG768 play_remove_lines::@5 b5: - //SEG773 [335] 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 + //SEG769 [333] 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 - //SEG774 play_remove_lines::@return - //SEG775 [336] return + //SEG770 play_remove_lines::@return + //SEG771 [334] return rts - //SEG776 play_remove_lines::@6 + //SEG772 play_remove_lines::@6 b6: - //SEG777 [337] *((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 + //SEG773 [335] *((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 - //SEG778 [338] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx + //SEG774 [336] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx dex jmp b5 - //SEG779 [339] phi from play_remove_lines::@2 to play_remove_lines::@18 [phi:play_remove_lines::@2->play_remove_lines::@18] - //SEG780 play_remove_lines::@18 - //SEG781 [323] phi from play_remove_lines::@18 to play_remove_lines::@3 [phi:play_remove_lines::@18->play_remove_lines::@3] - //SEG782 [323] phi (byte) play_remove_lines::full#2 = (byte) play_remove_lines::full#4 [phi:play_remove_lines::@18->play_remove_lines::@3#0] -- register_copy + //SEG775 [337] phi from play_remove_lines::@2 to play_remove_lines::@18 [phi:play_remove_lines::@2->play_remove_lines::@18] + //SEG776 play_remove_lines::@18 + //SEG777 [321] phi from play_remove_lines::@18 to play_remove_lines::@3 [phi:play_remove_lines::@18->play_remove_lines::@3] + //SEG778 [321] phi (byte) play_remove_lines::full#2 = (byte) play_remove_lines::full#4 [phi:play_remove_lines::@18->play_remove_lines::@3#0] -- register_copy } -//SEG783 play_lock_current +//SEG779 play_lock_current play_lock_current: { .label ypos2 = $10 .label playfield_line = 5 @@ -23614,433 +23497,433 @@ play_lock_current: { .label i_3 = 9 .label i_7 = 9 .label i_9 = 9 - //SEG784 [340] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#25 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 + //SEG780 [338] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#25 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 asl ypos2 - //SEG785 [341] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] - //SEG786 [341] 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 + //SEG781 [339] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] + //SEG782 [339] 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 - //SEG787 [341] 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 + //SEG783 [339] 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 - //SEG788 [341] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy - //SEG789 play_lock_current::@1 + //SEG784 [339] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy + //SEG785 play_lock_current::@1 b1: - //SEG790 [342] (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 + //SEG786 [340] (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 - //SEG791 [343] (byte) play_lock_current::col#0 ← (byte) current_xpos#115 -- vbuz1=vbuz2 + //SEG787 [341] (byte) play_lock_current::col#0 ← (byte) current_xpos#113 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG792 [344] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] - //SEG793 [344] 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 + //SEG788 [342] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] + //SEG789 [342] 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 - //SEG794 [344] 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 - //SEG795 [344] 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 - //SEG796 play_lock_current::@2 + //SEG790 [342] 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 + //SEG791 [342] 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 + //SEG792 play_lock_current::@2 b2: - //SEG797 [345] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG793 [343] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG798 [346] if(*((byte*) current_piece_gfx#105 + (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 + //SEG794 [344] if(*((byte*) current_piece_gfx#103 + (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 - //SEG799 play_lock_current::@4 - //SEG800 [347] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#19 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG795 play_lock_current::@4 + //SEG796 [345] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#19 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_char ldy col sta (playfield_line),y - //SEG801 play_lock_current::@3 + //SEG797 play_lock_current::@3 b3: - //SEG802 [348] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG798 [346] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG803 [349] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx + //SEG799 [347] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG804 [350] 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 + //SEG800 [348] 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 - //SEG805 play_lock_current::@5 - //SEG806 [351] (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 + //SEG801 play_lock_current::@5 + //SEG802 [349] (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 - //SEG807 [352] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG803 [350] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG808 [353] 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 + //SEG804 [351] 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 - //SEG809 play_lock_current::@return - //SEG810 [354] return + //SEG805 play_lock_current::@return + //SEG806 [352] return rts - //SEG811 play_lock_current::@7 + //SEG807 play_lock_current::@7 b7: - //SEG812 [355] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG808 [353] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG813 [341] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] - //SEG814 [341] 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 - //SEG815 [341] 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 - //SEG816 [341] 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 + //SEG809 [339] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] + //SEG810 [339] 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 + //SEG811 [339] 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 + //SEG812 [339] 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 - //SEG817 play_lock_current::@8 + //SEG813 play_lock_current::@8 b8: - //SEG818 [356] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG814 [354] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG819 [344] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] - //SEG820 [344] 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 - //SEG821 [344] 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 - //SEG822 [344] 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 + //SEG815 [342] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] + //SEG816 [342] 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 + //SEG817 [342] 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 + //SEG818 [342] 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 } -//SEG823 keyboard_event_pressed +//SEG819 keyboard_event_pressed keyboard_event_pressed: { .label row_bits = $a .label keycode = 9 - //SEG824 [358] (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 + //SEG820 [356] (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 - //SEG825 [359] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa + //SEG821 [357] (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 - //SEG826 [360] (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 + //SEG822 [358] (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 - //SEG827 [361] (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 + //SEG823 [359] (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 - //SEG828 keyboard_event_pressed::@return - //SEG829 [362] return + //SEG824 keyboard_event_pressed::@return + //SEG825 [360] return rts } -//SEG830 keyboard_event_get +//SEG826 keyboard_event_get keyboard_event_get: { - //SEG831 [363] 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 + //SEG827 [361] 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 - //SEG832 keyboard_event_get::@3 - //SEG833 [364] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG828 keyboard_event_get::@3 + //SEG829 [362] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG834 [365] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuxx=pbuc1_derefidx_vbuz1 + //SEG830 [363] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuxx=pbuc1_derefidx_vbuz1 ldx keyboard_events_size lda keyboard_events,x tax - //SEG835 [366] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] - //SEG836 [366] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG837 [366] 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 + //SEG831 [364] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG832 [364] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG833 [364] 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 - //SEG838 [366] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG834 [364] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] b1: - //SEG839 [366] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG840 [366] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuxx=vbuc1 + //SEG835 [364] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG836 [364] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuxx=vbuc1 ldx #$ff - //SEG841 keyboard_event_get::@return + //SEG837 keyboard_event_get::@return breturn: - //SEG842 [367] return + //SEG838 [365] return rts } -//SEG843 keyboard_event_scan +//SEG839 keyboard_event_scan keyboard_event_scan: { .label row_scan = $b .label keycode = $a .label row = 9 - //SEG844 [369] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] - //SEG845 [369] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG846 [369] 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 + //SEG840 [367] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + //SEG841 [367] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG842 [367] 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 - //SEG847 [369] 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 + //SEG843 [367] 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 - //SEG848 [369] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] - //SEG849 [369] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG850 [369] 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 - //SEG851 [369] 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 - //SEG852 keyboard_event_scan::@1 + //SEG844 [367] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG845 [367] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG846 [367] 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 + //SEG847 [367] 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 + //SEG848 keyboard_event_scan::@1 b1: - //SEG853 [370] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 + //SEG849 [368] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 ldx row - //SEG854 [371] call keyboard_matrix_read + //SEG850 [369] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG855 [372] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + //SEG851 [370] (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 - //SEG856 keyboard_event_scan::@25 - //SEG857 [373] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa + //SEG852 keyboard_event_scan::@25 + //SEG853 [371] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa sta row_scan - //SEG858 [374] 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 + //SEG854 [372] 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 - //SEG859 keyboard_event_scan::@13 - //SEG860 [375] (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 + //SEG855 keyboard_event_scan::@13 + //SEG856 [373] (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 - //SEG861 [376] 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] - //SEG862 [376] 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 - //SEG863 [376] 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 - //SEG864 keyboard_event_scan::@3 + //SEG857 [374] 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] + //SEG858 [374] 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 + //SEG859 [374] 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 + //SEG860 keyboard_event_scan::@3 b3: - //SEG865 [377] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG861 [375] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG866 [378] 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 + //SEG862 [376] 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 - //SEG867 [379] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] - //SEG868 keyboard_event_scan::@20 - //SEG869 [380] call keyboard_event_pressed - //SEG870 [357] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] - //SEG871 [357] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG863 [377] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG864 keyboard_event_scan::@20 + //SEG865 [378] call keyboard_event_pressed + //SEG866 [355] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG867 [355] 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 - //SEG872 [381] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + //SEG868 [379] (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 - //SEG873 keyboard_event_scan::@26 - //SEG874 [382] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + //SEG869 keyboard_event_scan::@26 + //SEG870 [380] (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 - //SEG875 [383] 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 + //SEG871 [381] 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 - //SEG876 [384] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] - //SEG877 keyboard_event_scan::@21 - //SEG878 [385] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] - //SEG879 [385] 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 + //SEG872 [382] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG873 keyboard_event_scan::@21 + //SEG874 [383] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] + //SEG875 [383] 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 - //SEG880 [385] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG876 [383] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] b2: - //SEG881 [385] 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 + //SEG877 [383] 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 - //SEG882 keyboard_event_scan::@9 + //SEG878 keyboard_event_scan::@9 b9: - //SEG883 [386] call keyboard_event_pressed - //SEG884 [357] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] - //SEG885 [357] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG879 [384] call keyboard_event_pressed + //SEG880 [355] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG881 [355] 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 - //SEG886 [387] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + //SEG882 [385] (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 - //SEG887 keyboard_event_scan::@27 - //SEG888 [388] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + //SEG883 keyboard_event_scan::@27 + //SEG884 [386] (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 - //SEG889 [389] 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 + //SEG885 [387] 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 - //SEG890 keyboard_event_scan::@22 - //SEG891 [390] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG886 keyboard_event_scan::@22 + //SEG887 [388] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_RSHIFT tax - //SEG892 [391] 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] - //SEG893 [391] 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 - //SEG894 keyboard_event_scan::@10 + //SEG888 [389] 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] + //SEG889 [389] 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 + //SEG890 keyboard_event_scan::@10 b10: - //SEG895 [392] call keyboard_event_pressed - //SEG896 [357] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] - //SEG897 [357] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG891 [390] call keyboard_event_pressed + //SEG892 [355] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG893 [355] 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 - //SEG898 [393] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + //SEG894 [391] (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 - //SEG899 keyboard_event_scan::@28 - //SEG900 [394] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + //SEG895 keyboard_event_scan::@28 + //SEG896 [392] (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 - //SEG901 [395] 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 + //SEG897 [393] 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 - //SEG902 keyboard_event_scan::@23 - //SEG903 [396] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG898 keyboard_event_scan::@23 + //SEG899 [394] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_CTRL tax - //SEG904 [397] 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] - //SEG905 [397] 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 - //SEG906 keyboard_event_scan::@11 + //SEG900 [395] 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] + //SEG901 [395] 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 + //SEG902 keyboard_event_scan::@11 b11: - //SEG907 [398] call keyboard_event_pressed - //SEG908 [357] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] - //SEG909 [357] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG903 [396] call keyboard_event_pressed + //SEG904 [355] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG905 [355] 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 - //SEG910 [399] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + //SEG906 [397] (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 - //SEG911 keyboard_event_scan::@29 - //SEG912 [400] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + //SEG907 keyboard_event_scan::@29 + //SEG908 [398] (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 - //SEG913 [401] 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 + //SEG909 [399] 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 - //SEG914 keyboard_event_scan::@24 - //SEG915 [402] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuaa=vbuxx_bor_vbuc1 + //SEG910 keyboard_event_scan::@24 + //SEG911 [400] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuaa=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_COMMODORE - //SEG916 keyboard_event_scan::@return + //SEG912 keyboard_event_scan::@return breturn: - //SEG917 [403] return + //SEG913 [401] return rts - //SEG918 [404] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG914 [402] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b6: - //SEG919 [404] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG920 [404] 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 - //SEG921 [404] 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 + //SEG915 [402] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG916 [402] 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 + //SEG917 [402] 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 - //SEG922 [404] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] - //SEG923 [404] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG924 [404] 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 - //SEG925 [404] 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 - //SEG926 keyboard_event_scan::@4 + //SEG918 [402] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG919 [402] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG920 [402] 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 + //SEG921 [402] 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 + //SEG922 keyboard_event_scan::@4 b4: - //SEG927 [405] (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 + //SEG923 [403] (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 - //SEG928 [406] (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 + //SEG924 [404] (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 - //SEG929 [407] 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 + //SEG925 [405] 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 - //SEG930 keyboard_event_scan::@15 - //SEG931 [408] 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 + //SEG926 keyboard_event_scan::@15 + //SEG927 [406] 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 - //SEG932 keyboard_event_scan::@16 - //SEG933 [409] (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 + //SEG928 keyboard_event_scan::@16 + //SEG929 [407] (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 - //SEG934 [410] 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 + //SEG930 [408] 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 - //SEG935 keyboard_event_scan::@17 - //SEG936 [411] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG931 keyboard_event_scan::@17 + //SEG932 [409] *((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 - //SEG937 [412] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG933 [410] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG938 [413] 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] - //SEG939 [413] 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 - //SEG940 keyboard_event_scan::@5 + //SEG934 [411] 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] + //SEG935 [411] 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 + //SEG936 keyboard_event_scan::@5 b5: - //SEG941 [414] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG937 [412] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG942 [415] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx + //SEG938 [413] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx inx - //SEG943 [416] 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 + //SEG939 [414] 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 - //SEG944 keyboard_event_scan::@19 - //SEG945 [417] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG940 keyboard_event_scan::@19 + //SEG941 [415] *((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 - //SEG946 keyboard_event_scan::@7 + //SEG942 keyboard_event_scan::@7 b7: - //SEG947 [418] (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 + //SEG943 [416] (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 - //SEG948 [419] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa + //SEG944 [417] *((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 - //SEG949 [420] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG945 [418] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5 } -//SEG950 keyboard_matrix_read +//SEG946 keyboard_matrix_read keyboard_matrix_read: { - //SEG951 [421] *((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 + //SEG947 [419] *((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 - //SEG952 [422] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 + //SEG948 [420] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff - //SEG953 keyboard_matrix_read::@return - //SEG954 [423] return + //SEG949 keyboard_matrix_read::@return + //SEG950 [421] return rts } -//SEG955 render_show +//SEG951 render_show render_show: { .const toD0181_return = (>(PLAYFIELD_SCREEN_1&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f .const toD0182_return = (>(PLAYFIELD_SCREEN_2&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f - //SEG956 [424] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 -- vbuz1_eq_0_then_la1 + //SEG952 [422] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 -- vbuz1_eq_0_then_la1 lda render_screen_show cmp #0 beq toD0181 - //SEG957 [425] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] - //SEG958 render_show::toD0182 - //SEG959 [426] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] - //SEG960 [426] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@2#0] -- vbuaa=vbuc1 + //SEG953 [423] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] + //SEG954 render_show::toD0182 + //SEG955 [424] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] + //SEG956 [424] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@2#0] -- vbuaa=vbuc1 lda #toD0182_return - //SEG961 render_show::@2 + //SEG957 render_show::@2 b2: - //SEG962 [427] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuaa + //SEG958 [425] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuaa sta D018 - //SEG963 [428] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 + //SEG959 [426] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 lda render_screen_show sta render_screen_showing - //SEG964 render_show::@return - //SEG965 [429] return + //SEG960 render_show::@return + //SEG961 [427] return rts - //SEG966 [430] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] - //SEG967 render_show::toD0181 + //SEG962 [428] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] + //SEG963 render_show::toD0181 toD0181: - //SEG968 [426] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] - //SEG969 [426] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@2#0] -- vbuaa=vbuc1 + //SEG964 [424] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] + //SEG965 [424] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@2#0] -- vbuaa=vbuc1 lda #toD0181_return jmp b2 } -//SEG970 play_init +//SEG966 play_init play_init: { .label pli = 5 .label idx = 2 - //SEG971 [432] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] - //SEG972 [432] 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 + //SEG967 [430] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] + //SEG968 [430] 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 - //SEG973 [432] 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 + //SEG969 [430] 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 - //SEG974 [432] 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 + //SEG970 [430] 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 - //SEG975 [432] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] - //SEG976 [432] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy - //SEG977 [432] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy - //SEG978 [432] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy - //SEG979 play_init::@1 + //SEG971 [430] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] + //SEG972 [430] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy + //SEG973 [430] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy + //SEG974 [430] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy + //SEG975 play_init::@1 b1: - //SEG980 [433] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG976 [431] (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 - //SEG981 [434] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG977 [432] *((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 - //SEG982 [435] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG978 [433] *((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 - //SEG983 [436] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG979 [434] (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 @@ -24048,35 +23931,35 @@ play_init: { bcc !+ inc pli+1 !: - //SEG984 [437] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG980 [435] (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 - //SEG985 [438] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx + //SEG981 [436] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx inx - //SEG986 [439] 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 + //SEG982 [437] 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 - //SEG987 play_init::@3 - //SEG988 [440] *((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 + //SEG983 play_init::@3 + //SEG984 [438] *((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 - //SEG989 [441] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0) -- vbuz1=_deref_pbuc1 + //SEG985 [439] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0) -- vbuz1=_deref_pbuc1 lda MOVEDOWN_SLOW_SPEEDS sta current_movedown_slow - //SEG990 [442] phi from play_init::@3 to play_init::@2 [phi:play_init::@3->play_init::@2] - //SEG991 [442] phi (byte) play_init::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init::@3->play_init::@2#0] -- vbuxx=vbuc1 + //SEG986 [440] phi from play_init::@3 to play_init::@2 [phi:play_init::@3->play_init::@2] + //SEG987 [440] phi (byte) play_init::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init::@3->play_init::@2#0] -- vbuxx=vbuc1 ldx #0 - //SEG992 [442] phi from play_init::@2 to play_init::@2 [phi:play_init::@2->play_init::@2] - //SEG993 [442] phi (byte) play_init::b#2 = (byte) play_init::b#1 [phi:play_init::@2->play_init::@2#0] -- register_copy - //SEG994 play_init::@2 + //SEG988 [440] phi from play_init::@2 to play_init::@2 [phi:play_init::@2->play_init::@2] + //SEG989 [440] phi (byte) play_init::b#2 = (byte) play_init::b#1 [phi:play_init::@2->play_init::@2#0] -- register_copy + //SEG990 play_init::@2 b2: - //SEG995 [443] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 + //SEG991 [441] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 txa asl asl - //SEG996 [444] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) -- pduc1_derefidx_vbuaa=pduc2_derefidx_vbuaa + //SEG992 [442] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) -- pduc1_derefidx_vbuaa=pduc2_derefidx_vbuaa tay lda SCORE_BASE_BCD,y sta score_add_bcd,y @@ -24086,191 +23969,191 @@ play_init: { sta score_add_bcd+2,y lda SCORE_BASE_BCD+3,y sta score_add_bcd+3,y - //SEG997 [445] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 -- vbuxx=_inc_vbuxx + //SEG993 [443] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 -- vbuxx=_inc_vbuxx inx - //SEG998 [446] if((byte) play_init::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_init::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG994 [444] if((byte) play_init::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_init::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #5 bne b2 - //SEG999 play_init::@return - //SEG1000 [447] return + //SEG995 play_init::@return + //SEG996 [445] return rts } -//SEG1001 sprites_irq_init +//SEG997 sprites_irq_init sprites_irq_init: { - //SEG1002 asm { sei } + //SEG998 asm { sei } sei - //SEG1003 [449] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG999 [447] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG1004 asm { ldaCIA1_INTERRUPT } + //SEG1000 asm { ldaCIA1_INTERRUPT } lda CIA1_INTERRUPT - //SEG1005 [451] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 + //SEG1001 [449] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_DDR_MEMORY_MASK sta PROCPORT_DDR - //SEG1006 [452] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 + //SEG1002 [450] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - //SEG1007 [453] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 + //SEG1003 [451] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG1008 [454] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + //SEG1004 [452] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 lda VIC_CONTROL and #$7f sta VIC_CONTROL - //SEG1009 [455] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 + //SEG1005 [453] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER_FIRST sta RASTER - //SEG1010 [456] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG1006 [454] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_ENABLE - //SEG1011 [457] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 + //SEG1007 [455] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 lda #sprites_irq sta HARDWARE_IRQ+1 - //SEG1012 asm { cli } + //SEG1008 asm { cli } cli - //SEG1013 sprites_irq_init::@return - //SEG1014 [459] return + //SEG1009 sprites_irq_init::@return + //SEG1010 [457] return rts } -//SEG1015 sprites_init +//SEG1011 sprites_init sprites_init: { .label xpos = 2 - //SEG1016 [460] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + //SEG1012 [458] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 lda #$f sta SPRITES_ENABLE - //SEG1017 [461] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG1013 [459] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SPRITES_MC - //SEG1018 [462] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG1014 [460] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 sta SPRITES_EXPAND_Y - //SEG1019 [463] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG1015 [461] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 sta SPRITES_EXPAND_X - //SEG1020 [464] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] - //SEG1021 [464] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 + //SEG1016 [462] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] + //SEG1017 [462] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 lda #$18+$f*8 sta xpos - //SEG1022 [464] phi (byte) sprites_init::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuxx=vbuc1 + //SEG1018 [462] phi (byte) sprites_init::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuxx=vbuc1 ldx #0 - //SEG1023 [464] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] - //SEG1024 [464] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy - //SEG1025 [464] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy - //SEG1026 sprites_init::@1 + //SEG1019 [462] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] + //SEG1020 [462] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy + //SEG1021 [462] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy + //SEG1022 sprites_init::@1 b1: - //SEG1027 [465] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG1023 [463] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 txa asl - //SEG1028 [466] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG1024 [464] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuaa=vbuz1 tay lda xpos sta SPRITES_XPOS,y - //SEG1029 [467] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG1025 [465] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #BLACK sta SPRITES_COLS,x - //SEG1030 [468] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1026 [466] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 lda #$18 clc adc xpos sta xpos - //SEG1031 [469] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuxx=_inc_vbuxx + //SEG1027 [467] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuxx=_inc_vbuxx inx - //SEG1032 [470] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG1028 [468] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #4 bne b1 - //SEG1033 sprites_init::@return - //SEG1034 [471] return + //SEG1029 sprites_init::@return + //SEG1030 [469] return rts } -//SEG1035 render_init +//SEG1031 render_init render_init: { .const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_CHARSET)>>6 .label li_1 = 5 .label li_2 = 7 - //SEG1036 render_init::vicSelectGfxBank1 - //SEG1037 [473] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG1032 render_init::vicSelectGfxBank1 + //SEG1033 [471] *((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 - //SEG1038 [474] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] - //SEG1039 render_init::vicSelectGfxBank1_toDd001 - //SEG1040 render_init::vicSelectGfxBank1_@1 - //SEG1041 [475] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 + //SEG1034 [472] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] + //SEG1035 render_init::vicSelectGfxBank1_toDd001 + //SEG1036 render_init::vicSelectGfxBank1_@1 + //SEG1037 [473] *((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 - //SEG1042 render_init::@3 - //SEG1043 [476] *((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 + //SEG1038 render_init::@3 + //SEG1039 [474] *((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 - //SEG1044 [477] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG1040 [475] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BORDERCOL - //SEG1045 [478] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG1041 [476] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 sta BGCOL1 - //SEG1046 [479] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 + //SEG1042 [477] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 lda #BLUE sta BGCOL2 - //SEG1047 [480] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 + //SEG1043 [478] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 lda #CYAN sta BGCOL3 - //SEG1048 [481] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 + //SEG1044 [479] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 lda #GREY sta BGCOL4 - //SEG1049 [482] call render_screen_original - //SEG1050 [495] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] - //SEG1051 [495] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 + //SEG1045 [480] call render_screen_original + //SEG1046 [493] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] + //SEG1047 [493] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1 sta render_screen_original.screen+1 jsr render_screen_original - //SEG1052 [483] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] - //SEG1053 render_init::@4 - //SEG1054 [484] call render_screen_original - //SEG1055 [495] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] - //SEG1056 [495] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_init::@4->render_screen_original#0] -- pbuz1=pbuc1 + //SEG1048 [481] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] + //SEG1049 render_init::@4 + //SEG1050 [482] call render_screen_original + //SEG1051 [493] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] + //SEG1052 [493] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_init::@4->render_screen_original#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2 sta render_screen_original.screen+1 jsr render_screen_original - //SEG1057 [485] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] - //SEG1058 [485] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#0] -- pbuz1=pbuc1 + //SEG1053 [483] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] + //SEG1054 [483] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2+2*$28+$10 sta li_2+1 - //SEG1059 [485] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#1] -- pbuz1=pbuc1 + //SEG1055 [483] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#1] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1+2*$28+$10 sta li_1+1 - //SEG1060 [485] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@4->render_init::@1#2] -- vbuxx=vbuc1 + //SEG1056 [483] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@4->render_init::@1#2] -- vbuxx=vbuc1 ldx #0 - //SEG1061 [485] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] - //SEG1062 [485] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - //SEG1063 [485] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy - //SEG1064 [485] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy - //SEG1065 render_init::@1 + //SEG1057 [483] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + //SEG1058 [483] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG1059 [483] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + //SEG1060 [483] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy + //SEG1061 render_init::@1 b1: - //SEG1066 [486] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG1062 [484] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 txa asl - //SEG1067 [487] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG1063 [485] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuaa=pbuz1 tay lda li_1 sta screen_lines_1,y lda li_1+1 sta screen_lines_1+1,y - //SEG1068 [488] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG1064 [486] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 txa asl - //SEG1069 [489] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG1065 [487] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuaa=pbuz1 tay lda li_2 sta screen_lines_2,y lda li_2+1 sta screen_lines_2+1,y - //SEG1070 [490] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG1066 [488] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda li_1 clc adc #$28 @@ -24278,7 +24161,7 @@ render_init: { bcc !+ inc li_1+1 !: - //SEG1071 [491] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG1067 [489] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 lda li_2 clc adc #$28 @@ -24286,16 +24169,16 @@ render_init: { bcc !+ inc li_2+1 !: - //SEG1072 [492] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx + //SEG1068 [490] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx inx - //SEG1073 [493] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG1069 [491] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_LINES-1+1 bne b1 - //SEG1074 render_init::@return - //SEG1075 [494] return + //SEG1070 render_init::@return + //SEG1071 [492] return rts } -//SEG1076 render_screen_original +//SEG1072 render_screen_original render_screen_original: { .const SPACE = 0 .label screen = $11 @@ -24303,313 +24186,313 @@ render_screen_original: { .label oscr = 5 .label ocols = 7 .label y = 2 - //SEG1077 [496] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] - //SEG1078 [496] 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 + //SEG1073 [494] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] + //SEG1074 [494] 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 - //SEG1079 [496] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 + //SEG1075 [494] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 lda #PLAYFIELD_COLORS_ORIGINAL+$20*2 sta ocols+1 - //SEG1080 [496] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 + //SEG1076 [494] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_ORIGINAL+$20*2 sta oscr+1 - //SEG1081 [496] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS#0 [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 + //SEG1077 [494] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS#0 [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 lda #COLS sta cols+1 - //SEG1082 [496] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#4] -- register_copy - //SEG1083 [496] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] - //SEG1084 [496] 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 - //SEG1085 [496] phi (byte*) render_screen_original::ocols#4 = (byte*) render_screen_original::ocols#1 [phi:render_screen_original::@7->render_screen_original::@1#1] -- register_copy - //SEG1086 [496] phi (byte*) render_screen_original::oscr#4 = (byte*) render_screen_original::oscr#1 [phi:render_screen_original::@7->render_screen_original::@1#2] -- register_copy - //SEG1087 [496] phi (byte*) render_screen_original::cols#7 = (byte*) render_screen_original::cols#3 [phi:render_screen_original::@7->render_screen_original::@1#3] -- register_copy - //SEG1088 [496] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#10 [phi:render_screen_original::@7->render_screen_original::@1#4] -- register_copy - //SEG1089 render_screen_original::@1 + //SEG1078 [494] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#4] -- register_copy + //SEG1079 [494] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] + //SEG1080 [494] 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 + //SEG1081 [494] phi (byte*) render_screen_original::ocols#4 = (byte*) render_screen_original::ocols#1 [phi:render_screen_original::@7->render_screen_original::@1#1] -- register_copy + //SEG1082 [494] phi (byte*) render_screen_original::oscr#4 = (byte*) render_screen_original::oscr#1 [phi:render_screen_original::@7->render_screen_original::@1#2] -- register_copy + //SEG1083 [494] phi (byte*) render_screen_original::cols#7 = (byte*) render_screen_original::cols#3 [phi:render_screen_original::@7->render_screen_original::@1#3] -- register_copy + //SEG1084 [494] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#10 [phi:render_screen_original::@7->render_screen_original::@1#4] -- register_copy + //SEG1085 render_screen_original::@1 b1: - //SEG1090 [497] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] - //SEG1091 [497] 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 + //SEG1086 [495] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] + //SEG1087 [495] 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 - //SEG1092 [497] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#7 [phi:render_screen_original::@1->render_screen_original::@2#1] -- register_copy - //SEG1093 [497] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#8 [phi:render_screen_original::@1->render_screen_original::@2#2] -- register_copy - //SEG1094 [497] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] - //SEG1095 [497] 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 - //SEG1096 [497] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2->render_screen_original::@2#1] -- register_copy - //SEG1097 [497] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2->render_screen_original::@2#2] -- register_copy - //SEG1098 render_screen_original::@2 + //SEG1088 [495] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#7 [phi:render_screen_original::@1->render_screen_original::@2#1] -- register_copy + //SEG1089 [495] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#8 [phi:render_screen_original::@1->render_screen_original::@2#2] -- register_copy + //SEG1090 [495] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] + //SEG1091 [495] 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 + //SEG1092 [495] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2->render_screen_original::@2#1] -- register_copy + //SEG1093 [495] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2->render_screen_original::@2#2] -- register_copy + //SEG1094 render_screen_original::@2 b2: - //SEG1099 [498] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG1095 [496] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG1100 [499] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 + //SEG1096 [497] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG1101 [500] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG1097 [498] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG1102 [501] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 + //SEG1098 [499] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1103 [502] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx + //SEG1099 [500] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx inx - //SEG1104 [503] 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 + //SEG1100 [501] 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 - //SEG1105 [504] 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] - //SEG1106 [504] 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 - //SEG1107 [504] phi (byte*) render_screen_original::cols#5 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#1] -- register_copy - //SEG1108 [504] phi (byte*) render_screen_original::ocols#2 = (byte*) render_screen_original::ocols#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#2] -- register_copy - //SEG1109 [504] phi (byte*) render_screen_original::screen#6 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#3] -- register_copy - //SEG1110 [504] phi (byte*) render_screen_original::oscr#2 = (byte*) render_screen_original::oscr#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#4] -- register_copy - //SEG1111 render_screen_original::@3 + //SEG1101 [502] 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] + //SEG1102 [502] 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 + //SEG1103 [502] phi (byte*) render_screen_original::cols#5 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#1] -- register_copy + //SEG1104 [502] phi (byte*) render_screen_original::ocols#2 = (byte*) render_screen_original::ocols#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#2] -- register_copy + //SEG1105 [502] phi (byte*) render_screen_original::screen#6 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#3] -- register_copy + //SEG1106 [502] phi (byte*) render_screen_original::oscr#2 = (byte*) render_screen_original::oscr#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#4] -- register_copy + //SEG1107 render_screen_original::@3 b3: - //SEG1112 [505] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG1108 [503] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (oscr),y sta (screen),y - //SEG1113 [506] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 + //SEG1109 [504] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG1114 [507] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 + //SEG1110 [505] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 inc oscr bne !+ inc oscr+1 !: - //SEG1115 [508] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG1111 [506] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (ocols),y sta (cols),y - //SEG1116 [509] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 + //SEG1112 [507] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1117 [510] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 + //SEG1113 [508] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 inc ocols bne !+ inc ocols+1 !: - //SEG1118 [511] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx + //SEG1114 [509] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx inx - //SEG1119 [512] 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 + //SEG1115 [510] 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 - //SEG1120 [513] 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] - //SEG1121 [513] 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 - //SEG1122 [513] phi (byte*) render_screen_original::cols#6 = (byte*) render_screen_original::cols#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#1] -- register_copy - //SEG1123 [513] phi (byte*) render_screen_original::screen#7 = (byte*) render_screen_original::screen#3 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#2] -- register_copy - //SEG1124 render_screen_original::@4 + //SEG1116 [511] 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] + //SEG1117 [511] 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 + //SEG1118 [511] phi (byte*) render_screen_original::cols#6 = (byte*) render_screen_original::cols#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#1] -- register_copy + //SEG1119 [511] phi (byte*) render_screen_original::screen#7 = (byte*) render_screen_original::screen#3 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#2] -- register_copy + //SEG1120 render_screen_original::@4 b4: - //SEG1125 [514] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG1121 [512] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG1126 [515] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 + //SEG1122 [513] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG1127 [516] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG1123 [514] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG1128 [517] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 + //SEG1124 [515] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1129 [518] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx + //SEG1125 [516] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx inx - //SEG1130 [519] 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 + //SEG1126 [517] 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 - //SEG1131 render_screen_original::@7 - //SEG1132 [520] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 + //SEG1127 render_screen_original::@7 + //SEG1128 [518] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG1133 [521] 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 + //SEG1129 [519] 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 - //SEG1134 render_screen_original::@return - //SEG1135 [522] return + //SEG1130 render_screen_original::@return + //SEG1131 [520] return rts } -//SEG1136 sid_rnd_init +//SEG1132 sid_rnd_init sid_rnd_init: { - //SEG1137 [523] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 + //SEG1133 [521] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 lda #<$ffff sta SID_VOICE3_FREQ lda #>$ffff sta SID_VOICE3_FREQ+1 - //SEG1138 [524] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG1134 [522] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 lda #SID_CONTROL_NOISE sta SID_VOICE3_CONTROL - //SEG1139 sid_rnd_init::@return - //SEG1140 [525] return + //SEG1135 sid_rnd_init::@return + //SEG1136 [523] return rts } -//SEG1141 sprites_irq +//SEG1137 sprites_irq sprites_irq: { .const toSpritePtr2_return = PLAYFIELD_SPRITES>>6 .label raster_sprite_gfx_modify = $2e - //SEG1142 entry interrupt(HARDWARE_CLOBBER) + //SEG1138 entry interrupt(HARDWARE_CLOBBER) sta rega+1 stx regx+1 - //SEG1143 asm { cld } + //SEG1139 asm { cld } cld - //SEG1144 [527] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuaa=vbuz1 + //SEG1140 [525] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuaa=vbuz1 lda irq_sprite_ypos - //SEG1145 [528] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1141 [526] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS - //SEG1146 [529] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1142 [527] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS+2 - //SEG1147 [530] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1143 [528] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS+4 - //SEG1148 [531] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1144 [529] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS+6 - //SEG1149 [532] (byte/signed word/word/dword/signed dword~) sprites_irq::$0 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuz1_plus_1 + //SEG1145 [530] (byte/signed word/word/dword/signed dword~) sprites_irq::$0 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuz1_plus_1 ldx irq_raster_next inx - //SEG1150 [533] (byte) sprites_irq::raster_sprite_gfx_modify#0 ← (byte/signed word/word/dword/signed dword~) sprites_irq::$0 -- vbuz1=vbuxx + //SEG1146 [531] (byte) sprites_irq::raster_sprite_gfx_modify#0 ← (byte/signed word/word/dword/signed dword~) sprites_irq::$0 -- vbuz1=vbuxx stx raster_sprite_gfx_modify - //SEG1151 sprites_irq::@1 + //SEG1147 sprites_irq::@1 b1: - //SEG1152 [534] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 + //SEG1148 [532] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 lda RASTER cmp raster_sprite_gfx_modify bcc b1 - //SEG1153 sprites_irq::@8 - //SEG1154 [535] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuxx=vbuz1 + //SEG1149 sprites_irq::@8 + //SEG1150 [533] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuxx=vbuz1 ldx irq_sprite_ptr - //SEG1155 [536] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 -- vbuz1_eq_0_then_la1 + //SEG1151 [534] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 -- vbuz1_eq_0_then_la1 lda render_screen_showing cmp #0 beq b2 - //SEG1156 sprites_irq::@9 - //SEG1157 [537] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx + //SEG1152 sprites_irq::@9 + //SEG1153 [535] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_2 - //SEG1158 [538] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx + //SEG1154 [536] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx txa clc adc #1 - //SEG1159 [539] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuaa + //SEG1155 [537] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_2+1 - //SEG1160 [540] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuaa + //SEG1156 [538] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_2+2 - //SEG1161 [541] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuaa=_inc_vbuaa + //SEG1157 [539] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuaa=_inc_vbuaa clc adc #1 - //SEG1162 [542] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 -- _deref_pbuc1=vbuaa + //SEG1158 [540] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_2+3 - //SEG1163 sprites_irq::@3 + //SEG1159 sprites_irq::@3 b3: - //SEG1164 [543] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz1 + //SEG1160 [541] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz1 inc irq_cnt - //SEG1165 [544] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 + //SEG1161 [542] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 lda irq_cnt cmp #9 beq b4 - //SEG1166 sprites_irq::@11 - //SEG1167 [545] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 -- vbuz1_eq_vbuc1_then_la1 + //SEG1162 sprites_irq::@11 + //SEG1163 [543] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 -- vbuz1_eq_vbuc1_then_la1 cmp #$a beq b5 - //SEG1168 sprites_irq::@12 - //SEG1169 [546] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1164 sprites_irq::@12 + //SEG1165 [544] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 -- vbuz1=vbuz1_plus_vbuc1 lda #$14 clc adc irq_raster_next sta irq_raster_next - //SEG1170 [547] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1166 [545] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_sprite_ypos sta irq_sprite_ypos - //SEG1171 [548] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1167 [546] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 lda #3 clc adc irq_sprite_ptr sta irq_sprite_ptr - //SEG1172 [549] phi from sprites_irq::@12 sprites_irq::@15 sprites_irq::@5 to sprites_irq::@7 [phi:sprites_irq::@12/sprites_irq::@15/sprites_irq::@5->sprites_irq::@7] - //SEG1173 [549] phi (byte) irq_raster_next#4 = (byte) irq_raster_next#3 [phi:sprites_irq::@12/sprites_irq::@15/sprites_irq::@5->sprites_irq::@7#0] -- register_copy - //SEG1174 sprites_irq::@7 + //SEG1168 [547] phi from sprites_irq::@12 sprites_irq::@15 sprites_irq::@5 to sprites_irq::@7 [phi:sprites_irq::@12/sprites_irq::@15/sprites_irq::@5->sprites_irq::@7] + //SEG1169 [547] phi (byte) irq_raster_next#4 = (byte) irq_raster_next#3 [phi:sprites_irq::@12/sprites_irq::@15/sprites_irq::@5->sprites_irq::@7#0] -- register_copy + //SEG1170 sprites_irq::@7 b7: - //SEG1175 [550] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 -- _deref_pbuc1=vbuz1 + //SEG1171 [548] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 -- _deref_pbuc1=vbuz1 lda irq_raster_next sta RASTER - //SEG1176 [551] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG1172 [549] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG1177 sprites_irq::@return - //SEG1178 [552] return - exit interrupt(HARDWARE_CLOBBER) + //SEG1173 sprites_irq::@return + //SEG1174 [550] return - exit interrupt(HARDWARE_CLOBBER) rega: lda #00 regx: ldx #00 rti - //SEG1179 sprites_irq::@5 + //SEG1175 sprites_irq::@5 b5: - //SEG1180 [553] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 + //SEG1176 [551] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 lda #0 sta irq_cnt - //SEG1181 [554] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 + //SEG1177 [552] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next - //SEG1182 [555] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1178 [553] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_sprite_ypos sta irq_sprite_ypos - //SEG1183 [556] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1179 [554] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 lda #3 clc adc irq_sprite_ptr sta irq_sprite_ptr jmp b7 - //SEG1184 sprites_irq::@4 + //SEG1180 sprites_irq::@4 b4: - //SEG1185 [557] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1181 [555] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_raster_next sta irq_raster_next - //SEG1186 [558] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 -- vbuz1=vbuc1 + //SEG1182 [556] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 -- vbuz1=vbuc1 lda #SPRITES_FIRST_YPOS sta irq_sprite_ypos - //SEG1187 [559] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] - //SEG1188 sprites_irq::toSpritePtr2 - //SEG1189 sprites_irq::@15 - //SEG1190 [560] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 + //SEG1183 [557] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] + //SEG1184 sprites_irq::toSpritePtr2 + //SEG1185 sprites_irq::@15 + //SEG1186 [558] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 lda #toSpritePtr2_return sta irq_sprite_ptr jmp b7 - //SEG1191 sprites_irq::@2 + //SEG1187 sprites_irq::@2 b2: - //SEG1192 [561] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx + //SEG1188 [559] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_1 - //SEG1193 [562] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx + //SEG1189 [560] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx txa clc adc #1 - //SEG1194 [563] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuaa + //SEG1190 [561] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_1+1 - //SEG1195 [564] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuaa + //SEG1191 [562] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_1+2 - //SEG1196 [565] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuaa=_inc_vbuaa + //SEG1192 [563] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuaa=_inc_vbuaa clc adc #1 - //SEG1197 [566] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 -- _deref_pbuc1=vbuaa + //SEG1193 [564] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_1+3 jmp b3 } diff --git a/src/test/ref/complex/tetris/tetris.sym b/src/test/ref/complex/tetris/tetris.sym index e0c75c814..dec58eafa 100644 --- a/src/test/ref/complex/tetris/tetris.sym +++ b/src/test/ref/complex/tetris/tetris.sym @@ -317,35 +317,35 @@ (byte*~) current_piece#94 current_piece#94 zp ZP_WORD:5 4.0 (byte*~) current_piece#95 current_piece zp ZP_WORD:26 4.0 (byte) current_piece_char -(byte~) current_piece_char#104 reg byte x 4.0 -(byte~) current_piece_char#105 reg byte x 22.0 +(byte~) current_piece_char#102 reg byte x 4.0 +(byte~) current_piece_char#103 reg byte x 22.0 (byte) current_piece_char#14 current_piece_char zp ZP_BYTE:28 3.628571428571428 (byte) current_piece_char#16 current_piece_char zp ZP_BYTE:28 0.32 (byte) current_piece_char#19 current_piece_char zp ZP_BYTE:28 187.38888888888889 (byte) current_piece_char#27 current_piece_char zp ZP_BYTE:28 6.0 -(byte) current_piece_char#76 reg byte x 46.09090909090909 +(byte) current_piece_char#64 reg byte x 50.699999999999996 (byte*) current_piece_gfx -(byte*) current_piece_gfx#105 current_piece_gfx zp ZP_WORD:30 187.38888888888889 -(byte*~) current_piece_gfx#116 current_piece_gfx#116 zp ZP_WORD:5 2.0 -(byte*~) current_piece_gfx#117 current_piece_gfx#117 zp ZP_WORD:5 11.0 +(byte*) current_piece_gfx#103 current_piece_gfx zp ZP_WORD:30 187.38888888888889 +(byte*~) current_piece_gfx#114 current_piece_gfx#114 zp ZP_WORD:5 2.0 +(byte*~) current_piece_gfx#115 current_piece_gfx#115 zp ZP_WORD:5 11.0 (byte*) current_piece_gfx#16 current_piece_gfx zp ZP_WORD:30 7.055555555555554 (byte*) current_piece_gfx#18 current_piece_gfx zp ZP_WORD:30 0.3571428571428571 (byte*) current_piece_gfx#19 current_piece_gfx zp ZP_WORD:30 1.3333333333333333 (byte*) current_piece_gfx#21 current_piece_gfx zp ZP_WORD:30 0.3333333333333333 (byte*) current_piece_gfx#33 current_piece_gfx zp ZP_WORD:30 6.0 (byte*) current_piece_gfx#6 current_piece_gfx zp ZP_WORD:30 4.0 -(byte*) current_piece_gfx#63 current_piece_gfx#63 zp ZP_WORD:5 46.09090909090909 +(byte*) current_piece_gfx#62 current_piece_gfx#62 zp ZP_WORD:5 50.699999999999996 (byte) current_xpos -(byte) current_xpos#115 current_xpos zp ZP_BYTE:32 20.75925925925926 -(byte~) current_xpos#126 current_xpos#126 zp ZP_BYTE:10 1.3333333333333333 -(byte~) current_xpos#127 current_xpos#127 zp ZP_BYTE:10 7.333333333333333 +(byte) current_xpos#113 current_xpos zp ZP_BYTE:32 20.75925925925926 +(byte~) current_xpos#124 current_xpos#124 zp ZP_BYTE:10 1.3333333333333333 +(byte~) current_xpos#125 current_xpos#125 zp ZP_BYTE:10 7.333333333333333 (byte) current_xpos#17 current_xpos zp ZP_BYTE:32 7.055555555555554 (byte) current_xpos#20 current_xpos zp ZP_BYTE:32 0.7692307692307692 (byte) current_xpos#24 current_xpos zp ZP_BYTE:32 0.4666666666666666 (byte) current_xpos#28 current_xpos zp ZP_BYTE:32 0.43478260869565216 (byte) current_xpos#41 current_xpos zp ZP_BYTE:32 6.0 (byte) current_xpos#5 current_xpos zp ZP_BYTE:32 4.0 -(byte) current_xpos#57 current_xpos#57 zp ZP_BYTE:10 5.181818181818182 +(byte) current_xpos#57 current_xpos#57 zp ZP_BYTE:10 5.7 (byte) current_xpos#7 current_xpos zp ZP_BYTE:32 4.0 (byte) current_ypos (byte~) current_ypos#100 reg byte y 1.0 @@ -887,41 +887,39 @@ (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_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 6 (void()) render_moving() -(byte~) render_moving::$5 reg byte a 202.0 +(byte~) render_moving::$2 reg byte a 202.0 (label) render_moving::@1 -(label) render_moving::@10 -(label) render_moving::@13 (label) render_moving::@2 (label) render_moving::@3 (label) render_moving::@4 (label) render_moving::@5 -(label) render_moving::@7 -(label) render_moving::@9 +(label) render_moving::@6 +(label) render_moving::@8 (label) render_moving::@return (byte) render_moving::c (byte) render_moving::c#1 c zp ZP_BYTE:15 1501.5 -(byte) render_moving::c#2 c zp ZP_BYTE:15 286.0 +(byte) render_moving::c#2 c zp ZP_BYTE:15 333.6666666666667 (byte) render_moving::current_cell (byte) render_moving::current_cell#0 reg byte a 1001.0 (byte) render_moving::i (byte) render_moving::i#1 i zp ZP_BYTE:13 202.0 -(byte) render_moving::i#10 i zp ZP_BYTE:13 429.0 -(byte) render_moving::i#3 i zp ZP_BYTE:13 50.5 +(byte) render_moving::i#2 i zp ZP_BYTE:13 500.5 +(byte) render_moving::i#3 i zp ZP_BYTE:13 60.599999999999994 (byte) render_moving::i#4 i zp ZP_BYTE:13 1552.0 (byte) render_moving::i#8 i zp ZP_BYTE:13 300.75 (byte) render_moving::l (byte) render_moving::l#1 l zp ZP_BYTE:12 151.5 -(byte) render_moving::l#4 l zp ZP_BYTE:12 11.222222222222221 +(byte) render_moving::l#4 l zp ZP_BYTE:12 12.625 (byte*) render_moving::screen_line -(byte*) render_moving::screen_line#0 screen_line zp ZP_WORD:7 100.18181818181819 +(byte*) render_moving::screen_line#0 screen_line zp ZP_WORD:7 110.19999999999999 (byte) render_moving::xpos (byte) render_moving::xpos#0 xpos zp ZP_BYTE:14 202.0 (byte) render_moving::xpos#1 xpos zp ZP_BYTE:14 667.3333333333334 -(byte) render_moving::xpos#2 xpos zp ZP_BYTE:14 684.1666666666667 +(byte) render_moving::xpos#2 xpos zp ZP_BYTE:14 620.8 (byte) render_moving::ypos2 (byte) render_moving::ypos2#0 ypos2 zp ZP_BYTE:11 4.0 (byte) render_moving::ypos2#1 ypos2 zp ZP_BYTE:11 67.33333333333333 -(byte) render_moving::ypos2#2 ypos2 zp ZP_BYTE:11 29.823529411764707 +(byte) render_moving::ypos2#2 ypos2 zp ZP_BYTE:11 27.06666666666667 (void()) render_playfield() (byte~) render_playfield::$2 reg byte a 202.0 (byte~) render_playfield::$3 reg byte a 202.0 @@ -1010,9 +1008,9 @@ (byte) render_screen_render#11 render_screen_render zp ZP_BYTE:3 3.25 (byte) render_screen_render#17 render_screen_render zp ZP_BYTE:3 0.7551020408163266 (byte) render_screen_render#21 reg byte x 8.615384615384615 -(byte) render_screen_render#30 render_screen_render#30 zp ZP_BYTE:9 5.090909090909091 -(byte~) render_screen_render#66 render_screen_render#66 zp ZP_BYTE:9 5.5 -(byte~) render_screen_render#67 reg byte x 22.0 +(byte) render_screen_render#30 render_screen_render#30 zp ZP_BYTE:9 5.6 +(byte~) render_screen_render#64 render_screen_render#64 zp ZP_BYTE:9 5.5 +(byte~) render_screen_render#65 reg byte x 22.0 (byte) render_screen_show (byte) render_screen_show#13 render_screen_show zp ZP_BYTE:2 4.333333333333333 (byte) render_screen_show#16 render_screen_show zp ZP_BYTE:2 0.48571428571428577 @@ -1128,20 +1126,20 @@ interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 render_screen_original::y#6 render_screen_original::y#1 ] zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_spawn_current::$3 play_update_score::lines_before#0 ] -zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 current_piece_gfx#63 current_piece_gfx#116 current_piece_gfx#117 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li_1#2 render_init::li_1#1 render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 play_lock_current::playfield_line#0 ] +zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li_1#2 render_init::li_1#1 render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 play_lock_current::playfield_line#0 ] zp ZP_WORD:7 [ render_bcd::offset#6 render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 render_bcd::screen_pos#1 render_init::li_2#2 render_init::li_2#1 render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 render_moving::screen_line#0 play_collision::playfield_line#0 ] reg byte y [ render_bcd::only_low#6 ] reg byte x [ render_bcd::bcd#6 render_bcd::bcd#0 render_bcd::bcd#1 render_bcd::bcd#2 render_bcd::bcd#3 render_bcd::bcd#4 render_bcd::bcd#5 ] reg byte y [ current_ypos#11 current_ypos#100 current_ypos#101 ] -zp ZP_BYTE:9 [ render_screen_render#30 render_screen_render#66 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -zp ZP_BYTE:10 [ current_xpos#57 current_xpos#126 current_xpos#127 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 keyboard_event_pressed::row_bits#0 ] -reg byte x [ current_piece_char#76 current_piece_char#104 current_piece_char#105 ] +zp ZP_BYTE:9 [ render_screen_render#30 render_screen_render#64 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +zp ZP_BYTE:10 [ current_xpos#57 current_xpos#124 current_xpos#125 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 keyboard_event_pressed::row_bits#0 ] +reg byte x [ current_piece_char#64 current_piece_char#102 current_piece_char#103 ] zp ZP_BYTE:11 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::i#1 keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:12 [ render_moving::l#4 render_moving::l#1 play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 play_remove_lines::c#0 ] -zp ZP_BYTE:13 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#10 render_moving::i#1 play_collision::l#6 play_collision::l#1 ] +zp ZP_BYTE:13 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 play_collision::l#6 play_collision::l#1 ] zp ZP_BYTE:14 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] zp ZP_BYTE:15 [ render_moving::c#2 render_moving::c#1 play_collision::col#2 play_collision::col#9 play_collision::col#1 ] -reg byte x [ render_screen_render#21 render_screen_render#67 ] +reg byte x [ render_screen_render#21 render_screen_render#65 ] reg byte a [ play_move_rotate::return#2 ] reg byte x [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] reg byte x [ play_collision::c#2 play_collision::c#1 ] @@ -1157,8 +1155,8 @@ zp ZP_BYTE:25 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 zp ZP_WORD:26 [ current_piece#27 current_piece#95 current_piece#20 current_piece#14 current_piece#88 render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 ] zp ZP_BYTE:28 [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] zp ZP_BYTE:29 [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] -zp ZP_WORD:30 [ current_piece_gfx#33 current_piece_gfx#105 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] -zp ZP_BYTE:32 [ current_xpos#41 current_xpos#115 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] +zp ZP_WORD:30 [ current_piece_gfx#33 current_piece_gfx#103 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] +zp ZP_BYTE:32 [ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] reg byte x [ play_move_down::return#3 ] zp ZP_BYTE:33 [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] reg byte x [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] @@ -1190,7 +1188,7 @@ reg byte a [ render_bcd::$3 ] reg byte a [ render_bcd::$4 ] reg byte a [ render_bcd::$5 ] reg byte a [ render_bcd::$6 ] -reg byte a [ render_moving::$5 ] +reg byte a [ render_moving::$2 ] reg byte a [ render_moving::current_cell#0 ] reg byte a [ render_playfield::$2 ] reg byte a [ render_playfield::$3 ]