|
|
|
@ -469,8 +469,6 @@ sid_rnd_init::@return: scope:[sid_rnd_init] from sid_rnd_init
|
|
|
|
|
}}
|
|
|
|
|
kickasm(location (const byte*) PLAYFIELD_COLORS_ORIGINAL) {{ .import binary "playfield-screen.col"
|
|
|
|
|
}}
|
|
|
|
|
(byte[]) PIECES_COLORS_1 ← { (const byte) BLUE, (const byte) GREEN, (const byte) PURPLE, (const byte) BLUE, (const byte) RED, (const byte) LIGHT_GREEN, (const byte) RED, (const byte) BLUE, (const byte) LIGHT_BLUE, (const byte) RED, (const byte) BLUE, (const byte) GREEN, (const byte) PURPLE, (const byte) BLUE, (const byte) RED, (const byte) LIGHT_GREEN, (const byte) RED, (const byte) BLUE, (const byte) LIGHT_BLUE, (const byte) RED, (const byte) BLUE, (const byte) GREEN, (const byte) PURPLE, (const byte) BLUE, (const byte) RED, (const byte) LIGHT_GREEN, (const byte) RED, (const byte) BLUE, (const byte) LIGHT_BLUE, (const byte) RED }
|
|
|
|
|
(byte[]) PIECES_COLORS_2 ← { (const byte) CYAN, (const byte) LIGHT_GREEN, (const byte) PINK, (const byte) LIGHT_GREEN, (const byte) LIGHT_GREEN, (const byte) LIGHT_BLUE, (const byte) DARK_GREY, (const byte) PURPLE, (const byte) RED, (const byte) ORANGE, (const byte) CYAN, (const byte) LIGHT_GREEN, (const byte) PINK, (const byte) LIGHT_GREEN, (const byte) LIGHT_GREEN, (const byte) LIGHT_BLUE, (const byte) DARK_GREY, (const byte) PURPLE, (const byte) RED, (const byte) ORANGE, (const byte) CYAN, (const byte) LIGHT_GREEN, (const byte) PINK, (const byte) LIGHT_GREEN, (const byte) LIGHT_GREEN, (const byte) LIGHT_BLUE, (const byte) DARK_GREY, (const byte) PURPLE, (const byte) RED, (const byte) ORANGE }
|
|
|
|
|
(byte*[PLAYFIELD_LINES]) screen_lines_1 ← { fill( PLAYFIELD_LINES, 0) }
|
|
|
|
|
(byte*[PLAYFIELD_LINES]) screen_lines_2 ← { fill( PLAYFIELD_LINES, 0) }
|
|
|
|
|
to:@22
|
|
|
|
@ -505,8 +503,8 @@ render_init::@3: scope:[render_init] from render_init::vicSelectGfxBank1_@1
|
|
|
|
|
*((const byte*) D011) ← (const byte) VIC_ECM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(number) 3
|
|
|
|
|
*((const byte*) BORDERCOL) ← (const byte) BLACK
|
|
|
|
|
*((const byte*) BGCOL1) ← (const byte) BLACK
|
|
|
|
|
*((const byte*) BGCOL2) ← *((byte[]) PIECES_COLORS_1 + (number) 0)
|
|
|
|
|
*((const byte*) BGCOL3) ← *((byte[]) PIECES_COLORS_2 + (number) 0)
|
|
|
|
|
*((const byte*) BGCOL2) ← *((const byte[]) PIECES_COLORS_1 + (number) 0)
|
|
|
|
|
*((const byte*) BGCOL3) ← *((const byte[]) PIECES_COLORS_2 + (number) 0)
|
|
|
|
|
*((const byte*) BGCOL4) ← (const byte) GREY
|
|
|
|
|
(byte*) render_screen_original::screen#0 ← (const byte*) PLAYFIELD_SCREEN_1
|
|
|
|
|
call render_screen_original
|
|
|
|
@ -629,8 +627,8 @@ render_show::@2: scope:[render_show] from render_show::@5 render_show::@6
|
|
|
|
|
(byte) level#12 ← phi( render_show::@5/(byte) level#26 render_show::@6/(byte) level#27 )
|
|
|
|
|
(byte) render_show::d018val#3 ← phi( render_show::@5/(byte) render_show::d018val#1 render_show::@6/(byte) render_show::d018val#2 )
|
|
|
|
|
*((const byte*) D018) ← (byte) render_show::d018val#3
|
|
|
|
|
*((const byte*) BGCOL2) ← *((byte[]) PIECES_COLORS_1 + (byte) level#12)
|
|
|
|
|
*((const byte*) BGCOL3) ← *((byte[]) PIECES_COLORS_2 + (byte) level#12)
|
|
|
|
|
*((const byte*) BGCOL2) ← *((const byte[]) PIECES_COLORS_1 + (byte) level#12)
|
|
|
|
|
*((const byte*) BGCOL3) ← *((const byte[]) PIECES_COLORS_2 + (byte) level#12)
|
|
|
|
|
(byte) render_screen_showing#1 ← (byte) render_screen_show#11
|
|
|
|
|
to:render_show::@return
|
|
|
|
|
render_show::@return: scope:[render_show] from render_show::@2
|
|
|
|
@ -3670,8 +3668,8 @@ SYMBOL TABLE SSA
|
|
|
|
|
(const byte) ORANGE = (number) 8
|
|
|
|
|
(word[]) PIECES
|
|
|
|
|
(const byte[]) PIECES_CHARS = { (byte)(number) $65, (byte)(number) $66, (byte)(number) $a6, (byte)(number) $66, (byte)(number) $65, (byte)(number) $65, (byte)(number) $a6 }
|
|
|
|
|
(byte[]) PIECES_COLORS_1
|
|
|
|
|
(byte[]) PIECES_COLORS_2
|
|
|
|
|
(const byte[]) PIECES_COLORS_1 = { (const byte) BLUE, (const byte) GREEN, (const byte) PURPLE, (const byte) BLUE, (const byte) RED, (const byte) LIGHT_GREEN, (const byte) RED, (const byte) BLUE, (const byte) LIGHT_BLUE, (const byte) RED, (const byte) BLUE, (const byte) GREEN, (const byte) PURPLE, (const byte) BLUE, (const byte) RED, (const byte) LIGHT_GREEN, (const byte) RED, (const byte) BLUE, (const byte) LIGHT_BLUE, (const byte) RED, (const byte) BLUE, (const byte) GREEN, (const byte) PURPLE, (const byte) BLUE, (const byte) RED, (const byte) LIGHT_GREEN, (const byte) RED, (const byte) BLUE, (const byte) LIGHT_BLUE, (const byte) RED }
|
|
|
|
|
(const byte[]) PIECES_COLORS_2 = { (const byte) CYAN, (const byte) LIGHT_GREEN, (const byte) PINK, (const byte) LIGHT_GREEN, (const byte) LIGHT_GREEN, (const byte) LIGHT_BLUE, (const byte) DARK_GREY, (const byte) PURPLE, (const byte) RED, (const byte) ORANGE, (const byte) CYAN, (const byte) LIGHT_GREEN, (const byte) PINK, (const byte) LIGHT_GREEN, (const byte) LIGHT_GREEN, (const byte) LIGHT_BLUE, (const byte) DARK_GREY, (const byte) PURPLE, (const byte) RED, (const byte) ORANGE, (const byte) CYAN, (const byte) LIGHT_GREEN, (const byte) PINK, (const byte) LIGHT_GREEN, (const byte) LIGHT_GREEN, (const byte) LIGHT_BLUE, (const byte) DARK_GREY, (const byte) PURPLE, (const byte) RED, (const byte) ORANGE }
|
|
|
|
|
(const byte[]) PIECES_NEXT_CHARS = { (byte)(number) $63, (byte)(number) $64, (byte)(number) $a4, (byte)(number) $64, (byte)(number) $63, (byte)(number) $63, (byte)(number) $a4 }
|
|
|
|
|
(const byte[]) PIECES_START_X = { (byte)(number) 4, (byte)(number) 4, (byte)(number) 4, (byte)(number) 4, (byte)(number) 4, (byte)(number) 4, (byte)(number) 4 }
|
|
|
|
|
(const byte[]) PIECES_START_Y = { (byte)(number) 1, (byte)(number) 1, (byte)(number) 1, (byte)(number) 1, (byte)(number) 1, (byte)(number) 0, (byte)(number) 1 }
|
|
|
|
@ -6734,8 +6732,8 @@ Adding number conversion cast (unumber) 3 in (number~) render_init::vicSelectGfx
|
|
|
|
|
Adding number conversion cast (unumber) render_init::vicSelectGfxBank1_toDd001_$3 in (number~) render_init::vicSelectGfxBank1_toDd001_$3 ← (unumber)(number) 3 ^ (unumber~) render_init::vicSelectGfxBank1_toDd001_$2
|
|
|
|
|
Adding number conversion cast (unumber) VIC_ECM|VIC_DEN|VIC_RSEL|3 in *((const byte*) D011) ← (const byte) VIC_ECM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(number) 3
|
|
|
|
|
Adding number conversion cast (unumber) 3 in *((const byte*) D011) ← ((unumber)) (const byte) VIC_ECM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(number) 3
|
|
|
|
|
Adding number conversion cast (unumber) 0 in *((const byte*) BGCOL2) ← *((byte[]) PIECES_COLORS_1 + (number) 0)
|
|
|
|
|
Adding number conversion cast (unumber) 0 in *((const byte*) BGCOL3) ← *((byte[]) PIECES_COLORS_2 + (number) 0)
|
|
|
|
|
Adding number conversion cast (unumber) 0 in *((const byte*) BGCOL2) ← *((const byte[]) PIECES_COLORS_1 + (number) 0)
|
|
|
|
|
Adding number conversion cast (unumber) 0 in *((const byte*) BGCOL3) ← *((const byte[]) PIECES_COLORS_2 + (number) 0)
|
|
|
|
|
Adding number conversion cast (unumber) $10 in (byte*) render_init::li_1#0 ← (const byte*) PLAYFIELD_SCREEN_1+(number) 2*(number) $28+(number) $10
|
|
|
|
|
Adding number conversion cast (unumber) 2*$28 in (byte*) render_init::li_1#0 ← (const byte*) PLAYFIELD_SCREEN_1+(number) 2*(number) $28+(unumber)(number) $10
|
|
|
|
|
Adding number conversion cast (unumber) $10 in (byte*) render_init::li_2#0 ← (const byte*) PLAYFIELD_SCREEN_2+(number) 2*(number) $28+(number) $10
|
|
|
|
@ -7997,31 +7995,31 @@ Inversing boolean not [70] (bool~) keyboard_event_scan::$2 ← (byte~) keyboard_
|
|
|
|
|
Inversing boolean not [79] (bool~) keyboard_event_scan::$5 ← (byte~) keyboard_event_scan::$3 == (byte) 0 from [78] (bool~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 != (byte) 0
|
|
|
|
|
Inversing boolean not [91] (bool~) keyboard_event_scan::$8 ← (byte~) keyboard_event_scan::$6 == (byte) 0 from [90] (bool~) keyboard_event_scan::$7 ← (byte~) keyboard_event_scan::$6 != (byte) 0
|
|
|
|
|
Inversing boolean not [103] (bool~) keyboard_event_scan::$11 ← (byte~) keyboard_event_scan::$9 == (byte) 0 from [102] (bool~) keyboard_event_scan::$10 ← (byte~) keyboard_event_scan::$9 != (byte) 0
|
|
|
|
|
Inversing boolean not [318] (bool~) render_bcd::$2 ← (byte) render_bcd::only_low#6 != (byte) 0 from [317] (bool~) render_bcd::$1 ← (byte) render_bcd::only_low#6 == (byte) 0
|
|
|
|
|
Inversing boolean not [413] (bool~) render_moving::$3 ← (byte) render_moving::current_cell#0 == (byte) 0 from [412] (bool~) render_moving::$2 ← (byte) render_moving::current_cell#0 != (byte) 0
|
|
|
|
|
Inversing boolean not [643] (bool~) play_movement::$2 ← (byte) game_over#1 == (byte) 0 from [642] (bool~) play_movement::$1 ← (byte) game_over#1 != (byte) 0
|
|
|
|
|
Inversing boolean not [685] (bool~) play_move_down::$1 ← (byte) play_move_down::key_event#1 != (const byte) KEY_SPACE from [684] (bool~) play_move_down::$0 ← (byte) play_move_down::key_event#1 == (const byte) KEY_SPACE
|
|
|
|
|
Inversing boolean not [694] (bool~) play_move_down::$4 ← (byte~) play_move_down::$2 == (byte) 0 from [693] (bool~) play_move_down::$3 ← (byte~) play_move_down::$2 != (byte) 0
|
|
|
|
|
Inversing boolean not [700] (bool~) play_move_down::$6 ← (byte) current_movedown_counter#12 < (byte) current_movedown_slow#19 from [699] (bool~) play_move_down::$5 ← (byte) current_movedown_counter#12 >= (byte) current_movedown_slow#19
|
|
|
|
|
Inversing boolean not [704] (bool~) play_move_down::$10 ← (byte) current_movedown_counter#13 < (const byte) current_movedown_fast from [703] (bool~) play_move_down::$9 ← (byte) current_movedown_counter#13 >= (const byte) current_movedown_fast
|
|
|
|
|
Inversing boolean not [710] (bool~) play_move_down::$8 ← (byte) play_move_down::movedown#6 == (byte) 0 from [709] (bool~) play_move_down::$7 ← (byte) play_move_down::movedown#6 != (byte) 0
|
|
|
|
|
Inversing boolean not [788] (bool~) play_move_leftright::$10 ← (byte~) play_move_leftright::$8 != (const byte) COLLISION_NONE from [787] (bool~) play_move_leftright::$9 ← (byte~) play_move_leftright::$8 == (const byte) COLLISION_NONE
|
|
|
|
|
Inversing boolean not [792] (bool~) play_move_leftright::$2 ← (byte) play_move_leftright::key_event#2 != (const byte) KEY_DOT from [791] (bool~) play_move_leftright::$1 ← (byte) play_move_leftright::key_event#2 == (const byte) KEY_DOT
|
|
|
|
|
Inversing boolean not [804] (bool~) play_move_leftright::$6 ← (byte~) play_move_leftright::$4 != (const byte) COLLISION_NONE from [803] (bool~) play_move_leftright::$5 ← (byte~) play_move_leftright::$4 == (const byte) COLLISION_NONE
|
|
|
|
|
Inversing boolean not [849] (bool~) play_move_rotate::$4 ← (byte~) play_move_rotate::$2 != (const byte) COLLISION_NONE from [848] (bool~) play_move_rotate::$3 ← (byte~) play_move_rotate::$2 == (const byte) COLLISION_NONE
|
|
|
|
|
Inversing boolean not [871] (bool~) play_collision::$2 ← *((byte*) play_collision::piece_gfx#1 + (byte) play_collision::i#2) == (byte) 0 from [870] (bool~) play_collision::$1 ← *((byte*) play_collision::piece_gfx#1 + (byte) play_collision::i#2) != (byte) 0
|
|
|
|
|
Inversing boolean not [881] (bool~) play_collision::$4 ← (byte) play_collision::yp#3 < (const byte) PLAYFIELD_LINES from [880] (bool~) play_collision::$3 ← (byte) play_collision::yp#3 >= (const byte) PLAYFIELD_LINES
|
|
|
|
|
Inversing boolean not [886] (bool~) play_collision::$7 ← (byte~) play_collision::$5 == (byte) 0 from [885] (bool~) play_collision::$6 ← (byte~) play_collision::$5 != (byte) 0
|
|
|
|
|
Inversing boolean not [894] (bool~) play_collision::$9 ← (byte) play_collision::xp#4 < (const byte) PLAYFIELD_COLS from [893] (bool~) play_collision::$8 ← (byte) play_collision::xp#4 >= (const byte) PLAYFIELD_COLS
|
|
|
|
|
Inversing boolean not [899] (bool~) play_collision::$11 ← *((byte*) play_collision::playfield_line#1 + (byte) play_collision::xp#5) == (byte) 0 from [898] (bool~) play_collision::$10 ← *((byte*) play_collision::playfield_line#1 + (byte) play_collision::xp#5) != (byte) 0
|
|
|
|
|
Inversing boolean not [920] (bool~) play_lock_current::$1 ← *((byte*) current_piece_gfx#22 + (byte) play_lock_current::i#2) == (byte) 0 from [919] (bool~) play_lock_current::$0 ← *((byte*) current_piece_gfx#22 + (byte) play_lock_current::i#2) != (byte) 0
|
|
|
|
|
Inversing boolean not [954] (bool~) play_spawn_current::$3 ← (byte~) play_spawn_current::$1 != (const byte) COLLISION_PLAYFIELD from [953] (bool~) play_spawn_current::$2 ← (byte~) play_spawn_current::$1 == (const byte) COLLISION_PLAYFIELD
|
|
|
|
|
Inversing boolean not [994] (bool~) play_remove_lines::$1 ← (byte) play_remove_lines::c#0 != (byte) 0 from [993] (bool~) play_remove_lines::$0 ← (byte) play_remove_lines::c#0 == (byte) 0
|
|
|
|
|
Inversing boolean not [1006] (bool~) play_remove_lines::$4 ← (byte) play_remove_lines::full#2 != (byte) 1 from [1005] (bool~) play_remove_lines::$3 ← (byte) play_remove_lines::full#2 == (byte) 1
|
|
|
|
|
Inversing boolean not [1029] (bool~) play_update_score::$1 ← (byte) play_update_score::removed#1 == (byte) 0 from [1028] (bool~) play_update_score::$0 ← (byte) play_update_score::removed#1 != (byte) 0
|
|
|
|
|
Inversing boolean not [1045] (bool~) play_update_score::$7 ← (byte) play_update_score::lines_before#0 == (byte) play_update_score::lines_after#0 from [1044] (bool~) play_update_score::$6 ← (byte) play_update_score::lines_before#0 != (byte) play_update_score::lines_after#0
|
|
|
|
|
Inversing boolean not [1072] (bool~) play_increase_level::$3 ← (byte~) play_increase_level::$1 != (byte) $a from [1071] (bool~) play_increase_level::$2 ← (byte~) play_increase_level::$1 == (byte) $a
|
|
|
|
|
Inversing boolean not [1182] (bool~) main::$18 ← (byte) main::render#2 == (byte) 0 from [1181] (bool~) main::$17 ← (byte) main::render#2 != (byte) 0
|
|
|
|
|
Inversing boolean not [316] (bool~) render_bcd::$2 ← (byte) render_bcd::only_low#6 != (byte) 0 from [315] (bool~) render_bcd::$1 ← (byte) render_bcd::only_low#6 == (byte) 0
|
|
|
|
|
Inversing boolean not [411] (bool~) render_moving::$3 ← (byte) render_moving::current_cell#0 == (byte) 0 from [410] (bool~) render_moving::$2 ← (byte) render_moving::current_cell#0 != (byte) 0
|
|
|
|
|
Inversing boolean not [641] (bool~) play_movement::$2 ← (byte) game_over#1 == (byte) 0 from [640] (bool~) play_movement::$1 ← (byte) game_over#1 != (byte) 0
|
|
|
|
|
Inversing boolean not [683] (bool~) play_move_down::$1 ← (byte) play_move_down::key_event#1 != (const byte) KEY_SPACE from [682] (bool~) play_move_down::$0 ← (byte) play_move_down::key_event#1 == (const byte) KEY_SPACE
|
|
|
|
|
Inversing boolean not [692] (bool~) play_move_down::$4 ← (byte~) play_move_down::$2 == (byte) 0 from [691] (bool~) play_move_down::$3 ← (byte~) play_move_down::$2 != (byte) 0
|
|
|
|
|
Inversing boolean not [698] (bool~) play_move_down::$6 ← (byte) current_movedown_counter#12 < (byte) current_movedown_slow#19 from [697] (bool~) play_move_down::$5 ← (byte) current_movedown_counter#12 >= (byte) current_movedown_slow#19
|
|
|
|
|
Inversing boolean not [702] (bool~) play_move_down::$10 ← (byte) current_movedown_counter#13 < (const byte) current_movedown_fast from [701] (bool~) play_move_down::$9 ← (byte) current_movedown_counter#13 >= (const byte) current_movedown_fast
|
|
|
|
|
Inversing boolean not [708] (bool~) play_move_down::$8 ← (byte) play_move_down::movedown#6 == (byte) 0 from [707] (bool~) play_move_down::$7 ← (byte) play_move_down::movedown#6 != (byte) 0
|
|
|
|
|
Inversing boolean not [786] (bool~) play_move_leftright::$10 ← (byte~) play_move_leftright::$8 != (const byte) COLLISION_NONE from [785] (bool~) play_move_leftright::$9 ← (byte~) play_move_leftright::$8 == (const byte) COLLISION_NONE
|
|
|
|
|
Inversing boolean not [790] (bool~) play_move_leftright::$2 ← (byte) play_move_leftright::key_event#2 != (const byte) KEY_DOT from [789] (bool~) play_move_leftright::$1 ← (byte) play_move_leftright::key_event#2 == (const byte) KEY_DOT
|
|
|
|
|
Inversing boolean not [802] (bool~) play_move_leftright::$6 ← (byte~) play_move_leftright::$4 != (const byte) COLLISION_NONE from [801] (bool~) play_move_leftright::$5 ← (byte~) play_move_leftright::$4 == (const byte) COLLISION_NONE
|
|
|
|
|
Inversing boolean not [847] (bool~) play_move_rotate::$4 ← (byte~) play_move_rotate::$2 != (const byte) COLLISION_NONE from [846] (bool~) play_move_rotate::$3 ← (byte~) play_move_rotate::$2 == (const byte) COLLISION_NONE
|
|
|
|
|
Inversing boolean not [869] (bool~) play_collision::$2 ← *((byte*) play_collision::piece_gfx#1 + (byte) play_collision::i#2) == (byte) 0 from [868] (bool~) play_collision::$1 ← *((byte*) play_collision::piece_gfx#1 + (byte) play_collision::i#2) != (byte) 0
|
|
|
|
|
Inversing boolean not [879] (bool~) play_collision::$4 ← (byte) play_collision::yp#3 < (const byte) PLAYFIELD_LINES from [878] (bool~) play_collision::$3 ← (byte) play_collision::yp#3 >= (const byte) PLAYFIELD_LINES
|
|
|
|
|
Inversing boolean not [884] (bool~) play_collision::$7 ← (byte~) play_collision::$5 == (byte) 0 from [883] (bool~) play_collision::$6 ← (byte~) play_collision::$5 != (byte) 0
|
|
|
|
|
Inversing boolean not [892] (bool~) play_collision::$9 ← (byte) play_collision::xp#4 < (const byte) PLAYFIELD_COLS from [891] (bool~) play_collision::$8 ← (byte) play_collision::xp#4 >= (const byte) PLAYFIELD_COLS
|
|
|
|
|
Inversing boolean not [897] (bool~) play_collision::$11 ← *((byte*) play_collision::playfield_line#1 + (byte) play_collision::xp#5) == (byte) 0 from [896] (bool~) play_collision::$10 ← *((byte*) play_collision::playfield_line#1 + (byte) play_collision::xp#5) != (byte) 0
|
|
|
|
|
Inversing boolean not [918] (bool~) play_lock_current::$1 ← *((byte*) current_piece_gfx#22 + (byte) play_lock_current::i#2) == (byte) 0 from [917] (bool~) play_lock_current::$0 ← *((byte*) current_piece_gfx#22 + (byte) play_lock_current::i#2) != (byte) 0
|
|
|
|
|
Inversing boolean not [952] (bool~) play_spawn_current::$3 ← (byte~) play_spawn_current::$1 != (const byte) COLLISION_PLAYFIELD from [951] (bool~) play_spawn_current::$2 ← (byte~) play_spawn_current::$1 == (const byte) COLLISION_PLAYFIELD
|
|
|
|
|
Inversing boolean not [992] (bool~) play_remove_lines::$1 ← (byte) play_remove_lines::c#0 != (byte) 0 from [991] (bool~) play_remove_lines::$0 ← (byte) play_remove_lines::c#0 == (byte) 0
|
|
|
|
|
Inversing boolean not [1004] (bool~) play_remove_lines::$4 ← (byte) play_remove_lines::full#2 != (byte) 1 from [1003] (bool~) play_remove_lines::$3 ← (byte) play_remove_lines::full#2 == (byte) 1
|
|
|
|
|
Inversing boolean not [1027] (bool~) play_update_score::$1 ← (byte) play_update_score::removed#1 == (byte) 0 from [1026] (bool~) play_update_score::$0 ← (byte) play_update_score::removed#1 != (byte) 0
|
|
|
|
|
Inversing boolean not [1043] (bool~) play_update_score::$7 ← (byte) play_update_score::lines_before#0 == (byte) play_update_score::lines_after#0 from [1042] (bool~) play_update_score::$6 ← (byte) play_update_score::lines_before#0 != (byte) play_update_score::lines_after#0
|
|
|
|
|
Inversing boolean not [1070] (bool~) play_increase_level::$3 ← (byte~) play_increase_level::$1 != (byte) $a from [1069] (bool~) play_increase_level::$2 ← (byte~) play_increase_level::$1 == (byte) $a
|
|
|
|
|
Inversing boolean not [1180] (bool~) main::$18 ← (byte) main::render#2 == (byte) 0 from [1179] (bool~) main::$17 ← (byte) main::render#2 != (byte) 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_sprite_ptr#0 = (byte~) $1 (byte) irq_sprite_ptr#17 (byte) irq_sprite_ptr#14
|
|
|
|
@ -8991,7 +8989,7 @@ Identical Phi Values (byte) current_xpos#16 (byte) current_xpos#59
|
|
|
|
|
Identical Phi Values (byte*) current_piece_gfx#29 (byte*) current_piece_gfx#64
|
|
|
|
|
Identical Phi Values (byte) current_piece_char#37 (byte) current_piece_char#68
|
|
|
|
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
|
|
|
|
Identified duplicate assignment right side [191] (byte~) render_init::$5 ← (byte) render_init::i#2 * (const byte) SIZEOF_POINTER
|
|
|
|
|
Identified duplicate assignment right side [189] (byte~) render_init::$5 ← (byte) render_init::i#2 * (const byte) SIZEOF_POINTER
|
|
|
|
|
Successful SSA optimization Pass2DuplicateRValueIdentification
|
|
|
|
|
Simple Condition (bool~) keyboard_event_scan::$13 [23] if((byte) keyboard_event_scan::row_scan#0!=*((byte[8]) keyboard_scan_values + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@9
|
|
|
|
|
Simple Condition (bool~) keyboard_event_scan::$25 [32] if((byte) keyboard_event_scan::row#1!=rangelast(0,7)) goto keyboard_event_scan::@8
|
|
|
|
@ -9004,98 +9002,95 @@ Simple Condition (bool~) keyboard_event_scan::$5 [80] if((byte~) keyboard_event_
|
|
|
|
|
Simple Condition (bool~) keyboard_event_scan::$8 [92] if((byte~) keyboard_event_scan::$6==(byte) 0) goto keyboard_event_scan::@3
|
|
|
|
|
Simple Condition (bool~) keyboard_event_scan::$11 [104] if((byte~) keyboard_event_scan::$9==(byte) 0) goto keyboard_event_scan::@return
|
|
|
|
|
Simple Condition (bool~) keyboard_event_get::$0 [126] if((byte) keyboard_events_size#13==(byte) 0) goto keyboard_event_get::@1
|
|
|
|
|
Simple Condition (bool~) render_init::$3 [197] if((byte) render_init::i#1!=rangelast(0,PLAYFIELD_LINES-1)) goto render_init::@1
|
|
|
|
|
Simple Condition (bool~) render_show::$0 [207] if((byte) render_screen_show#16==(byte) 0) goto render_show::@1
|
|
|
|
|
Simple Condition (bool~) render_score::$0 [264] if((byte) render_screen_render#18==(byte) 0) goto render_score::@1
|
|
|
|
|
Simple Condition (bool~) render_bcd::$2 [319] if((byte) render_bcd::only_low#6!=(byte) 0) goto render_bcd::@1
|
|
|
|
|
Simple Condition (bool~) render_screen_original::$0 [345] if((byte) render_screen_original::x#1!=(byte) 4) goto render_screen_original::@2
|
|
|
|
|
Simple Condition (bool~) render_screen_original::$1 [355] if((byte) render_screen_original::x#2!=(byte) $24) goto render_screen_original::@4
|
|
|
|
|
Simple Condition (bool~) render_screen_original::$2 [363] if((byte) render_screen_original::x#3!=(byte) $28) goto render_screen_original::@6
|
|
|
|
|
Simple Condition (bool~) render_screen_original::$3 [367] if((byte) render_screen_original::y#1!=rangelast(0,$18)) goto render_screen_original::@1
|
|
|
|
|
Simple Condition (bool~) render_playfield::$1 [383] if((byte) render_playfield::c#1!=rangelast(0,PLAYFIELD_COLS-1)) goto render_playfield::@2
|
|
|
|
|
Simple Condition (bool~) render_playfield::$2 [387] if((byte) render_playfield::l#1!=rangelast(2,PLAYFIELD_LINES-1)) goto render_playfield::@1
|
|
|
|
|
Simple Condition (bool~) render_moving::$0 [395] if((byte) render_moving::ypos#2>(byte) 1) goto render_moving::@2
|
|
|
|
|
Simple Condition (bool~) render_moving::$5 [408] if((byte) render_moving::l#1!=rangelast(0,3)) goto render_moving::@1
|
|
|
|
|
Simple Condition (bool~) render_moving::$3 [414] if((byte) render_moving::current_cell#0==(byte) 0) goto render_moving::@5
|
|
|
|
|
Simple Condition (bool~) render_moving::$4 [419] if((byte) render_moving::c#1!=rangelast(0,3)) goto render_moving::@4
|
|
|
|
|
Simple Condition (bool~) render_next::$0 [426] if((byte) render_screen_render#15==(byte) 0) goto render_next::@1
|
|
|
|
|
Simple Condition (bool~) render_next::$3 [444] if((byte) render_next::cell#0!=(byte) 0) goto render_next::@7
|
|
|
|
|
Simple Condition (bool~) render_next::$4 [453] if((byte) render_next::c#1!=rangelast(0,3)) goto render_next::@6
|
|
|
|
|
Simple Condition (bool~) render_next::$5 [458] if((byte) render_next::l#1!=rangelast(0,3)) goto render_next::@5
|
|
|
|
|
Simple Condition (bool~) sprites_init::$2 [477] if((byte) sprites_init::s#1!=rangelast(0,3)) goto sprites_init::@1
|
|
|
|
|
Simple Condition (bool~) sprites_irq::$4 [519] if(*((const byte*) RASTER)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@11
|
|
|
|
|
Simple Condition (bool~) sprites_irq::$1 [523] if((byte) render_screen_showing#0==(byte) 0) goto sprites_irq::@1
|
|
|
|
|
Simple Condition (bool~) sprites_irq::$2 [541] if((byte) irq_cnt#1==(byte) 9) goto sprites_irq::@3
|
|
|
|
|
Simple Condition (bool~) sprites_irq::$3 [558] if((byte) irq_cnt#1==(byte) $a) goto sprites_irq::@4
|
|
|
|
|
Simple Condition (bool~) play_init::$0 [606] if((byte) play_init::j#1!=rangelast(0,PLAYFIELD_LINES-1)) goto play_init::@1
|
|
|
|
|
Simple Condition (bool~) play_init::$1 [616] if((byte) play_init::b#1!=rangelast(0,4)) goto play_init::@3
|
|
|
|
|
Simple Condition (bool~) play_movement::$2 [644] if((byte) game_over#15==(byte) 0) goto play_movement::@1
|
|
|
|
|
Simple Condition (bool~) play_move_down::$1 [686] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE) goto play_move_down::@1
|
|
|
|
|
Simple Condition (bool~) play_move_down::$4 [695] if((byte~) play_move_down::$2==(byte) 0) goto play_move_down::@2
|
|
|
|
|
Simple Condition (bool~) play_move_down::$6 [701] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@3
|
|
|
|
|
Simple Condition (bool~) play_move_down::$10 [705] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast) goto play_move_down::@2
|
|
|
|
|
Simple Condition (bool~) play_move_down::$8 [711] if((byte) play_move_down::movedown#6==(byte) 0) goto play_move_down::@4
|
|
|
|
|
Simple Condition (bool~) play_move_down::$13 [726] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE) goto play_move_down::@14
|
|
|
|
|
Simple Condition (bool~) play_move_leftright::$0 [777] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA) goto play_move_leftright::@1
|
|
|
|
|
Simple Condition (bool~) play_move_leftright::$10 [789] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE) goto play_move_leftright::@3
|
|
|
|
|
Simple Condition (bool~) play_move_leftright::$2 [793] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT) goto play_move_leftright::@3
|
|
|
|
|
Simple Condition (bool~) play_move_leftright::$6 [805] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE) goto play_move_leftright::@3
|
|
|
|
|
Simple Condition (bool~) play_move_rotate::$0 [821] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z) goto play_move_rotate::@1
|
|
|
|
|
Simple Condition (bool~) play_move_rotate::$1 [828] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X) goto play_move_rotate::@2
|
|
|
|
|
Simple Condition (bool~) play_move_rotate::$4 [850] if((byte~) play_move_rotate::$2!=(const byte) COLLISION_NONE) goto play_move_rotate::@5
|
|
|
|
|
Simple Condition (bool~) play_collision::$2 [873] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte) 0) goto play_collision::@3
|
|
|
|
|
Simple Condition (bool~) play_collision::$12 [878] if((byte) play_collision::c#1!=rangelast(0,3)) goto play_collision::@2
|
|
|
|
|
Simple Condition (bool~) play_collision::$4 [882] if((byte) play_collision::yp#2<(const byte) PLAYFIELD_LINES) goto play_collision::@4
|
|
|
|
|
Simple Condition (bool~) play_collision::$7 [887] if((byte~) play_collision::$5==(byte) 0) goto play_collision::@5
|
|
|
|
|
Simple Condition (bool~) play_collision::$9 [895] if((byte) play_collision::xp#2<(const byte) PLAYFIELD_COLS) goto play_collision::@6
|
|
|
|
|
Simple Condition (bool~) play_collision::$11 [900] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::xp#2)==(byte) 0) goto play_collision::@3
|
|
|
|
|
Simple Condition (bool~) play_collision::$13 [907] if((byte) play_collision::l#1!=rangelast(0,3)) goto play_collision::@1
|
|
|
|
|
Simple Condition (bool~) play_lock_current::$1 [922] if(*((byte*) current_piece_gfx#13 + (byte) play_lock_current::i#2)==(byte) 0) goto play_lock_current::@3
|
|
|
|
|
Simple Condition (bool~) play_lock_current::$2 [927] if((byte) play_lock_current::c#1!=rangelast(0,3)) goto play_lock_current::@2
|
|
|
|
|
Simple Condition (bool~) play_lock_current::$3 [934] if((byte) play_lock_current::l#1!=rangelast(0,3)) goto play_lock_current::@1
|
|
|
|
|
Simple Condition (bool~) play_spawn_current::$3 [955] if((byte~) play_spawn_current::$1!=(const byte) COLLISION_PLAYFIELD) goto play_spawn_current::@1
|
|
|
|
|
Simple Condition (bool~) play_spawn_current::$4 [962] if((byte) play_spawn_current::piece_idx#2==(byte) 7) goto play_spawn_current::sid_rnd1
|
|
|
|
|
Simple Condition (bool~) play_remove_lines::$1 [995] if((byte) play_remove_lines::c#0!=(byte) 0) goto play_remove_lines::@3
|
|
|
|
|
Simple Condition (bool~) play_remove_lines::$2 [1001] if((byte) play_remove_lines::x#1!=rangelast(0,PLAYFIELD_COLS-1)) goto play_remove_lines::@2
|
|
|
|
|
Simple Condition (bool~) play_remove_lines::$4 [1007] if((byte) play_remove_lines::full#2!=(byte) 1) goto play_remove_lines::@7
|
|
|
|
|
Simple Condition (bool~) play_remove_lines::$6 [1011] if((byte) play_remove_lines::y#1!=rangelast(0,PLAYFIELD_LINES-1)) goto play_remove_lines::@1
|
|
|
|
|
Simple Condition (bool~) play_remove_lines::$7 [1018] if((byte) play_remove_lines::w#6!=(byte) $ff) goto play_remove_lines::@10
|
|
|
|
|
Simple Condition (bool~) play_update_score::$1 [1030] if((byte) play_update_score::removed#0==(byte) 0) goto play_update_score::@return
|
|
|
|
|
Simple Condition (bool~) play_update_score::$7 [1046] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return
|
|
|
|
|
Simple Condition (bool~) play_increase_level::$0 [1063] if((byte) level#21>(byte) $1d) goto play_increase_level::@1
|
|
|
|
|
Simple Condition (bool~) play_increase_level::$3 [1073] if((byte~) play_increase_level::$1!=(byte) $a) goto play_increase_level::@3
|
|
|
|
|
Simple Condition (bool~) play_increase_level::$4 [1084] if((byte) play_increase_level::b#1!=rangelast(0,4)) goto play_increase_level::@7
|
|
|
|
|
Simple Condition (bool~) main::$10 [1137] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@4
|
|
|
|
|
Simple Condition (bool~) main::$14 [1154] if((byte) game_over#10==(byte) 0) goto main::@11
|
|
|
|
|
Simple Condition (bool~) main::$18 [1183] if((byte) main::render#2==(byte) 0) goto main::@1
|
|
|
|
|
Simple Condition (bool~) render_init::$3 [195] if((byte) render_init::i#1!=rangelast(0,PLAYFIELD_LINES-1)) goto render_init::@1
|
|
|
|
|
Simple Condition (bool~) render_show::$0 [205] if((byte) render_screen_show#16==(byte) 0) goto render_show::@1
|
|
|
|
|
Simple Condition (bool~) render_score::$0 [262] if((byte) render_screen_render#18==(byte) 0) goto render_score::@1
|
|
|
|
|
Simple Condition (bool~) render_bcd::$2 [317] if((byte) render_bcd::only_low#6!=(byte) 0) goto render_bcd::@1
|
|
|
|
|
Simple Condition (bool~) render_screen_original::$0 [343] if((byte) render_screen_original::x#1!=(byte) 4) goto render_screen_original::@2
|
|
|
|
|
Simple Condition (bool~) render_screen_original::$1 [353] if((byte) render_screen_original::x#2!=(byte) $24) goto render_screen_original::@4
|
|
|
|
|
Simple Condition (bool~) render_screen_original::$2 [361] if((byte) render_screen_original::x#3!=(byte) $28) goto render_screen_original::@6
|
|
|
|
|
Simple Condition (bool~) render_screen_original::$3 [365] if((byte) render_screen_original::y#1!=rangelast(0,$18)) goto render_screen_original::@1
|
|
|
|
|
Simple Condition (bool~) render_playfield::$1 [381] if((byte) render_playfield::c#1!=rangelast(0,PLAYFIELD_COLS-1)) goto render_playfield::@2
|
|
|
|
|
Simple Condition (bool~) render_playfield::$2 [385] if((byte) render_playfield::l#1!=rangelast(2,PLAYFIELD_LINES-1)) goto render_playfield::@1
|
|
|
|
|
Simple Condition (bool~) render_moving::$0 [393] if((byte) render_moving::ypos#2>(byte) 1) goto render_moving::@2
|
|
|
|
|
Simple Condition (bool~) render_moving::$5 [406] if((byte) render_moving::l#1!=rangelast(0,3)) goto render_moving::@1
|
|
|
|
|
Simple Condition (bool~) render_moving::$3 [412] if((byte) render_moving::current_cell#0==(byte) 0) goto render_moving::@5
|
|
|
|
|
Simple Condition (bool~) render_moving::$4 [417] if((byte) render_moving::c#1!=rangelast(0,3)) goto render_moving::@4
|
|
|
|
|
Simple Condition (bool~) render_next::$0 [424] if((byte) render_screen_render#15==(byte) 0) goto render_next::@1
|
|
|
|
|
Simple Condition (bool~) render_next::$3 [442] if((byte) render_next::cell#0!=(byte) 0) goto render_next::@7
|
|
|
|
|
Simple Condition (bool~) render_next::$4 [451] if((byte) render_next::c#1!=rangelast(0,3)) goto render_next::@6
|
|
|
|
|
Simple Condition (bool~) render_next::$5 [456] if((byte) render_next::l#1!=rangelast(0,3)) goto render_next::@5
|
|
|
|
|
Simple Condition (bool~) sprites_init::$2 [475] if((byte) sprites_init::s#1!=rangelast(0,3)) goto sprites_init::@1
|
|
|
|
|
Simple Condition (bool~) sprites_irq::$4 [517] if(*((const byte*) RASTER)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@11
|
|
|
|
|
Simple Condition (bool~) sprites_irq::$1 [521] if((byte) render_screen_showing#0==(byte) 0) goto sprites_irq::@1
|
|
|
|
|
Simple Condition (bool~) sprites_irq::$2 [539] if((byte) irq_cnt#1==(byte) 9) goto sprites_irq::@3
|
|
|
|
|
Simple Condition (bool~) sprites_irq::$3 [556] if((byte) irq_cnt#1==(byte) $a) goto sprites_irq::@4
|
|
|
|
|
Simple Condition (bool~) play_init::$0 [604] if((byte) play_init::j#1!=rangelast(0,PLAYFIELD_LINES-1)) goto play_init::@1
|
|
|
|
|
Simple Condition (bool~) play_init::$1 [614] if((byte) play_init::b#1!=rangelast(0,4)) goto play_init::@3
|
|
|
|
|
Simple Condition (bool~) play_movement::$2 [642] if((byte) game_over#15==(byte) 0) goto play_movement::@1
|
|
|
|
|
Simple Condition (bool~) play_move_down::$1 [684] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE) goto play_move_down::@1
|
|
|
|
|
Simple Condition (bool~) play_move_down::$4 [693] if((byte~) play_move_down::$2==(byte) 0) goto play_move_down::@2
|
|
|
|
|
Simple Condition (bool~) play_move_down::$6 [699] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@3
|
|
|
|
|
Simple Condition (bool~) play_move_down::$10 [703] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast) goto play_move_down::@2
|
|
|
|
|
Simple Condition (bool~) play_move_down::$8 [709] if((byte) play_move_down::movedown#6==(byte) 0) goto play_move_down::@4
|
|
|
|
|
Simple Condition (bool~) play_move_down::$13 [724] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE) goto play_move_down::@14
|
|
|
|
|
Simple Condition (bool~) play_move_leftright::$0 [775] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA) goto play_move_leftright::@1
|
|
|
|
|
Simple Condition (bool~) play_move_leftright::$10 [787] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE) goto play_move_leftright::@3
|
|
|
|
|
Simple Condition (bool~) play_move_leftright::$2 [791] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT) goto play_move_leftright::@3
|
|
|
|
|
Simple Condition (bool~) play_move_leftright::$6 [803] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE) goto play_move_leftright::@3
|
|
|
|
|
Simple Condition (bool~) play_move_rotate::$0 [819] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z) goto play_move_rotate::@1
|
|
|
|
|
Simple Condition (bool~) play_move_rotate::$1 [826] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X) goto play_move_rotate::@2
|
|
|
|
|
Simple Condition (bool~) play_move_rotate::$4 [848] if((byte~) play_move_rotate::$2!=(const byte) COLLISION_NONE) goto play_move_rotate::@5
|
|
|
|
|
Simple Condition (bool~) play_collision::$2 [871] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte) 0) goto play_collision::@3
|
|
|
|
|
Simple Condition (bool~) play_collision::$12 [876] if((byte) play_collision::c#1!=rangelast(0,3)) goto play_collision::@2
|
|
|
|
|
Simple Condition (bool~) play_collision::$4 [880] if((byte) play_collision::yp#2<(const byte) PLAYFIELD_LINES) goto play_collision::@4
|
|
|
|
|
Simple Condition (bool~) play_collision::$7 [885] if((byte~) play_collision::$5==(byte) 0) goto play_collision::@5
|
|
|
|
|
Simple Condition (bool~) play_collision::$9 [893] if((byte) play_collision::xp#2<(const byte) PLAYFIELD_COLS) goto play_collision::@6
|
|
|
|
|
Simple Condition (bool~) play_collision::$11 [898] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::xp#2)==(byte) 0) goto play_collision::@3
|
|
|
|
|
Simple Condition (bool~) play_collision::$13 [905] if((byte) play_collision::l#1!=rangelast(0,3)) goto play_collision::@1
|
|
|
|
|
Simple Condition (bool~) play_lock_current::$1 [920] if(*((byte*) current_piece_gfx#13 + (byte) play_lock_current::i#2)==(byte) 0) goto play_lock_current::@3
|
|
|
|
|
Simple Condition (bool~) play_lock_current::$2 [925] if((byte) play_lock_current::c#1!=rangelast(0,3)) goto play_lock_current::@2
|
|
|
|
|
Simple Condition (bool~) play_lock_current::$3 [932] if((byte) play_lock_current::l#1!=rangelast(0,3)) goto play_lock_current::@1
|
|
|
|
|
Simple Condition (bool~) play_spawn_current::$3 [953] if((byte~) play_spawn_current::$1!=(const byte) COLLISION_PLAYFIELD) goto play_spawn_current::@1
|
|
|
|
|
Simple Condition (bool~) play_spawn_current::$4 [960] if((byte) play_spawn_current::piece_idx#2==(byte) 7) goto play_spawn_current::sid_rnd1
|
|
|
|
|
Simple Condition (bool~) play_remove_lines::$1 [993] if((byte) play_remove_lines::c#0!=(byte) 0) goto play_remove_lines::@3
|
|
|
|
|
Simple Condition (bool~) play_remove_lines::$2 [999] if((byte) play_remove_lines::x#1!=rangelast(0,PLAYFIELD_COLS-1)) goto play_remove_lines::@2
|
|
|
|
|
Simple Condition (bool~) play_remove_lines::$4 [1005] if((byte) play_remove_lines::full#2!=(byte) 1) goto play_remove_lines::@7
|
|
|
|
|
Simple Condition (bool~) play_remove_lines::$6 [1009] if((byte) play_remove_lines::y#1!=rangelast(0,PLAYFIELD_LINES-1)) goto play_remove_lines::@1
|
|
|
|
|
Simple Condition (bool~) play_remove_lines::$7 [1016] if((byte) play_remove_lines::w#6!=(byte) $ff) goto play_remove_lines::@10
|
|
|
|
|
Simple Condition (bool~) play_update_score::$1 [1028] if((byte) play_update_score::removed#0==(byte) 0) goto play_update_score::@return
|
|
|
|
|
Simple Condition (bool~) play_update_score::$7 [1044] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return
|
|
|
|
|
Simple Condition (bool~) play_increase_level::$0 [1061] if((byte) level#21>(byte) $1d) goto play_increase_level::@1
|
|
|
|
|
Simple Condition (bool~) play_increase_level::$3 [1071] if((byte~) play_increase_level::$1!=(byte) $a) goto play_increase_level::@3
|
|
|
|
|
Simple Condition (bool~) play_increase_level::$4 [1082] if((byte) play_increase_level::b#1!=rangelast(0,4)) goto play_increase_level::@7
|
|
|
|
|
Simple Condition (bool~) main::$10 [1135] if(*((const byte*) RASTER)!=(byte) $ff) goto main::@4
|
|
|
|
|
Simple Condition (bool~) main::$14 [1152] if((byte) game_over#10==(byte) 0) goto main::@11
|
|
|
|
|
Simple Condition (bool~) main::$18 [1181] if((byte) main::render#2==(byte) 0) goto main::@1
|
|
|
|
|
Successful SSA optimization Pass2ConditionalJumpSimplification
|
|
|
|
|
Constant right-side identified [8] (byte[8]) keyboard_events ← { fill( 8, 0) }
|
|
|
|
|
Constant right-side identified [11] (byte[8]) keyboard_scan_values ← { fill( 8, 0) }
|
|
|
|
|
Constant right-side identified [140] (byte[PLAYFIELD_LINES*PLAYFIELD_COLS]) playfield ← { fill( PLAYFIELD_LINES*PLAYFIELD_COLS, 0) }
|
|
|
|
|
Constant right-side identified [158] (byte*[PLAYFIELD_LINES]) screen_lines_1 ← { fill( PLAYFIELD_LINES, 0) }
|
|
|
|
|
Constant right-side identified [159] (byte*[PLAYFIELD_LINES]) screen_lines_2 ← { fill( PLAYFIELD_LINES, 0) }
|
|
|
|
|
Constant right-side identified [270] (dword*~) render_score::$1 ← & (dword) score_bcd#40
|
|
|
|
|
Constant right-side identified [279] (word) render_bcd::offset#1 ← (const word) render_score::score_offset + (byte) 2
|
|
|
|
|
Constant right-side identified [286] (word) render_bcd::offset#2 ← (const word) render_score::score_offset + (byte) 4
|
|
|
|
|
Constant right-side identified [300] (word) render_bcd::offset#4 ← (const word) render_score::lines_offset + (byte) 1
|
|
|
|
|
Constant right-side identified [428] (byte*) render_next::screen_next_area#1 ← (const byte*) PLAYFIELD_SCREEN_1 + (const word) render_next::next_area_offset
|
|
|
|
|
Constant right-side identified [431] (byte*) render_next::screen_next_area#2 ← (const byte*) PLAYFIELD_SCREEN_2 + (const word) render_next::next_area_offset
|
|
|
|
|
Constant right-side identified [466] (byte) sprites_init::xpos#0 ← (unumber)(number) $18+(number) $f*(number) 8
|
|
|
|
|
Constant right-side identified [504] (void()*~) sprites_irq_init::$0 ← & interrupt(HARDWARE_CLOBBER)(void()) sprites_irq()
|
|
|
|
|
Constant right-side identified [578] (word~) $2 ← (word)(const byte[4*4*4]) PIECE_T
|
|
|
|
|
Constant right-side identified [579] (word~) $3 ← (word)(const byte[4*4*4]) PIECE_S
|
|
|
|
|
Constant right-side identified [580] (word~) $4 ← (word)(const byte[4*4*4]) PIECE_Z
|
|
|
|
|
Constant right-side identified [581] (word~) $5 ← (word)(const byte[4*4*4]) PIECE_J
|
|
|
|
|
Constant right-side identified [582] (word~) $6 ← (word)(const byte[4*4*4]) PIECE_O
|
|
|
|
|
Constant right-side identified [583] (word~) $7 ← (word)(const byte[4*4*4]) PIECE_I
|
|
|
|
|
Constant right-side identified [584] (word~) $8 ← (word)(const byte[4*4*4]) PIECE_L
|
|
|
|
|
Constant right-side identified [586] (byte*[PLAYFIELD_LINES]) playfield_lines ← { fill( PLAYFIELD_LINES, 0) }
|
|
|
|
|
Constant right-side identified [587] (byte[PLAYFIELD_LINES+1]) playfield_lines_idx ← { fill( PLAYFIELD_LINES+1, 0) }
|
|
|
|
|
Constant right-side identified [593] (dword[5]) score_add_bcd ← { fill( 5, 0) }
|
|
|
|
|
Constant right-side identified [156] (byte*[PLAYFIELD_LINES]) screen_lines_1 ← { fill( PLAYFIELD_LINES, 0) }
|
|
|
|
|
Constant right-side identified [157] (byte*[PLAYFIELD_LINES]) screen_lines_2 ← { fill( PLAYFIELD_LINES, 0) }
|
|
|
|
|
Constant right-side identified [268] (dword*~) render_score::$1 ← & (dword) score_bcd#40
|
|
|
|
|
Constant right-side identified [277] (word) render_bcd::offset#1 ← (const word) render_score::score_offset + (byte) 2
|
|
|
|
|
Constant right-side identified [284] (word) render_bcd::offset#2 ← (const word) render_score::score_offset + (byte) 4
|
|
|
|
|
Constant right-side identified [298] (word) render_bcd::offset#4 ← (const word) render_score::lines_offset + (byte) 1
|
|
|
|
|
Constant right-side identified [426] (byte*) render_next::screen_next_area#1 ← (const byte*) PLAYFIELD_SCREEN_1 + (const word) render_next::next_area_offset
|
|
|
|
|
Constant right-side identified [429] (byte*) render_next::screen_next_area#2 ← (const byte*) PLAYFIELD_SCREEN_2 + (const word) render_next::next_area_offset
|
|
|
|
|
Constant right-side identified [464] (byte) sprites_init::xpos#0 ← (unumber)(number) $18+(number) $f*(number) 8
|
|
|
|
|
Constant right-side identified [502] (void()*~) sprites_irq_init::$0 ← & interrupt(HARDWARE_CLOBBER)(void()) sprites_irq()
|
|
|
|
|
Constant right-side identified [576] (word~) $2 ← (word)(const byte[4*4*4]) PIECE_T
|
|
|
|
|
Constant right-side identified [577] (word~) $3 ← (word)(const byte[4*4*4]) PIECE_S
|
|
|
|
|
Constant right-side identified [578] (word~) $4 ← (word)(const byte[4*4*4]) PIECE_Z
|
|
|
|
|
Constant right-side identified [579] (word~) $5 ← (word)(const byte[4*4*4]) PIECE_J
|
|
|
|
|
Constant right-side identified [580] (word~) $6 ← (word)(const byte[4*4*4]) PIECE_O
|
|
|
|
|
Constant right-side identified [581] (word~) $7 ← (word)(const byte[4*4*4]) PIECE_I
|
|
|
|
|
Constant right-side identified [582] (word~) $8 ← (word)(const byte[4*4*4]) PIECE_L
|
|
|
|
|
Constant right-side identified [584] (byte*[PLAYFIELD_LINES]) playfield_lines ← { fill( PLAYFIELD_LINES, 0) }
|
|
|
|
|
Constant right-side identified [585] (byte[PLAYFIELD_LINES+1]) playfield_lines_idx ← { fill( PLAYFIELD_LINES+1, 0) }
|
|
|
|
|
Constant right-side identified [591] (dword[5]) score_add_bcd ← { fill( 5, 0) }
|
|
|
|
|
Successful SSA optimization Pass2ConstantRValueConsolidation
|
|
|
|
|
Identified constant from value list (byte[]) { (const byte) BLUE, (const byte) GREEN, (const byte) PURPLE, (const byte) BLUE, (const byte) RED, (const byte) LIGHT_GREEN, (const byte) RED, (const byte) BLUE, (const byte) LIGHT_BLUE, (const byte) RED, (const byte) BLUE, (const byte) GREEN, (const byte) PURPLE, (const byte) BLUE, (const byte) RED, (const byte) LIGHT_GREEN, (const byte) RED, (const byte) BLUE, (const byte) LIGHT_BLUE, (const byte) RED, (const byte) BLUE, (const byte) GREEN, (const byte) PURPLE, (const byte) BLUE, (const byte) RED, (const byte) LIGHT_GREEN, (const byte) RED, (const byte) BLUE, (const byte) LIGHT_BLUE, (const byte) RED }
|
|
|
|
|
Identified constant from value list (byte[]) { (const byte) CYAN, (const byte) LIGHT_GREEN, (const byte) PINK, (const byte) LIGHT_GREEN, (const byte) LIGHT_GREEN, (const byte) LIGHT_BLUE, (const byte) DARK_GREY, (const byte) PURPLE, (const byte) RED, (const byte) ORANGE, (const byte) CYAN, (const byte) LIGHT_GREEN, (const byte) PINK, (const byte) LIGHT_GREEN, (const byte) LIGHT_GREEN, (const byte) LIGHT_BLUE, (const byte) DARK_GREY, (const byte) PURPLE, (const byte) RED, (const byte) ORANGE, (const byte) CYAN, (const byte) LIGHT_GREEN, (const byte) PINK, (const byte) LIGHT_GREEN, (const byte) LIGHT_GREEN, (const byte) LIGHT_BLUE, (const byte) DARK_GREY, (const byte) PURPLE, (const byte) RED, (const byte) ORANGE }
|
|
|
|
|
Successful SSA optimization Pass2ConstantInitializerValueLists
|
|
|
|
|
Constant (const byte[8]) keyboard_events = { fill( 8, 0) }
|
|
|
|
|
Constant (const byte) keyboard_events_size#0 = 0
|
|
|
|
|
Constant (const byte) keyboard_modifiers#0 = 0
|
|
|
|
@ -9120,8 +9115,6 @@ Constant (const word) lines_bcd#0 = 0
|
|
|
|
|
Constant (const byte) level_bcd#0 = 0
|
|
|
|
|
Constant (const byte) level#0 = 0
|
|
|
|
|
Constant (const byte) game_over#0 = 0
|
|
|
|
|
Constant (const byte[]) PIECES_COLORS_1 = { BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED, BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED, BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED }
|
|
|
|
|
Constant (const byte[]) PIECES_COLORS_2 = { CYAN, LIGHT_GREEN, PINK, LIGHT_GREEN, LIGHT_GREEN, LIGHT_BLUE, DARK_GREY, PURPLE, RED, ORANGE, CYAN, LIGHT_GREEN, PINK, LIGHT_GREEN, LIGHT_GREEN, LIGHT_BLUE, DARK_GREY, PURPLE, RED, ORANGE, CYAN, LIGHT_GREEN, PINK, LIGHT_GREEN, LIGHT_GREEN, LIGHT_BLUE, DARK_GREY, PURPLE, RED, ORANGE }
|
|
|
|
|
Constant (const byte*[PLAYFIELD_LINES]) screen_lines_1 = { fill( PLAYFIELD_LINES, 0) }
|
|
|
|
|
Constant (const byte*[PLAYFIELD_LINES]) screen_lines_2 = { fill( PLAYFIELD_LINES, 0) }
|
|
|
|
|
Constant (const byte*) render_init::vicSelectGfxBank1_gfx#0 = PLAYFIELD_CHARSET
|
|
|
|
@ -9241,7 +9234,7 @@ Constant (const word) sprites_irq::toSpritePtr2_$0 = (word)sprites_irq::toSprite
|
|
|
|
|
Constant (const byte*) play_init::pli#0 = playfield
|
|
|
|
|
Constant (const byte) play_collision::orientation#4 = current_orientation#68
|
|
|
|
|
Successful SSA optimization Pass2ConstantIdentification
|
|
|
|
|
if() condition always true - replacing block destination [1134] if(true) goto main::@4
|
|
|
|
|
if() condition always true - replacing block destination [1132] if(true) goto main::@4
|
|
|
|
|
Removing PHI-reference to removed block (main::@12) in block main::@19
|
|
|
|
|
Removing PHI-reference to removed block (main::@12) in block main::@19
|
|
|
|
|
Removing PHI-reference to removed block (main::@12) in block main::@19
|
|
|
|
@ -9257,60 +9250,60 @@ Removing PHI-reference to removed block (main::@12) in block main::@19
|
|
|
|
|
Removing PHI-reference to removed block (main::@12) in block main::@19
|
|
|
|
|
Removing PHI-reference to removed block (main::@12) in block main::@19
|
|
|
|
|
Removing PHI-reference to removed block (main::@12) in block main::@19
|
|
|
|
|
if() condition always true - replacing block destination [1177] if(true) goto main::@13
|
|
|
|
|
if() condition always true - replacing block destination [1175] if(true) goto main::@13
|
|
|
|
|
Successful SSA optimization Pass2ConstantIfs
|
|
|
|
|
Resolved ranged next value [30] keyboard_event_scan::row#1 ← ++ keyboard_event_scan::row#2 to ++
|
|
|
|
|
Resolved ranged comparison value [32] if(keyboard_event_scan::row#1!=rangelast(0,7)) goto keyboard_event_scan::@8 to (number) 8
|
|
|
|
|
Resolved ranged next value [41] keyboard_event_scan::col#1 ← ++ keyboard_event_scan::col#2 to ++
|
|
|
|
|
Resolved ranged comparison value [43] if(keyboard_event_scan::col#1!=rangelast(0,7)) goto keyboard_event_scan::@11 to (number) 8
|
|
|
|
|
Resolved ranged next value [195] render_init::i#1 ← ++ render_init::i#2 to ++
|
|
|
|
|
Resolved ranged comparison value [197] if(render_init::i#1!=rangelast(0,PLAYFIELD_LINES-1)) goto render_init::@1 to (const byte) PLAYFIELD_LINES-(byte) 1+(number) 1
|
|
|
|
|
Resolved ranged next value [365] render_screen_original::y#1 ← ++ render_screen_original::y#6 to ++
|
|
|
|
|
Resolved ranged comparison value [367] if(render_screen_original::y#1!=rangelast(0,$18)) goto render_screen_original::@1 to (number) $19
|
|
|
|
|
Resolved ranged next value [381] render_playfield::c#1 ← ++ render_playfield::c#2 to ++
|
|
|
|
|
Resolved ranged comparison value [383] if(render_playfield::c#1!=rangelast(0,PLAYFIELD_COLS-1)) goto render_playfield::@2 to (const byte) PLAYFIELD_COLS-(byte) 1+(number) 1
|
|
|
|
|
Resolved ranged next value [385] render_playfield::l#1 ← ++ render_playfield::l#2 to ++
|
|
|
|
|
Resolved ranged comparison value [387] if(render_playfield::l#1!=rangelast(2,PLAYFIELD_LINES-1)) goto render_playfield::@1 to (const byte) PLAYFIELD_LINES-(byte) 1+(number) 1
|
|
|
|
|
Resolved ranged next value [406] render_moving::l#1 ← ++ render_moving::l#4 to ++
|
|
|
|
|
Resolved ranged comparison value [408] if(render_moving::l#1!=rangelast(0,3)) goto render_moving::@1 to (number) 4
|
|
|
|
|
Resolved ranged next value [417] render_moving::c#1 ← ++ render_moving::c#2 to ++
|
|
|
|
|
Resolved ranged comparison value [419] if(render_moving::c#1!=rangelast(0,3)) goto render_moving::@4 to (number) 4
|
|
|
|
|
Resolved ranged next value [451] render_next::c#1 ← ++ render_next::c#2 to ++
|
|
|
|
|
Resolved ranged comparison value [453] if(render_next::c#1!=rangelast(0,3)) goto render_next::@6 to (number) 4
|
|
|
|
|
Resolved ranged next value [456] render_next::l#1 ← ++ render_next::l#7 to ++
|
|
|
|
|
Resolved ranged comparison value [458] if(render_next::l#1!=rangelast(0,3)) goto render_next::@5 to (number) 4
|
|
|
|
|
Resolved ranged next value [475] sprites_init::s#1 ← ++ sprites_init::s#2 to ++
|
|
|
|
|
Resolved ranged comparison value [477] if(sprites_init::s#1!=rangelast(0,3)) goto sprites_init::@1 to (number) 4
|
|
|
|
|
Resolved ranged next value [604] play_init::j#1 ← ++ play_init::j#2 to ++
|
|
|
|
|
Resolved ranged comparison value [606] if(play_init::j#1!=rangelast(0,PLAYFIELD_LINES-1)) goto play_init::@1 to (const byte) PLAYFIELD_LINES-(byte) 1+(number) 1
|
|
|
|
|
Resolved ranged next value [614] play_init::b#1 ← ++ play_init::b#2 to ++
|
|
|
|
|
Resolved ranged comparison value [616] if(play_init::b#1!=rangelast(0,4)) goto play_init::@3 to (number) 5
|
|
|
|
|
Resolved ranged next value [876] play_collision::c#1 ← ++ play_collision::c#2 to ++
|
|
|
|
|
Resolved ranged comparison value [878] if(play_collision::c#1!=rangelast(0,3)) goto play_collision::@2 to (number) 4
|
|
|
|
|
Resolved ranged next value [905] play_collision::l#1 ← ++ play_collision::l#6 to ++
|
|
|
|
|
Resolved ranged comparison value [907] if(play_collision::l#1!=rangelast(0,3)) goto play_collision::@1 to (number) 4
|
|
|
|
|
Resolved ranged next value [925] play_lock_current::c#1 ← ++ play_lock_current::c#2 to ++
|
|
|
|
|
Resolved ranged comparison value [927] if(play_lock_current::c#1!=rangelast(0,3)) goto play_lock_current::@2 to (number) 4
|
|
|
|
|
Resolved ranged next value [932] play_lock_current::l#1 ← ++ play_lock_current::l#6 to ++
|
|
|
|
|
Resolved ranged comparison value [934] if(play_lock_current::l#1!=rangelast(0,3)) goto play_lock_current::@1 to (number) 4
|
|
|
|
|
Resolved ranged next value [999] play_remove_lines::x#1 ← ++ play_remove_lines::x#2 to ++
|
|
|
|
|
Resolved ranged comparison value [1001] if(play_remove_lines::x#1!=rangelast(0,PLAYFIELD_COLS-1)) goto play_remove_lines::@2 to (const byte) PLAYFIELD_COLS-(byte) 1+(number) 1
|
|
|
|
|
Resolved ranged next value [1009] play_remove_lines::y#1 ← ++ play_remove_lines::y#8 to ++
|
|
|
|
|
Resolved ranged comparison value [1011] if(play_remove_lines::y#1!=rangelast(0,PLAYFIELD_LINES-1)) goto play_remove_lines::@1 to (const byte) PLAYFIELD_LINES-(byte) 1+(number) 1
|
|
|
|
|
Resolved ranged next value [1082] play_increase_level::b#1 ← ++ play_increase_level::b#2 to ++
|
|
|
|
|
Resolved ranged comparison value [1084] if(play_increase_level::b#1!=rangelast(0,4)) goto play_increase_level::@7 to (number) 5
|
|
|
|
|
Rewriting conditional comparison [395] if((byte) render_moving::ypos#2>(byte) 1) goto render_moving::@2
|
|
|
|
|
Rewriting conditional comparison [1063] if((byte) level#21>(byte) $1d) goto play_increase_level::@1
|
|
|
|
|
Resolved ranged next value [193] render_init::i#1 ← ++ render_init::i#2 to ++
|
|
|
|
|
Resolved ranged comparison value [195] if(render_init::i#1!=rangelast(0,PLAYFIELD_LINES-1)) goto render_init::@1 to (const byte) PLAYFIELD_LINES-(byte) 1+(number) 1
|
|
|
|
|
Resolved ranged next value [363] render_screen_original::y#1 ← ++ render_screen_original::y#6 to ++
|
|
|
|
|
Resolved ranged comparison value [365] if(render_screen_original::y#1!=rangelast(0,$18)) goto render_screen_original::@1 to (number) $19
|
|
|
|
|
Resolved ranged next value [379] render_playfield::c#1 ← ++ render_playfield::c#2 to ++
|
|
|
|
|
Resolved ranged comparison value [381] if(render_playfield::c#1!=rangelast(0,PLAYFIELD_COLS-1)) goto render_playfield::@2 to (const byte) PLAYFIELD_COLS-(byte) 1+(number) 1
|
|
|
|
|
Resolved ranged next value [383] render_playfield::l#1 ← ++ render_playfield::l#2 to ++
|
|
|
|
|
Resolved ranged comparison value [385] if(render_playfield::l#1!=rangelast(2,PLAYFIELD_LINES-1)) goto render_playfield::@1 to (const byte) PLAYFIELD_LINES-(byte) 1+(number) 1
|
|
|
|
|
Resolved ranged next value [404] render_moving::l#1 ← ++ render_moving::l#4 to ++
|
|
|
|
|
Resolved ranged comparison value [406] if(render_moving::l#1!=rangelast(0,3)) goto render_moving::@1 to (number) 4
|
|
|
|
|
Resolved ranged next value [415] render_moving::c#1 ← ++ render_moving::c#2 to ++
|
|
|
|
|
Resolved ranged comparison value [417] if(render_moving::c#1!=rangelast(0,3)) goto render_moving::@4 to (number) 4
|
|
|
|
|
Resolved ranged next value [449] render_next::c#1 ← ++ render_next::c#2 to ++
|
|
|
|
|
Resolved ranged comparison value [451] if(render_next::c#1!=rangelast(0,3)) goto render_next::@6 to (number) 4
|
|
|
|
|
Resolved ranged next value [454] render_next::l#1 ← ++ render_next::l#7 to ++
|
|
|
|
|
Resolved ranged comparison value [456] if(render_next::l#1!=rangelast(0,3)) goto render_next::@5 to (number) 4
|
|
|
|
|
Resolved ranged next value [473] sprites_init::s#1 ← ++ sprites_init::s#2 to ++
|
|
|
|
|
Resolved ranged comparison value [475] if(sprites_init::s#1!=rangelast(0,3)) goto sprites_init::@1 to (number) 4
|
|
|
|
|
Resolved ranged next value [602] play_init::j#1 ← ++ play_init::j#2 to ++
|
|
|
|
|
Resolved ranged comparison value [604] if(play_init::j#1!=rangelast(0,PLAYFIELD_LINES-1)) goto play_init::@1 to (const byte) PLAYFIELD_LINES-(byte) 1+(number) 1
|
|
|
|
|
Resolved ranged next value [612] play_init::b#1 ← ++ play_init::b#2 to ++
|
|
|
|
|
Resolved ranged comparison value [614] if(play_init::b#1!=rangelast(0,4)) goto play_init::@3 to (number) 5
|
|
|
|
|
Resolved ranged next value [874] play_collision::c#1 ← ++ play_collision::c#2 to ++
|
|
|
|
|
Resolved ranged comparison value [876] if(play_collision::c#1!=rangelast(0,3)) goto play_collision::@2 to (number) 4
|
|
|
|
|
Resolved ranged next value [903] play_collision::l#1 ← ++ play_collision::l#6 to ++
|
|
|
|
|
Resolved ranged comparison value [905] if(play_collision::l#1!=rangelast(0,3)) goto play_collision::@1 to (number) 4
|
|
|
|
|
Resolved ranged next value [923] play_lock_current::c#1 ← ++ play_lock_current::c#2 to ++
|
|
|
|
|
Resolved ranged comparison value [925] if(play_lock_current::c#1!=rangelast(0,3)) goto play_lock_current::@2 to (number) 4
|
|
|
|
|
Resolved ranged next value [930] play_lock_current::l#1 ← ++ play_lock_current::l#6 to ++
|
|
|
|
|
Resolved ranged comparison value [932] if(play_lock_current::l#1!=rangelast(0,3)) goto play_lock_current::@1 to (number) 4
|
|
|
|
|
Resolved ranged next value [997] play_remove_lines::x#1 ← ++ play_remove_lines::x#2 to ++
|
|
|
|
|
Resolved ranged comparison value [999] if(play_remove_lines::x#1!=rangelast(0,PLAYFIELD_COLS-1)) goto play_remove_lines::@2 to (const byte) PLAYFIELD_COLS-(byte) 1+(number) 1
|
|
|
|
|
Resolved ranged next value [1007] play_remove_lines::y#1 ← ++ play_remove_lines::y#8 to ++
|
|
|
|
|
Resolved ranged comparison value [1009] if(play_remove_lines::y#1!=rangelast(0,PLAYFIELD_LINES-1)) goto play_remove_lines::@1 to (const byte) PLAYFIELD_LINES-(byte) 1+(number) 1
|
|
|
|
|
Resolved ranged next value [1080] play_increase_level::b#1 ← ++ play_increase_level::b#2 to ++
|
|
|
|
|
Resolved ranged comparison value [1082] if(play_increase_level::b#1!=rangelast(0,4)) goto play_increase_level::@7 to (number) 5
|
|
|
|
|
Rewriting conditional comparison [393] if((byte) render_moving::ypos#2>(byte) 1) goto render_moving::@2
|
|
|
|
|
Rewriting conditional comparison [1061] if((byte) level#21>(byte) $1d) goto play_increase_level::@1
|
|
|
|
|
Simplifying expression containing zero KEY_MODIFIER_LSHIFT in [82] (byte) keyboard_modifiers#2 ← (const byte) keyboard_modifiers#1 | (const byte) KEY_MODIFIER_LSHIFT
|
|
|
|
|
Simplifying expression containing zero PIECES_COLORS_1 in [178] *((const byte*) BGCOL2) ← *((const byte[]) PIECES_COLORS_1 + (byte) 0)
|
|
|
|
|
Simplifying expression containing zero PIECES_COLORS_2 in [179] *((const byte*) BGCOL3) ← *((const byte[]) PIECES_COLORS_2 + (byte) 0)
|
|
|
|
|
Simplifying expression containing zero render_score::score_bytes#0 in [289] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes#0 + (byte) 0)
|
|
|
|
|
Simplifying expression containing zero SPRITES_YPOS in [511] *((const byte*) SPRITES_YPOS + (byte) 0) ← (byte) sprites_irq::ypos#0
|
|
|
|
|
Simplifying expression containing zero PLAYFIELD_SPRITE_PTRS_1 in [525] *((const byte*) PLAYFIELD_SPRITE_PTRS_1 + (byte) 0) ← (byte) sprites_irq::ptr#0
|
|
|
|
|
Simplifying expression containing zero PLAYFIELD_SPRITE_PTRS_2 in [532] *((const byte*) PLAYFIELD_SPRITE_PTRS_2 + (byte) 0) ← (byte) sprites_irq::ptr#0
|
|
|
|
|
Simplifying expression containing zero MOVEDOWN_SLOW_SPEEDS in [609] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS + (const byte) level#0)
|
|
|
|
|
Simplifying expression containing zero play_movement::$0 in [641] (byte) play_movement::render#1 ← (const byte) play_movement::render#0 + (byte~) play_movement::$0
|
|
|
|
|
Simplifying expression containing zero current_piece#5 in [942] (byte*) current_piece_gfx#74 ← (byte*) current_piece#5 + (const byte) current_orientation#68
|
|
|
|
|
Simplifying expression containing zero PIECES_COLORS_1 in [176] *((const byte*) BGCOL2) ← *((const byte[]) PIECES_COLORS_1 + (byte) 0)
|
|
|
|
|
Simplifying expression containing zero PIECES_COLORS_2 in [177] *((const byte*) BGCOL3) ← *((const byte[]) PIECES_COLORS_2 + (byte) 0)
|
|
|
|
|
Simplifying expression containing zero render_score::score_bytes#0 in [287] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes#0 + (byte) 0)
|
|
|
|
|
Simplifying expression containing zero SPRITES_YPOS in [509] *((const byte*) SPRITES_YPOS + (byte) 0) ← (byte) sprites_irq::ypos#0
|
|
|
|
|
Simplifying expression containing zero PLAYFIELD_SPRITE_PTRS_1 in [523] *((const byte*) PLAYFIELD_SPRITE_PTRS_1 + (byte) 0) ← (byte) sprites_irq::ptr#0
|
|
|
|
|
Simplifying expression containing zero PLAYFIELD_SPRITE_PTRS_2 in [530] *((const byte*) PLAYFIELD_SPRITE_PTRS_2 + (byte) 0) ← (byte) sprites_irq::ptr#0
|
|
|
|
|
Simplifying expression containing zero MOVEDOWN_SLOW_SPEEDS in [607] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS + (const byte) level#0)
|
|
|
|
|
Simplifying expression containing zero play_movement::$0 in [639] (byte) play_movement::render#1 ← (const byte) play_movement::render#0 + (byte~) play_movement::$0
|
|
|
|
|
Simplifying expression containing zero current_piece#5 in [940] (byte*) current_piece_gfx#74 ← (byte*) current_piece#5 + (const byte) current_orientation#68
|
|
|
|
|
Successful SSA optimization PassNSimplifyExpressionWithZero
|
|
|
|
|
Eliminating unused variable (byte*) render_bcd::screen_pos#1 and assignment [150] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3
|
|
|
|
|
Eliminating unused variable - keeping the phi block (byte) keyboard_modifiers#16
|
|
|
|
@ -16805,6 +16798,10 @@ sprites_irq: {
|
|
|
|
|
keyboard_matrix_row_bitmask: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f
|
|
|
|
|
// Keyboard matrix column bitmasks for a specific keybooard matrix column when reading the keyboard. (columns are numbered 0-7)
|
|
|
|
|
keyboard_matrix_col_bitmask: .byte 1, 2, 4, 8, $10, $20, $40, $80
|
|
|
|
|
// The color #1 to use for the pieces for each level
|
|
|
|
|
PIECES_COLORS_1: .byte BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED, BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED, BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED
|
|
|
|
|
// The color #2 to use for the pieces for each level
|
|
|
|
|
PIECES_COLORS_2: .byte CYAN, LIGHT_GREEN, PINK, LIGHT_GREEN, LIGHT_GREEN, LIGHT_BLUE, DARK_GREY, PURPLE, RED, ORANGE, CYAN, LIGHT_GREEN, PINK, LIGHT_GREEN, LIGHT_GREEN, LIGHT_BLUE, DARK_GREY, PURPLE, RED, ORANGE, CYAN, LIGHT_GREEN, PINK, LIGHT_GREEN, LIGHT_GREEN, LIGHT_BLUE, DARK_GREY, PURPLE, RED, ORANGE
|
|
|
|
|
// The T-piece
|
|
|
|
|
.align $40
|
|
|
|
|
PIECE_T: .byte 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0
|
|
|
|
@ -16846,10 +16843,6 @@ sprites_irq: {
|
|
|
|
|
// The playfield. 0 is empty non-zero is color.
|
|
|
|
|
// The playfield is layed out line by line, meaning the first 10 bytes are line 1, the next 10 line 2 and so forth,
|
|
|
|
|
playfield: .fill PLAYFIELD_LINES*PLAYFIELD_COLS, 0
|
|
|
|
|
// The color #1 to use for the pieces for each level
|
|
|
|
|
PIECES_COLORS_1: .byte BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED, BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED, BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED
|
|
|
|
|
// The color #2 to use for the pieces for each level
|
|
|
|
|
PIECES_COLORS_2: .byte CYAN, LIGHT_GREEN, PINK, LIGHT_GREEN, LIGHT_GREEN, LIGHT_BLUE, DARK_GREY, PURPLE, RED, ORANGE, CYAN, LIGHT_GREEN, PINK, LIGHT_GREEN, LIGHT_GREEN, LIGHT_BLUE, DARK_GREY, PURPLE, RED, ORANGE, CYAN, LIGHT_GREEN, PINK, LIGHT_GREEN, LIGHT_GREEN, LIGHT_BLUE, DARK_GREY, PURPLE, RED, ORANGE
|
|
|
|
|
// Pointers to the screen address for rendering each playfield line
|
|
|
|
|
// The lines for screen 1 is aligned with 0x80 and screen 2 with 0x40 - so XOR'ing with 0x40 gives screen 2 lines.
|
|
|
|
|
.align $80
|
|
|
|
@ -21535,6 +21528,10 @@ sprites_irq: {
|
|
|
|
|
keyboard_matrix_row_bitmask: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f
|
|
|
|
|
// Keyboard matrix column bitmasks for a specific keybooard matrix column when reading the keyboard. (columns are numbered 0-7)
|
|
|
|
|
keyboard_matrix_col_bitmask: .byte 1, 2, 4, 8, $10, $20, $40, $80
|
|
|
|
|
// The color #1 to use for the pieces for each level
|
|
|
|
|
PIECES_COLORS_1: .byte BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED, BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED, BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED
|
|
|
|
|
// The color #2 to use for the pieces for each level
|
|
|
|
|
PIECES_COLORS_2: .byte CYAN, LIGHT_GREEN, PINK, LIGHT_GREEN, LIGHT_GREEN, LIGHT_BLUE, DARK_GREY, PURPLE, RED, ORANGE, CYAN, LIGHT_GREEN, PINK, LIGHT_GREEN, LIGHT_GREEN, LIGHT_BLUE, DARK_GREY, PURPLE, RED, ORANGE, CYAN, LIGHT_GREEN, PINK, LIGHT_GREEN, LIGHT_GREEN, LIGHT_BLUE, DARK_GREY, PURPLE, RED, ORANGE
|
|
|
|
|
// The T-piece
|
|
|
|
|
.align $40
|
|
|
|
|
PIECE_T: .byte 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0
|
|
|
|
@ -21576,10 +21573,6 @@ sprites_irq: {
|
|
|
|
|
// The playfield. 0 is empty non-zero is color.
|
|
|
|
|
// The playfield is layed out line by line, meaning the first 10 bytes are line 1, the next 10 line 2 and so forth,
|
|
|
|
|
playfield: .fill PLAYFIELD_LINES*PLAYFIELD_COLS, 0
|
|
|
|
|
// The color #1 to use for the pieces for each level
|
|
|
|
|
PIECES_COLORS_1: .byte BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED, BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED, BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED
|
|
|
|
|
// The color #2 to use for the pieces for each level
|
|
|
|
|
PIECES_COLORS_2: .byte CYAN, LIGHT_GREEN, PINK, LIGHT_GREEN, LIGHT_GREEN, LIGHT_BLUE, DARK_GREY, PURPLE, RED, ORANGE, CYAN, LIGHT_GREEN, PINK, LIGHT_GREEN, LIGHT_GREEN, LIGHT_BLUE, DARK_GREY, PURPLE, RED, ORANGE, CYAN, LIGHT_GREEN, PINK, LIGHT_GREEN, LIGHT_GREEN, LIGHT_BLUE, DARK_GREY, PURPLE, RED, ORANGE
|
|
|
|
|
// Pointers to the screen address for rendering each playfield line
|
|
|
|
|
// The lines for screen 1 is aligned with 0x80 and screen 2 with 0x40 - so XOR'ing with 0x40 gives screen 2 lines.
|
|
|
|
|
.align $80
|
|
|
|
@ -26626,6 +26619,10 @@ sprites_irq: {
|
|
|
|
|
keyboard_matrix_row_bitmask: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f
|
|
|
|
|
// Keyboard matrix column bitmasks for a specific keybooard matrix column when reading the keyboard. (columns are numbered 0-7)
|
|
|
|
|
keyboard_matrix_col_bitmask: .byte 1, 2, 4, 8, $10, $20, $40, $80
|
|
|
|
|
// The color #1 to use for the pieces for each level
|
|
|
|
|
PIECES_COLORS_1: .byte BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED, BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED, BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED
|
|
|
|
|
// The color #2 to use for the pieces for each level
|
|
|
|
|
PIECES_COLORS_2: .byte CYAN, LIGHT_GREEN, PINK, LIGHT_GREEN, LIGHT_GREEN, LIGHT_BLUE, DARK_GREY, PURPLE, RED, ORANGE, CYAN, LIGHT_GREEN, PINK, LIGHT_GREEN, LIGHT_GREEN, LIGHT_BLUE, DARK_GREY, PURPLE, RED, ORANGE, CYAN, LIGHT_GREEN, PINK, LIGHT_GREEN, LIGHT_GREEN, LIGHT_BLUE, DARK_GREY, PURPLE, RED, ORANGE
|
|
|
|
|
// The T-piece
|
|
|
|
|
.align $40
|
|
|
|
|
PIECE_T: .byte 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0
|
|
|
|
@ -26667,10 +26664,6 @@ sprites_irq: {
|
|
|
|
|
// The playfield. 0 is empty non-zero is color.
|
|
|
|
|
// The playfield is layed out line by line, meaning the first 10 bytes are line 1, the next 10 line 2 and so forth,
|
|
|
|
|
playfield: .fill PLAYFIELD_LINES*PLAYFIELD_COLS, 0
|
|
|
|
|
// The color #1 to use for the pieces for each level
|
|
|
|
|
PIECES_COLORS_1: .byte BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED, BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED, BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED
|
|
|
|
|
// The color #2 to use for the pieces for each level
|
|
|
|
|
PIECES_COLORS_2: .byte CYAN, LIGHT_GREEN, PINK, LIGHT_GREEN, LIGHT_GREEN, LIGHT_BLUE, DARK_GREY, PURPLE, RED, ORANGE, CYAN, LIGHT_GREEN, PINK, LIGHT_GREEN, LIGHT_GREEN, LIGHT_BLUE, DARK_GREY, PURPLE, RED, ORANGE, CYAN, LIGHT_GREEN, PINK, LIGHT_GREEN, LIGHT_GREEN, LIGHT_BLUE, DARK_GREY, PURPLE, RED, ORANGE
|
|
|
|
|
// Pointers to the screen address for rendering each playfield line
|
|
|
|
|
// The lines for screen 1 is aligned with 0x80 and screen 2 with 0x40 - so XOR'ing with 0x40 gives screen 2 lines.
|
|
|
|
|
.align $80
|
|
|
|
|