diff --git a/src/test/kc/examples/tetris/tetris-data.kc b/src/test/kc/examples/tetris/tetris-data.kc index 1ef4bbfc4..d473ab943 100644 --- a/src/test/kc/examples/tetris/tetris-data.kc +++ b/src/test/kc/examples/tetris/tetris-data.kc @@ -1,3 +1,4 @@ +// Tetris Game for the Commodore 64 // Memory Layout and Shared Data // Address of the first screen @@ -47,5 +48,7 @@ dword score_bcd = 0; // Current number of cleared lines in BCD-format word lines_bcd = 0; // Current level BCD-format -byte level_bcd = 1; +byte level_bcd = 0; +// Current level in normal numeric format +byte level = 0; diff --git a/src/test/kc/examples/tetris/tetris-pieces.kc b/src/test/kc/examples/tetris/tetris-pieces.kc index d75489458..e53f9f59b 100644 --- a/src/test/kc/examples/tetris/tetris-pieces.kc +++ b/src/test/kc/examples/tetris/tetris-pieces.kc @@ -1,3 +1,4 @@ +// Tetris Game for the Commodore 64 // The tetris pieces // The T-piece @@ -172,6 +173,7 @@ word[] PIECES = { (word)PIECE_T, (word)PIECE_S, (word)PIECE_Z, (word)PIECE_J, (w // The chars to use for the different pieces byte[] PIECES_CHARS = { $64, $65, $a5, $65, $64, $64, $a5 }; + // The initial X/Y for each piece byte[] PIECES_START_X = { 4, 4, 4, 4, 4, 4, 4 }; byte[] PIECES_START_Y = { 1, 1, 1, 1, 1, 0, 1 }; \ No newline at end of file diff --git a/src/test/kc/examples/tetris/tetris-play.kc b/src/test/kc/examples/tetris/tetris-play.kc index f25519518..34eebc139 100644 --- a/src/test/kc/examples/tetris/tetris-play.kc +++ b/src/test/kc/examples/tetris/tetris-play.kc @@ -1,4 +1,6 @@ -// Implementation of the games play logic +// Tetris Game for the Commodore 64 +// Implementation of the tetris game play logic. Most of the logic is modelled after NES tetris +// Source: https://meatfighter.com/nintendotetrisai/ import "tetris-data" import "tetris-pieces" @@ -17,10 +19,10 @@ byte* current_piece = 0; byte current_orientation = 0; // The rate of moving down the current piece (number of frames between moves if movedown is not forced) -const byte current_movedown_slow = 50; +byte current_movedown_slow = 48; // The rate of moving down the current piece fast (number of frames between moves if movedown is not forced) -const byte current_movedown_fast = 5; +const byte current_movedown_fast = 2; // Counts up to the next movedown of current piece byte current_movedown_counter = 0; @@ -28,6 +30,10 @@ byte current_movedown_counter = 0; // Score values for removing 0-4 lines (in BCD) dword[] score_add_bcd = { $0000, $0040, $0100, $0300, $1200 }; +// The speed of moving down the piece when soft-drop is not activated +// This array holds the number of frames per move by level (0-29). For all levels 29+ the value is 1. +const byte[] MOVEDOWN_SLOW_SPEEDS = { 48, 43, 38, 33, 28, 23, 18, 13, 8, 6, 5, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }; + // Initialize play data tables void play_init() { // Initialize the playfield line pointers; @@ -40,6 +46,9 @@ void play_init() { idx += PLAYFIELD_COLS; } playfield_lines_idx[PLAYFIELD_LINES] = PLAYFIELD_COLS*PLAYFIELD_LINES; + + // Set initial speed of moving down a tetromino + current_movedown_slow = MOVEDOWN_SLOW_SPEEDS[level]; } // Move down the current piece @@ -248,12 +257,26 @@ void play_update_score(byte removed) { // If line 10-part updated increase the level byte lines_after = 29) { + current_movedown_slow = 1; + } else { + current_movedown_slow = MOVEDOWN_SLOW_SPEEDS[level]; + } + // Increase BCD-format level + level_bcd++; + if((level_bcd&$f)==$a) { + // If level low nybble hits $a change to $10 + level_bcd += 6; + } +} + diff --git a/src/test/kc/examples/tetris/tetris-render.kc b/src/test/kc/examples/tetris/tetris-render.kc index 5aa275e88..56837019d 100644 --- a/src/test/kc/examples/tetris/tetris-render.kc +++ b/src/test/kc/examples/tetris/tetris-render.kc @@ -1,3 +1,7 @@ +// Tetris Game for the Commodore 64 +// All rendering logic for showing the playfield, the pieces and the scores +// Also handles double buffering + import "tetris-data" kickasm(pc PLAYFIELD_CHARSET, resource "playfield-screen.imap") {{ @@ -137,7 +141,7 @@ void render_screen_original(byte* screen) { } } -// Render the static playfield on the screen +// Render the static playfield on the screen (all pieces already locked into place) void render_playfield() { // Do not render the top 2 lines. byte i = PLAYFIELD_COLS*2; @@ -150,7 +154,7 @@ void render_playfield() { } // Render the current moving piece at position (current_xpos, current_ypos) -void render_current() { +void render_moving() { byte i = 0; byte ypos2 = current_ypos<<1; for(byte l:0..3) { diff --git a/src/test/kc/examples/tetris/tetris-sprites.kc b/src/test/kc/examples/tetris/tetris-sprites.kc index 0d67103ff..e2459a568 100644 --- a/src/test/kc/examples/tetris/tetris-sprites.kc +++ b/src/test/kc/examples/tetris/tetris-sprites.kc @@ -1,4 +1,5 @@ -// A sprite multiplexer covering the playfield with a black layer to give the pixel perfect 3-single-color NES playfield +// Tetris Game for the Commodore 64 +// A sprite multiplexer covering the playfield with a black layer to allow for 3 single-pixel colors import "c64" import "tetris-data" diff --git a/src/test/kc/examples/tetris/tetris.kc b/src/test/kc/examples/tetris/tetris.kc index da4d8c56e..3340669a4 100644 --- a/src/test/kc/examples/tetris/tetris.kc +++ b/src/test/kc/examples/tetris/tetris.kc @@ -1,4 +1,7 @@ -// Tetris Game Implementation +// Tetris Game for the Commodore 64 +// The tetris game tries to match NES tetris gameplay pretty closely +// Source: https://meatfighter.com/nintendotetrisai/ + import "c64" import "memory" import "keyboard" @@ -17,7 +20,7 @@ void main() { play_init(); play_spawn_current(); render_playfield(); - render_current(); + render_moving(); while(true) { // Wait for a frame to pass while(*RASTER!=$ff) {} @@ -33,7 +36,7 @@ void main() { render += play_move_rotate(key_event); if(render!=0) { render_playfield(); - render_current(); + render_moving(); render_score(); render_screen_swap(); } diff --git a/src/test/ref/examples/tetris/test-sprites.log b/src/test/ref/examples/tetris/test-sprites.log index a57b51510..d8251bcd4 100644 --- a/src/test/ref/examples/tetris/test-sprites.log +++ b/src/test/ref/examples/tetris/test-sprites.log @@ -107,7 +107,8 @@ CONTROL FLOW GRAPH SSA (byte) render_screen_showing#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (dword) score_bcd#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (word) lines_bcd#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte) level_bcd#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) level_bcd#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) level#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 kickasm(location (byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) .for(var sy=0;sy<10;sy++) { .for(var sx=0;sx<3;sx++) { @@ -701,6 +702,8 @@ SYMBOL TABLE SSA (byte) irq_sprite_ypos#7 (byte) irq_sprite_ypos#8 (byte) irq_sprite_ypos#9 +(byte) level +(byte) level#0 (byte) level_bcd (byte) level_bcd#0 (word) lines_bcd @@ -1061,7 +1064,8 @@ Constant (const byte) render_screen_render#0 = 64 Constant (const byte) render_screen_show#0 = 0 Constant (const dword) score_bcd#0 = 0 Constant (const word) lines_bcd#0 = 0 -Constant (const byte) level_bcd#0 = 1 +Constant (const byte) level_bcd#0 = 0 +Constant (const byte) level#0 = 0 Constant (const byte/signed byte/word/signed word/dword/signed dword) sprites_init::$0 = 15*8 Constant (const byte) sprites_init::s#0 = 0 Constant (const byte) IRQ_RASTER_FIRST#0 = 49 @@ -1487,6 +1491,7 @@ VARIABLE REGISTER WEIGHTS (byte) irq_sprite_ypos#0 0.7083333333333334 (byte) irq_sprite_ypos#1 20.0 (byte) irq_sprite_ypos#2 20.0 +(byte) level (byte) level_bcd (word) lines_bcd (void()) main() @@ -2890,6 +2895,7 @@ FINAL SYMBOL TABLE (byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:5 0.7083333333333334 (byte) irq_sprite_ypos#1 irq_sprite_ypos zp ZP_BYTE:5 20.0 (byte) irq_sprite_ypos#2 irq_sprite_ypos zp ZP_BYTE:5 20.0 +(byte) level (byte) level_bcd (word) lines_bcd (void()) main() diff --git a/src/test/ref/examples/tetris/test-sprites.sym b/src/test/ref/examples/tetris/test-sprites.sym index 7abb71de8..b8362996f 100644 --- a/src/test/ref/examples/tetris/test-sprites.sym +++ b/src/test/ref/examples/tetris/test-sprites.sym @@ -148,6 +148,7 @@ (byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:5 0.7083333333333334 (byte) irq_sprite_ypos#1 irq_sprite_ypos zp ZP_BYTE:5 20.0 (byte) irq_sprite_ypos#2 irq_sprite_ypos zp ZP_BYTE:5 20.0 +(byte) level (byte) level_bcd (word) lines_bcd (void()) main() diff --git a/src/test/ref/examples/tetris/tetris.asm b/src/test/ref/examples/tetris/tetris.asm index 24c45127d..6cb5e85c4 100644 --- a/src/test/ref/examples/tetris/tetris.asm +++ b/src/test/ref/examples/tetris/tetris.asm @@ -66,8 +66,7 @@ .const PLAYFIELD_LINES = $16 .const PLAYFIELD_COLS = $a .const IRQ_RASTER_FIRST = $31 - .const current_movedown_slow = $32 - .const current_movedown_fast = 5 + .const current_movedown_fast = 2 .const COLLISION_NONE = 0 .const COLLISION_PLAYFIELD = 1 .const COLLISION_BOTTOM = 2 @@ -76,24 +75,26 @@ .label PLAYFIELD_SPRITE_PTRS_1 = PLAYFIELD_SCREEN_1+SPRITE_PTRS .label PLAYFIELD_SPRITE_PTRS_2 = PLAYFIELD_SCREEN_2+SPRITE_PTRS .const toSpritePtr1_return = PLAYFIELD_SPRITES>>6 - .label keyboard_events_size = $1f - .label render_screen_showing = $21 - .label irq_raster_next = $20 - .label irq_sprite_ypos = $22 - .label irq_sprite_ptr = $23 - .label irq_cnt = $24 + .label keyboard_events_size = $21 + .label render_screen_showing = $23 + .label irq_raster_next = $22 + .label irq_sprite_ypos = $24 + .label irq_sprite_ptr = $25 + .label irq_cnt = $26 + .label current_movedown_slow = $18 .label current_movedown_counter = 4 .label current_ypos = $10 - .label current_piece_gfx = $1b - .label current_xpos = $1d - .label current_piece_char = $1e - .label current_orientation = $1a - .label level_bcd = $17 + .label current_piece_gfx = $1d + .label current_xpos = $1f + .label current_piece_char = $20 + .label current_orientation = $1c + .label level_bcd = $19 .label render_screen_render = 3 .label render_screen_show = 2 .label lines_bcd = $11 .label score_bcd = $13 - .label current_piece = $18 + .label level = $17 + .label current_piece = $1a .label current_piece_12 = 5 .label render_screen_render_30 = 9 .label current_xpos_47 = $a @@ -121,7 +122,7 @@ bbegin: jsr main main: { .label key_event = $f - .label render = $25 + .label render = $27 jsr sid_rnd_init sei jsr render_init @@ -141,15 +142,15 @@ main: { ldx current_piece_char lda #$40 sta render_screen_render_30 - jsr render_current + jsr render_moving ldy play_spawn_current._3 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - lda #1 - sta level_bcd lda #0 + sta level_bcd + sta level sta score_bcd sta score_bcd+1 sta score_bcd+2 @@ -199,7 +200,7 @@ main: { lda current_piece_gfx+1 sta current_piece_gfx_103+1 ldx current_piece_char - jsr render_current + jsr render_moving jsr render_score jsr render_screen_swap jmp b4 @@ -319,7 +320,7 @@ render_bcd: { !: rts } -render_current: { +render_moving: { .label ypos2 = $b .label screen_line = 7 .label xpos = $e @@ -484,7 +485,7 @@ play_collision: { .label piece_gfx = 5 .label ypos2 = $b .label playfield_line = 7 - .label i = $26 + .label i = $28 .label col = $e .label l = $c .label i_2 = $d @@ -632,7 +633,7 @@ play_move_down: { inx b2: lda current_movedown_counter - cmp #current_movedown_slow + cmp current_movedown_slow bcc b4 inx b4: @@ -709,7 +710,7 @@ sid_rnd: { } play_update_score: { .label lines_before = 4 - .label add_bcd = $27 + .label add_bcd = $29 cpx #0 beq breturn lda lines_bcd @@ -753,6 +754,25 @@ play_update_score: { and #$f0 cmp lines_before beq breturn + jsr play_increase_level + breturn: + rts +} +play_increase_level: { + inc level + lda level + cmp #$1d + beq !+ + bcs b1 + !: + ldy level + lda MOVEDOWN_SLOW_SPEEDS,y + sta current_movedown_slow + jmp b2 + b1: + lda #1 + sta current_movedown_slow + b2: inc level_bcd lda #$f and level_bcd @@ -1063,6 +1083,8 @@ play_init: { bne b1 lda #PLAYFIELD_COLS*PLAYFIELD_LINES sta playfield_lines_idx+PLAYFIELD_LINES + lda MOVEDOWN_SLOW_SPEEDS + sta current_movedown_slow rts } sprites_irq_init: { @@ -1193,7 +1215,7 @@ render_init: { render_screen_original: { .const SPACE = 0 .label screen = $11 - .label cols = $18 + .label cols = $1a .label oscr = 5 .label ocols = 7 .label y = 2 @@ -1391,6 +1413,7 @@ sprites_irq: { PIECES_START_X: .byte 4, 4, 4, 4, 4, 4, 4 PIECES_START_Y: .byte 1, 1, 1, 1, 1, 0, 1 score_add_bcd: .dword 0, $40, $100, $300, $1200 + MOVEDOWN_SLOW_SPEEDS: .byte $30, $2b, $26, $21, $1c, $17, $12, $d, 8, 6, 5, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 .align $80 screen_lines_1: .fill 2*PLAYFIELD_LINES, 0 .align $40 diff --git a/src/test/ref/examples/tetris/tetris.cfg b/src/test/ref/examples/tetris/tetris.cfg index 750fb53be..1313a2cb0 100644 --- a/src/test/ref/examples/tetris/tetris.cfg +++ b/src/test/ref/examples/tetris/tetris.cfg @@ -38,18 +38,18 @@ to:toSpritePtr1 toSpritePtr1: scope:[] from @23 [8] phi() - to:@36 -@36: scope:[] from toSpritePtr1 + to:@37 +@37: scope:[] from toSpritePtr1 [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 [10] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - to:@35 -@35: scope:[] from @36 + to:@36 +@36: scope:[] from @37 [11] phi() [12] call main to:@end -@end: scope:[] from @35 +@end: scope:[] from @36 [13] phi() -main: scope:[main] from @35 +main: scope:[main] from @36 [14] phi() [15] call sid_rnd_init to:main::@15 @@ -82,11 +82,12 @@ main::@21: scope:[main] from main::@20 [29] (byte~) current_xpos#112 ← (byte) current_xpos#23 [30] (byte*~) current_piece_gfx#102 ← (byte*) current_piece_gfx#16 [31] (byte~) current_piece_char#90 ← (byte) current_piece_char#12 - [32] call render_current + [32] call render_moving [33] (byte*~) current_piece#73 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) to:main::@1 main::@1: scope:[main] from main::@21 main::@28 main::@31 - [34] (byte) level_bcd#16 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 1 main::@31/(byte) level_bcd#11 main::@28/(byte) level_bcd#11 ) + [34] (byte) level_bcd#20 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@31/(byte) level_bcd#13 main::@28/(byte) level_bcd#13 ) + [34] (byte) level#19 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@31/(byte) level#12 main::@28/(byte) level#12 ) [34] (dword) score_bcd#14 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@31/(dword) score_bcd#10 main::@28/(dword) score_bcd#10 ) [34] (word) lines_bcd#15 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@31/(word) lines_bcd#11 main::@28/(word) lines_bcd#11 ) [34] (byte) current_movedown_counter#12 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@31/(byte) current_movedown_counter#10 main::@28/(byte) current_movedown_counter#10 ) @@ -97,6 +98,7 @@ main::@1: scope:[main] from main::@21 main::@28 main::@31 [34] (byte*) current_piece_gfx#20 ← phi( main::@21/(byte*) current_piece_gfx#16 main::@31/(byte*) current_piece_gfx#14 main::@28/(byte*) current_piece_gfx#14 ) [34] (byte) current_orientation#10 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@31/(byte) current_orientation#19 main::@28/(byte) current_orientation#19 ) [34] (byte*) current_piece#16 ← phi( main::@21/(byte*~) current_piece#73 main::@31/(byte*) current_piece#10 main::@28/(byte*) current_piece#10 ) + [34] (byte) current_movedown_slow#12 ← phi( main::@21/(byte) current_movedown_slow#1 main::@31/(byte) current_movedown_slow#17 main::@28/(byte) current_movedown_slow#17 ) [34] (byte) render_screen_render#17 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@31/(byte) render_screen_render#11 ) [34] (byte) render_screen_show#16 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@31/(byte) render_screen_show#13 ) to:main::@4 @@ -151,7 +153,7 @@ main::@29: scope:[main] from main::@13 [64] (byte~) current_xpos#113 ← (byte) current_xpos#19 [65] (byte*~) current_piece_gfx#103 ← (byte*) current_piece_gfx#14 [66] (byte~) current_piece_char#91 ← (byte) current_piece_char#1 - [67] call render_current + [67] call render_moving to:main::@30 main::@30: scope:[main] from main::@29 [68] phi() @@ -202,7 +204,7 @@ render_score::@8: scope:[render_score] from render_score::@7 to:render_score::@9 render_score::@9: scope:[render_score] from render_score::@8 [93] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#2 - [94] (byte) render_bcd::bcd#5 ← (byte) level_bcd#11 + [94] (byte) render_bcd::bcd#5 ← (byte) level_bcd#13 [95] call render_bcd to:render_score::@return render_score::@return: scope:[render_score] from render_score::@9 @@ -232,59 +234,59 @@ render_bcd::@1: scope:[render_bcd] from render_bcd render_bcd::@2 render_bcd::@return: scope:[render_bcd] from render_bcd::@1 [109] return to:@return -render_current: scope:[render_current] from main::@21 main::@29 +render_moving: scope:[render_moving] from main::@21 main::@29 [110] (byte) current_piece_char#64 ← phi( main::@21/(byte~) current_piece_char#90 main::@29/(byte~) current_piece_char#91 ) [110] (byte*) current_piece_gfx#53 ← phi( main::@21/(byte*~) current_piece_gfx#102 main::@29/(byte*~) current_piece_gfx#103 ) [110] (byte) current_xpos#47 ← phi( main::@21/(byte~) current_xpos#112 main::@29/(byte~) current_xpos#113 ) [110] (byte) render_screen_render#30 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@29/(byte~) render_screen_render#64 ) [110] (byte) current_ypos#9 ← phi( main::@21/(byte~) current_ypos#86 main::@29/(byte~) current_ypos#87 ) - [111] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 - to:render_current::@1 -render_current::@1: scope:[render_current] from render_current render_current::@3 - [112] (byte) render_current::l#4 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@3/(byte) render_current::l#1 ) - [112] (byte) render_current::i#3 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@3/(byte) render_current::i#8 ) - [112] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@3/(byte) render_current::ypos2#1 ) - [113] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 - to:render_current::@7 -render_current::@7: scope:[render_current] from render_current::@1 render_current::@13 - [114] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 - to:render_current::@3 -render_current::@3: scope:[render_current] from render_current::@5 render_current::@7 - [115] (byte) render_current::i#8 ← phi( render_current::@5/(byte) render_current::i#10 render_current::@7/(byte) render_current::i#1 ) - [116] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [117] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 - [118] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 - to:render_current::@return -render_current::@return: scope:[render_current] from render_current::@3 + [111] (byte) render_moving::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 + to:render_moving::@1 +render_moving::@1: scope:[render_moving] from render_moving render_moving::@3 + [112] (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 ) + [112] (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 ) + [112] (byte) render_moving::ypos2#2 ← phi( render_moving/(byte) render_moving::ypos2#0 render_moving::@3/(byte) render_moving::ypos2#1 ) + [113] 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 + [114] (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 + [115] (byte) render_moving::i#8 ← phi( render_moving::@5/(byte) render_moving::i#10 render_moving::@7/(byte) render_moving::i#1 ) + [116] (byte) render_moving::ypos2#1 ← (byte) render_moving::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [117] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 + [118] if((byte) render_moving::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@1 + to:render_moving::@return +render_moving::@return: scope:[render_moving] from render_moving::@3 [119] return to:@return -render_current::@13: scope:[render_current] from render_current::@1 - [120] if((byte) render_current::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 - to:render_current::@7 -render_current::@2: scope:[render_current] from render_current::@13 - [121] (byte~) render_current::$5 ← (byte) render_screen_render#30 + (byte) render_current::ypos2#2 - [122] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) - [123] (byte) render_current::xpos#0 ← (byte) current_xpos#47 - to:render_current::@4 -render_current::@4: scope:[render_current] from render_current::@2 render_current::@5 - [124] (byte) render_current::c#2 ← phi( render_current::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@5/(byte) render_current::c#1 ) - [124] (byte) render_current::xpos#2 ← phi( render_current::@2/(byte) render_current::xpos#0 render_current::@5/(byte) render_current::xpos#1 ) - [124] (byte) render_current::i#4 ← phi( render_current::@2/(byte) render_current::i#3 render_current::@5/(byte) render_current::i#10 ) - [125] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) - [126] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 - [127] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 - to:render_current::@9 -render_current::@9: scope:[render_current] from render_current::@4 - [128] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 - to:render_current::@10 -render_current::@10: scope:[render_current] from render_current::@9 - [129] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#64 - to:render_current::@5 -render_current::@5: scope:[render_current] from render_current::@10 render_current::@4 render_current::@9 - [130] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 - [131] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 - [132] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@4 - to:render_current::@3 +render_moving::@13: scope:[render_moving] from render_moving::@1 + [120] 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 + [121] (byte~) render_moving::$5 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 + [122] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$5) + [123] (byte) render_moving::xpos#0 ← (byte) current_xpos#47 + to:render_moving::@4 +render_moving::@4: scope:[render_moving] from render_moving::@2 render_moving::@5 + [124] (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 ) + [124] (byte) render_moving::xpos#2 ← phi( render_moving::@2/(byte) render_moving::xpos#0 render_moving::@5/(byte) render_moving::xpos#1 ) + [124] (byte) render_moving::i#4 ← phi( render_moving::@2/(byte) render_moving::i#3 render_moving::@5/(byte) render_moving::i#10 ) + [125] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_moving::i#4) + [126] (byte) render_moving::i#10 ← ++ (byte) render_moving::i#4 + [127] 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 + [128] 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 + [129] *((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 + [130] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 + [131] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 + [132] 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::@13 main::@20 [133] (byte) render_screen_render#21 ← phi( main::@13/(byte~) render_screen_render#65 main::@20/(byte/signed byte/word/signed word/dword/signed dword) 64 ) to:render_playfield::@1 @@ -469,7 +471,7 @@ play_move_down::@10: scope:[play_move_down] from play_move_down::@9 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 [222] (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 ) - [223] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 + [223] if((byte) current_movedown_counter#1<(byte) current_movedown_slow#12) goto play_move_down::@4 to:play_move_down::@11 play_move_down::@11: scope:[play_move_down] from play_move_down::@2 [224] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 @@ -515,7 +517,9 @@ play_move_down::@7: scope:[play_move_down] from play_move_down::@21 play_move_d [246] (byte*) current_piece_gfx#26 ← phi( play_move_down::@21/(byte*) current_piece_gfx#16 play_move_down::@6/(byte*) current_piece_gfx#20 ) [246] (byte) current_orientation#29 ← phi( play_move_down::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#10 ) [246] (byte*) current_piece#20 ← phi( play_move_down::@21/(byte*~) current_piece#80 play_move_down::@6/(byte*) current_piece#16 ) - [246] (byte) level_bcd#21 ← phi( play_move_down::@21/(byte) level_bcd#14 play_move_down::@6/(byte) level_bcd#16 ) + [246] (byte) level_bcd#25 ← phi( play_move_down::@21/(byte) level_bcd#15 play_move_down::@6/(byte) level_bcd#20 ) + [246] (byte) current_movedown_slow#30 ← phi( play_move_down::@21/(byte) current_movedown_slow#19 play_move_down::@6/(byte) current_movedown_slow#12 ) + [246] (byte) level#24 ← phi( play_move_down::@21/(byte) level#14 play_move_down::@6/(byte) level#19 ) [246] (dword) score_bcd#20 ← phi( play_move_down::@21/(dword) score_bcd#12 play_move_down::@6/(dword) score_bcd#14 ) [246] (word) lines_bcd#20 ← phi( play_move_down::@21/(word) lines_bcd#13 play_move_down::@6/(word) lines_bcd#15 ) [246] (byte) current_ypos#29 ← phi( play_move_down::@21/(byte) current_ypos#18 play_move_down::@6/(byte) current_ypos#0 ) @@ -526,7 +530,9 @@ play_move_down::@return: scope:[play_move_down] from play_move_down::@4 play_mo [247] (byte*) current_piece_gfx#1 ← phi( play_move_down::@4/(byte*) current_piece_gfx#20 play_move_down::@7/(byte*) current_piece_gfx#26 ) [247] (byte) current_orientation#14 ← phi( play_move_down::@4/(byte) current_orientation#10 play_move_down::@7/(byte) current_orientation#29 ) [247] (byte*) current_piece#10 ← phi( play_move_down::@4/(byte*) current_piece#16 play_move_down::@7/(byte*) current_piece#20 ) - [247] (byte) level_bcd#11 ← phi( play_move_down::@4/(byte) level_bcd#16 play_move_down::@7/(byte) level_bcd#21 ) + [247] (byte) level_bcd#13 ← phi( play_move_down::@4/(byte) level_bcd#20 play_move_down::@7/(byte) level_bcd#25 ) + [247] (byte) current_movedown_slow#17 ← phi( play_move_down::@4/(byte) current_movedown_slow#12 play_move_down::@7/(byte) current_movedown_slow#30 ) + [247] (byte) level#12 ← phi( play_move_down::@4/(byte) level#19 play_move_down::@7/(byte) level#24 ) [247] (dword) score_bcd#10 ← phi( play_move_down::@4/(dword) score_bcd#14 play_move_down::@7/(dword) score_bcd#20 ) [247] (word) lines_bcd#11 ← phi( play_move_down::@4/(word) lines_bcd#15 play_move_down::@7/(word) lines_bcd#20 ) [247] (byte) current_ypos#13 ← phi( play_move_down::@4/(byte) current_ypos#21 play_move_down::@7/(byte) current_ypos#29 ) @@ -571,8 +577,8 @@ sid_rnd::@return: scope:[sid_rnd] from sid_rnd to:@return play_update_score: scope:[play_update_score] from play_move_down::@20 [266] 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::@4 -play_update_score::@4: scope:[play_update_score] from play_update_score + to:play_update_score::@3 +play_update_score::@3: scope:[play_update_score] from play_update_score [267] (byte~) play_update_score::$2 ← < (word) lines_bcd#15 [268] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 [269] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -584,489 +590,508 @@ play_update_score::@4: scope:[play_update_score] from play_update_score [275] (byte~) play_update_score::$5 ← < (word) lines_bcd#23 [276] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 [277] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return - to:play_update_score::@5 -play_update_score::@5: scope:[play_update_score] from play_update_score::@4 - [278] (byte) level_bcd#13 ← ++ (byte) level_bcd#16 - [279] (byte~) play_update_score::$9 ← (byte) level_bcd#13 & (byte/signed byte/word/signed word/dword/signed dword) 15 - [280] if((byte~) play_update_score::$9!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_update_score::@return - to:play_update_score::@6 -play_update_score::@6: scope:[play_update_score] from play_update_score::@5 - [281] (byte) level_bcd#4 ← (byte) level_bcd#13 + (byte/signed byte/word/signed word/dword/signed dword) 6 + to:play_update_score::@4 +play_update_score::@4: scope:[play_update_score] from play_update_score::@3 + [278] phi() + [279] call play_increase_level to:play_update_score::@return -play_update_score::@return: scope:[play_update_score] from play_update_score play_update_score::@4 play_update_score::@5 play_update_score::@6 - [282] (byte) level_bcd#14 ← phi( play_update_score/(byte) level_bcd#16 play_update_score::@4/(byte) level_bcd#16 play_update_score::@5/(byte) level_bcd#13 play_update_score::@6/(byte) level_bcd#4 ) - [282] (dword) score_bcd#12 ← phi( play_update_score/(dword) score_bcd#14 play_update_score::@4/(dword) score_bcd#23 play_update_score::@5/(dword) score_bcd#23 play_update_score::@6/(dword) score_bcd#23 ) - [282] (word) lines_bcd#13 ← phi( play_update_score/(word) lines_bcd#15 play_update_score::@4/(word) lines_bcd#23 play_update_score::@5/(word) lines_bcd#23 play_update_score::@6/(word) lines_bcd#23 ) - [283] return +play_update_score::@return: scope:[play_update_score] from play_update_score play_update_score::@3 play_update_score::@4 + [280] (byte) level_bcd#15 ← phi( play_update_score/(byte) level_bcd#20 play_update_score::@3/(byte) level_bcd#20 play_update_score::@4/(byte) level_bcd#18 ) + [280] (byte) current_movedown_slow#19 ← phi( play_update_score/(byte) current_movedown_slow#12 play_update_score::@3/(byte) current_movedown_slow#12 play_update_score::@4/(byte) current_movedown_slow#20 ) + [280] (byte) level#14 ← phi( play_update_score/(byte) level#19 play_update_score::@3/(byte) level#19 play_update_score::@4/(byte) level#16 ) + [280] (dword) score_bcd#12 ← phi( play_update_score/(dword) score_bcd#14 play_update_score::@3/(dword) score_bcd#23 play_update_score::@4/(dword) score_bcd#23 ) + [280] (word) lines_bcd#13 ← phi( play_update_score/(word) lines_bcd#15 play_update_score::@3/(word) lines_bcd#23 play_update_score::@4/(word) lines_bcd#23 ) + [281] return + to:@return +play_increase_level: scope:[play_increase_level] from play_update_score::@4 + [282] (byte) level#16 ← ++ (byte) level#19 + [283] if((byte) level#16>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 + to:play_increase_level::@4 +play_increase_level::@4: scope:[play_increase_level] from play_increase_level + [284] (byte) current_movedown_slow#8 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#16) + to:play_increase_level::@2 +play_increase_level::@2: scope:[play_increase_level] from play_increase_level play_increase_level::@4 + [285] (byte) current_movedown_slow#20 ← phi( play_increase_level/(byte/signed byte/word/signed word/dword/signed dword) 1 play_increase_level::@4/(byte) current_movedown_slow#8 ) + [286] (byte) level_bcd#17 ← ++ (byte) level_bcd#20 + [287] (byte~) play_increase_level::$1 ← (byte) level_bcd#17 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [288] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@return + to:play_increase_level::@6 +play_increase_level::@6: scope:[play_increase_level] from play_increase_level::@2 + [289] (byte) level_bcd#6 ← (byte) level_bcd#17 + (byte/signed byte/word/signed word/dword/signed dword) 6 + to:play_increase_level::@return +play_increase_level::@return: scope:[play_increase_level] from play_increase_level::@2 play_increase_level::@6 + [290] (byte) level_bcd#18 ← phi( play_increase_level::@2/(byte) level_bcd#17 play_increase_level::@6/(byte) level_bcd#6 ) + [291] return to:@return play_remove_lines: scope:[play_remove_lines] from play_move_down::@19 - [284] phi() + [292] phi() to:play_remove_lines::@1 play_remove_lines::@1: scope:[play_remove_lines] from play_remove_lines play_remove_lines::@4 - [285] (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 ) - [285] (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 ) - [285] (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 ) - [285] (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 ) + [293] (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 ) + [293] (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 ) + [293] (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 ) + [293] (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 - [286] (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 ) - [286] (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 ) - [286] (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 ) - [286] (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 ) - [287] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) - [288] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 - [289] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@18 + [294] (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 ) + [294] (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 ) + [294] (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 ) + [294] (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 ) + [295] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) + [296] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 + [297] 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 - [290] (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 ) - [291] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 - [292] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 - [293] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 - [294] 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 + [298] (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 ) + [299] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 + [300] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 + [301] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 + [302] 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 - [295] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 + [303] 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 - [296] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 - [297] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 + [304] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 + [305] (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 - [298] (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 ) - [298] (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 ) - [299] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 - [300] 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 + [306] (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 ) + [306] (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 ) + [307] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 + [308] 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 - [301] (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 ) - [302] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 + [309] (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 ) + [310] 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 - [303] return + [311] return to:@return play_remove_lines::@6: scope:[play_remove_lines] from play_remove_lines::@5 - [304] *((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 - [305] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 + [312] *((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 + [313] (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 - [306] phi() + [314] phi() to:play_remove_lines::@3 play_lock_current: scope:[play_lock_current] from play_move_down::@13 - [307] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [315] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_lock_current::@1 play_lock_current::@1: scope:[play_lock_current] from play_lock_current play_lock_current::@7 - [308] (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 ) - [308] (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 ) - [308] (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 ) - [309] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) - [310] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 + [316] (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 ) + [316] (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 ) + [316] (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 ) + [317] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) + [318] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 to:play_lock_current::@2 play_lock_current::@2: scope:[play_lock_current] from play_lock_current::@1 play_lock_current::@8 - [311] (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 ) - [311] (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 ) - [311] (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 ) - [312] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 - [313] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 + [319] (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 ) + [319] (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 ) + [319] (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 ) + [320] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 + [321] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 to:play_lock_current::@4 play_lock_current::@4: scope:[play_lock_current] from play_lock_current::@2 - [314] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 + [322] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 to:play_lock_current::@3 play_lock_current::@3: scope:[play_lock_current] from play_lock_current::@2 play_lock_current::@4 - [315] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 - [316] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 - [317] if((byte) play_lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@8 + [323] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 + [324] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 + [325] 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 - [318] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [319] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 - [320] if((byte) play_lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@7 + [326] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [327] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 + [328] 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 - [321] return - to:@return -play_lock_current::@7: scope:[play_lock_current] from play_lock_current::@5 - [322] (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 - [323] (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 - [324] (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 ) - [325] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 - [326] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) - [327] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 - [328] (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 [329] return to:@return +play_lock_current::@7: scope:[play_lock_current] from play_lock_current::@5 + [330] (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 + [331] (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 + [332] (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 ) + [333] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 + [334] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) + [335] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [336] (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 + [337] return + to:@return keyboard_event_get: scope:[keyboard_event_get] from main::@24 - [330] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return + [338] 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 - [331] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 - [332] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) + [339] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 + [340] (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 - [333] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) - [333] (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 ) - [334] return + [341] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) + [341] (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 ) + [342] return to:@return keyboard_event_scan: scope:[keyboard_event_scan] from main::@23 - [335] phi() + [343] phi() to:keyboard_event_scan::@1 keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@3 - [336] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) - [336] (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 ) - [336] (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 ) - [337] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 - [338] call keyboard_matrix_read - [339] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + [344] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) + [344] (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 ) + [344] (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 ) + [345] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 + [346] call keyboard_matrix_read + [347] (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 - [340] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 - [341] 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 + [348] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 + [349] 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 - [342] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 + [350] (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 - [343] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) - [343] (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 ) - [344] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 - [345] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 + [351] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) + [351] (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 ) + [352] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 + [353] 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 - [346] phi() - [347] call keyboard_event_pressed - [348] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + [354] phi() + [355] call keyboard_event_pressed + [356] (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 - [349] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 - [350] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 + [357] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + [358] 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 - [351] phi() + [359] phi() to:keyboard_event_scan::@9 keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@21 keyboard_event_scan::@26 - [352] (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 ) - [353] call keyboard_event_pressed - [354] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + [360] (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 ) + [361] call keyboard_event_pressed + [362] (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 - [355] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 - [356] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 + [363] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + [364] 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 - [357] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 + [365] (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 - [358] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) - [359] call keyboard_event_pressed - [360] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + [366] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) + [367] call keyboard_event_pressed + [368] (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 - [361] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 - [362] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 + [369] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + [370] 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 - [363] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 + [371] (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 - [364] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) - [365] call keyboard_event_pressed - [366] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + [372] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) + [373] call keyboard_event_pressed + [374] (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 - [367] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 - [368] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return + [375] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + [376] 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 - [369] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 + [377] (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 - [370] return + [378] return to:@return keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@25 keyboard_event_scan::@5 - [371] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) - [371] (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 ) - [371] (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 ) - [372] (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) - [373] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) - [374] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 + [379] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) + [379] (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 ) + [379] (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 ) + [380] (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) + [381] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) + [382] 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 - [375] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 + [383] 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 - [376] (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) - [377] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 + [384] (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) + [385] 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 - [378] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 - [379] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 + [386] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 + [387] (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 - [380] (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 ) - [381] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 - [382] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 - [383] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 + [388] (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 ) + [389] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 + [390] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 + [391] 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 - [384] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 + [392] *((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 - [385] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 - [386] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 - [387] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 + [393] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 + [394] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 + [395] (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 - [388] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) - [389] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) + [396] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) + [397] (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 - [390] return + [398] return to:@return render_show: scope:[render_show] from main::@6 - [391] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 + [399] 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 - [392] phi() + [400] phi() to:render_show::@2 render_show::@2: scope:[render_show] from render_show::toD0181 render_show::toD0182 - [393] (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 ) - [394] *((const byte*) D018#0) ← (byte) render_show::d018val#3 - [395] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 + [401] (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 ) + [402] *((const byte*) D018#0) ← (byte) render_show::d018val#3 + [403] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 to:render_show::@return render_show::@return: scope:[render_show] from render_show::@2 - [396] return + [404] return to:@return render_show::toD0181: scope:[render_show] from render_show - [397] phi() + [405] phi() to:render_show::@2 play_init: scope:[play_init] from main::@18 - [398] phi() + [406] phi() to:play_init::@1 play_init::@1: scope:[play_init] from play_init play_init::@1 - [399] (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 ) - [399] (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 ) - [399] (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 ) - [400] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [401] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 - [402] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 - [403] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 - [404] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 - [405] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 - [406] 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 + [407] (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 ) + [407] (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 ) + [407] (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 ) + [408] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [409] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 + [410] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 + [411] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 + [412] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 + [413] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 + [414] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_init::@1 to:play_init::@2 play_init::@2: scope:[play_init] from play_init::@1 - [407] *((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 + [415] *((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 + [416] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0) to:play_init::@return play_init::@return: scope:[play_init] from play_init::@2 - [408] return + [417] return to:@return sprites_irq_init: scope:[sprites_irq_init] from main::@17 asm { sei } - [410] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 + [419] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 asm { ldaCIA1_INTERRUPT } - [412] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 - [413] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 - [414] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [415] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 - [416] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 - [417] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 - [418] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() + [421] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 + [422] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 + [423] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 + [424] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 + [425] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 + [426] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 + [427] *((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 - [420] return + [429] return to:@return sprites_init: scope:[sprites_init] from main::@16 - [421] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 - [422] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [423] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) - [424] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) + [430] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + [431] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [432] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) + [433] *((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 - [425] (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 ) - [425] (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 ) - [426] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [427] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 - [428] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 - [429] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 - [430] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 - [431] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 + [434] (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 ) + [434] (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 ) + [435] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [436] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 + [437] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 + [438] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 + [439] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 + [440] 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 - [432] return + [441] return to:@return render_init: scope:[render_init] from main::@15 - [433] phi() + [442] phi() to:render_init::vicSelectGfxBank1 render_init::vicSelectGfxBank1: scope:[render_init] from render_init - [434] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [443] *((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 - [435] phi() + [444] phi() to:render_init::vicSelectGfxBank1_@1 render_init::vicSelectGfxBank1_@1: scope:[render_init] from render_init::vicSelectGfxBank1_toDd001 - [436] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 + [445] *((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 - [437] *((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 - [438] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 - [439] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 - [440] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 - [441] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 - [442] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 - [443] call render_screen_original + [446] *((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 + [447] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 + [448] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 + [449] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 + [450] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 + [451] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 + [452] call render_screen_original to:render_init::@4 render_init::@4: scope:[render_init] from render_init::@3 - [444] phi() - [445] call render_screen_original + [453] phi() + [454] call render_screen_original to:render_init::@1 render_init::@1: scope:[render_init] from render_init::@1 render_init::@4 - [446] (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 ) - [446] (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 ) - [446] (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 ) - [447] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [448] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 - [449] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [450] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 - [451] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [452] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [453] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 - [454] 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 + [455] (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 ) + [455] (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 ) + [455] (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 ) + [456] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [457] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 + [458] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [459] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 + [460] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [461] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [462] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 + [463] 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 - [455] return + [464] return to:@return render_screen_original: scope:[render_screen_original] from render_init::@3 render_init::@4 - [456] (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 ) + [465] (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 - [457] (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 ) - [457] (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 ) - [457] (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 ) - [457] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS#0 render_screen_original::@7/(byte*) render_screen_original::cols#3 ) - [457] (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 ) + [466] (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 ) + [466] (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 ) + [466] (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 ) + [466] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS#0 render_screen_original::@7/(byte*) render_screen_original::cols#3 ) + [466] (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 - [458] (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 ) - [458] (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 ) - [458] (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 ) - [459] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 - [460] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 - [461] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 - [462] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 - [463] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 - [464] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 + [467] (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 ) + [467] (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 ) + [467] (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 ) + [468] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 + [469] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 + [470] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 + [471] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 + [472] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 + [473] 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 - [465] (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 ) - [465] (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 ) - [465] (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 ) - [465] (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 ) - [465] (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 ) - [466] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) - [467] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 - [468] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 - [469] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) - [470] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 - [471] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 - [472] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 - [473] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 + [474] (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 ) + [474] (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 ) + [474] (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 ) + [474] (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 ) + [474] (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 ) + [475] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) + [476] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 + [477] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 + [478] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) + [479] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 + [480] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 + [481] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 + [482] 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 - [474] (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 ) - [474] (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 ) - [474] (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 ) - [475] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 - [476] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 - [477] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 - [478] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 - [479] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 - [480] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 + [483] (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 ) + [483] (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 ) + [483] (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 ) + [484] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 + [485] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 + [486] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 + [487] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 + [488] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 + [489] 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 - [481] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 - [482] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 + [490] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 + [491] 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 - [483] return + [492] return to:@return sid_rnd_init: scope:[sid_rnd_init] from main - [484] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 - [485] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 + [493] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 + [494] *((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 - [486] return + [495] return to:@return sprites_irq: scope:[sprites_irq] from asm { cld } - [488] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 - [489] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 - [490] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 - [491] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 - [492] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 + [497] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 + [498] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 + [499] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 + [500] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 + [501] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 to:sprites_irq::@1 sprites_irq::@1: scope:[sprites_irq] from sprites_irq sprites_irq::@1 - [493] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 + [502] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 to:sprites_irq::@7 sprites_irq::@7: scope:[sprites_irq] from sprites_irq::@1 - [494] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 - [495] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 + [503] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 + [504] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 to:sprites_irq::@8 sprites_irq::@8: scope:[sprites_irq] from sprites_irq::@7 - [496] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 - [497] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 - [498] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 - [499] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 - [500] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 - [501] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 + [505] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 + [506] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 + [507] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 + [508] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 + [509] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 + [510] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 to:sprites_irq::@3 sprites_irq::@3: scope:[sprites_irq] from sprites_irq::@2 sprites_irq::@8 - [502] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 - [503] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 + [511] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 + [512] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 to:sprites_irq::@10 sprites_irq::@10: scope:[sprites_irq] from sprites_irq::@3 - [504] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [505] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [506] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 + [513] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [514] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [515] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:sprites_irq::@5 sprites_irq::@5: scope:[sprites_irq] from sprites_irq::@10 sprites_irq::@13 - [507] (byte) irq_raster_next#13 ← phi( sprites_irq::@10/(byte) irq_raster_next#2 sprites_irq::@13/(byte) irq_raster_next#1 ) - [508] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 - [509] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 - [510] if((byte~) sprites_irq::$4!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto sprites_irq::@6 + [516] (byte) irq_raster_next#13 ← phi( sprites_irq::@10/(byte) irq_raster_next#2 sprites_irq::@13/(byte) irq_raster_next#1 ) + [517] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 + [518] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [519] if((byte~) sprites_irq::$4!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto sprites_irq::@6 to:sprites_irq::@12 sprites_irq::@12: scope:[sprites_irq] from sprites_irq::@5 - [511] (byte) sprites_irq::raster_next#1 ← (byte) sprites_irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [520] (byte) sprites_irq::raster_next#1 ← (byte) sprites_irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 to:sprites_irq::@6 sprites_irq::@6: scope:[sprites_irq] from sprites_irq::@12 sprites_irq::@5 - [512] (byte) sprites_irq::raster_next#2 ← phi( sprites_irq::@12/(byte) sprites_irq::raster_next#1 sprites_irq::@5/(byte) sprites_irq::raster_next#0 ) - [513] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 - [514] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 + [521] (byte) sprites_irq::raster_next#2 ← phi( sprites_irq::@12/(byte) sprites_irq::raster_next#1 sprites_irq::@5/(byte) sprites_irq::raster_next#0 ) + [522] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 + [523] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 to:sprites_irq::@return sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@6 - [515] return + [524] return to:@return sprites_irq::@4: scope:[sprites_irq] from sprites_irq::@3 - [516] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [517] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 - [518] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 + [525] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [526] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 + [527] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 to:sprites_irq::toSpritePtr2 sprites_irq::toSpritePtr2: scope:[sprites_irq] from sprites_irq::@4 - [519] phi() + [528] phi() to:sprites_irq::@13 sprites_irq::@13: scope:[sprites_irq] from sprites_irq::toSpritePtr2 - [520] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 + [529] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 to:sprites_irq::@5 sprites_irq::@2: scope:[sprites_irq] from sprites_irq::@7 - [521] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 - [522] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 - [523] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 - [524] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 - [525] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 - [526] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 + [530] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 + [531] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 + [532] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 + [533] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 + [534] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 + [535] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 to:sprites_irq::@3 diff --git a/src/test/ref/examples/tetris/tetris.log b/src/test/ref/examples/tetris/tetris.log index 9ac2a9e4b..dc8a0fd26 100644 --- a/src/test/ref/examples/tetris/tetris.log +++ b/src/test/ref/examples/tetris/tetris.log @@ -514,7 +514,8 @@ sid_rnd::@return: scope:[sid_rnd] from sid_rnd (byte) render_screen_showing#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (dword) score_bcd#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (word) lines_bcd#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte) level_bcd#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) level_bcd#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte) level#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 kickasm(location (byte*) PLAYFIELD_CHARSET#0) {{ .fill 8,$00 // Place a filled char at the start of the charset .import binary "playfield-screen.imap" }} @@ -705,28 +706,28 @@ render_screen_swap::@return: scope:[render_screen_swap] from render_screen_swap return to:@return render_score: scope:[render_score] from main::@30 - (byte) level_bcd#76 ← phi( main::@30/(byte) level_bcd#59 ) - (word) lines_bcd#61 ← phi( main::@30/(word) lines_bcd#60 ) - (dword) score_bcd#29 ← phi( main::@30/(dword) score_bcd#40 ) + (byte) level_bcd#84 ← phi( main::@30/(byte) level_bcd#67 ) + (word) lines_bcd#60 ← phi( main::@30/(word) lines_bcd#59 ) + (dword) score_bcd#28 ← phi( main::@30/(dword) score_bcd#39 ) (byte) render_screen_render#12 ← phi( main::@30/(byte) render_screen_render#20 ) (bool~) render_score::$0 ← (byte) render_screen_render#12 == (byte/signed byte/word/signed word/dword/signed dword) 0 if((bool~) render_score::$0) goto render_score::@1 to:render_score::@3 render_score::@1: scope:[render_score] from render_score - (byte) level_bcd#67 ← phi( render_score/(byte) level_bcd#76 ) - (word) lines_bcd#50 ← phi( render_score/(word) lines_bcd#61 ) - (dword) score_bcd#16 ← phi( render_score/(dword) score_bcd#29 ) + (byte) level_bcd#75 ← phi( render_score/(byte) level_bcd#84 ) + (word) lines_bcd#49 ← phi( render_score/(word) lines_bcd#60 ) + (dword) score_bcd#16 ← phi( render_score/(dword) score_bcd#28 ) (byte*) render_score::screen#0 ← (byte*) PLAYFIELD_SCREEN_1#0 to:render_score::@2 render_score::@3: scope:[render_score] from render_score - (byte) level_bcd#68 ← phi( render_score/(byte) level_bcd#76 ) - (word) lines_bcd#51 ← phi( render_score/(word) lines_bcd#61 ) - (dword) score_bcd#17 ← phi( render_score/(dword) score_bcd#29 ) + (byte) level_bcd#76 ← phi( render_score/(byte) level_bcd#84 ) + (word) lines_bcd#50 ← phi( render_score/(word) lines_bcd#60 ) + (dword) score_bcd#17 ← phi( render_score/(dword) score_bcd#28 ) (byte*) render_score::screen#1 ← (byte*) PLAYFIELD_SCREEN_2#0 to:render_score::@2 render_score::@2: scope:[render_score] from render_score::@1 render_score::@3 - (byte) level_bcd#60 ← phi( render_score::@1/(byte) level_bcd#67 render_score::@3/(byte) level_bcd#68 ) - (word) lines_bcd#40 ← phi( render_score::@1/(word) lines_bcd#50 render_score::@3/(word) lines_bcd#51 ) + (byte) level_bcd#68 ← phi( render_score::@1/(byte) level_bcd#75 render_score::@3/(byte) level_bcd#76 ) + (word) lines_bcd#39 ← phi( render_score::@1/(word) lines_bcd#49 render_score::@3/(word) lines_bcd#50 ) (byte*) render_score::screen#2 ← phi( render_score::@1/(byte*) render_score::screen#0 render_score::@3/(byte*) render_score::screen#1 ) (dword) score_bcd#8 ← phi( render_score::@1/(dword) score_bcd#16 render_score::@3/(dword) score_bcd#17 ) (dword*~) render_score::$1 ← & (dword) score_bcd#8 @@ -742,8 +743,8 @@ render_score::@2: scope:[render_score] from render_score::@1 render_score::@3 call render_bcd to:render_score::@5 render_score::@5: scope:[render_score] from render_score::@2 - (byte) level_bcd#50 ← phi( render_score::@2/(byte) level_bcd#60 ) - (word) lines_bcd#29 ← phi( render_score::@2/(word) lines_bcd#40 ) + (byte) level_bcd#58 ← phi( render_score::@2/(byte) level_bcd#68 ) + (word) lines_bcd#28 ← phi( render_score::@2/(word) lines_bcd#39 ) (byte*) render_score::score_bytes#1 ← phi( render_score::@2/(byte*) render_score::score_bytes#0 ) (byte*) render_score::screen#3 ← phi( render_score::@2/(byte*) render_score::screen#2 ) (word) render_score::score_offset#1 ← phi( render_score::@2/(word) render_score::score_offset#0 ) @@ -755,8 +756,8 @@ render_score::@5: scope:[render_score] from render_score::@2 call render_bcd to:render_score::@6 render_score::@6: scope:[render_score] from render_score::@5 - (byte) level_bcd#40 ← phi( render_score::@5/(byte) level_bcd#50 ) - (word) lines_bcd#17 ← phi( render_score::@5/(word) lines_bcd#29 ) + (byte) level_bcd#48 ← phi( render_score::@5/(byte) level_bcd#58 ) + (word) lines_bcd#17 ← phi( render_score::@5/(word) lines_bcd#28 ) (byte*) render_score::score_bytes#2 ← phi( render_score::@5/(byte*) render_score::score_bytes#1 ) (byte*) render_score::screen#4 ← phi( render_score::@5/(byte*) render_score::screen#3 ) (word) render_score::score_offset#2 ← phi( render_score::@5/(word) render_score::score_offset#1 ) @@ -768,7 +769,7 @@ render_score::@6: scope:[render_score] from render_score::@5 call render_bcd to:render_score::@7 render_score::@7: scope:[render_score] from render_score::@6 - (byte) level_bcd#29 ← phi( render_score::@6/(byte) level_bcd#40 ) + (byte) level_bcd#35 ← phi( render_score::@6/(byte) level_bcd#48 ) (byte*) render_score::screen#5 ← phi( render_score::@6/(byte*) render_score::screen#4 ) (word) lines_bcd#8 ← phi( render_score::@6/(word) lines_bcd#17 ) (byte/signed byte/word/signed word/dword/signed dword~) render_score::$10 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -782,7 +783,7 @@ render_score::@7: scope:[render_score] from render_score::@6 call render_bcd to:render_score::@8 render_score::@8: scope:[render_score] from render_score::@7 - (byte) level_bcd#18 ← phi( render_score::@7/(byte) level_bcd#29 ) + (byte) level_bcd#22 ← phi( render_score::@7/(byte) level_bcd#35 ) (byte*) render_score::screen#6 ← phi( render_score::@7/(byte*) render_score::screen#5 ) (word) lines_bcd#9 ← phi( render_score::@7/(word) lines_bcd#8 ) (word) render_score::lines_offset#1 ← phi( render_score::@7/(word) render_score::lines_offset#0 ) @@ -795,14 +796,14 @@ render_score::@8: scope:[render_score] from render_score::@7 call render_bcd to:render_score::@9 render_score::@9: scope:[render_score] from render_score::@8 - (byte) level_bcd#9 ← phi( render_score::@8/(byte) level_bcd#18 ) + (byte) level_bcd#11 ← phi( render_score::@8/(byte) level_bcd#22 ) (byte*) render_score::screen#7 ← phi( render_score::@8/(byte*) render_score::screen#6 ) (word/signed word/dword/signed dword~) render_score::$17 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 19 (word/signed dword/dword/signed word~) render_score::$18 ← (word/signed word/dword/signed dword~) render_score::$17 + (byte/signed byte/word/signed word/dword/signed dword) 31 (word) render_score::level_offset#0 ← (word/signed dword/dword/signed word~) render_score::$18 (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#7 (word) render_bcd::offset#5 ← (word) render_score::level_offset#0 - (byte) render_bcd::bcd#5 ← (byte) level_bcd#9 + (byte) render_bcd::bcd#5 ← (byte) level_bcd#11 (byte) render_bcd::only_low#5 ← (byte/signed byte/word/signed word/dword/signed dword) 0 call render_bcd to:render_score::@10 @@ -968,147 +969,148 @@ render_playfield::@3: scope:[render_playfield] from render_playfield::@2 render_playfield::@return: scope:[render_playfield] from render_playfield::@3 return to:@return -render_current: scope:[render_current] from main::@21 main::@29 +render_moving: scope:[render_moving] from main::@21 main::@29 (byte) current_piece_char#64 ← phi( main::@21/(byte) current_piece_char#48 main::@29/(byte) current_piece_char#71 ) (byte*) current_piece_gfx#53 ← phi( main::@21/(byte*) current_piece_gfx#65 main::@29/(byte*) current_piece_gfx#68 ) (byte) current_xpos#47 ← phi( main::@21/(byte) current_xpos#66 main::@29/(byte) current_xpos#67 ) (byte) render_screen_render#30 ← phi( main::@21/(byte) render_screen_render#37 main::@29/(byte) render_screen_render#35 ) (byte) current_ypos#9 ← phi( main::@21/(byte) current_ypos#23 main::@29/(byte) current_ypos#24 ) - (byte) render_current::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte~) render_current::$0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) render_current::ypos2#0 ← (byte~) render_current::$0 - (byte) render_current::l#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - to:render_current::@1 -render_current::@1: scope:[render_current] from render_current render_current::@3 - (byte) current_piece_char#52 ← phi( render_current/(byte) current_piece_char#64 render_current::@3/(byte) current_piece_char#65 ) - (byte) render_current::l#5 ← phi( render_current/(byte) render_current::l#0 render_current::@3/(byte) render_current::l#1 ) - (byte*) current_piece_gfx#36 ← phi( render_current/(byte*) current_piece_gfx#53 render_current::@3/(byte*) current_piece_gfx#54 ) - (byte) render_current::i#5 ← phi( render_current/(byte) render_current::i#0 render_current::@3/(byte) render_current::i#8 ) - (byte) current_xpos#29 ← phi( render_current/(byte) current_xpos#47 render_current::@3/(byte) current_xpos#48 ) - (byte) render_screen_render#23 ← phi( render_current/(byte) render_screen_render#30 render_current::@3/(byte) render_screen_render#31 ) - (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@3/(byte) render_current::ypos2#1 ) - (bool~) render_current::$1 ← (byte) render_current::ypos2#2 > (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte/signed word/word/dword/signed dword~) render_current::$2 ← (byte/signed byte/word/signed word/dword/signed dword) 2 * (byte) PLAYFIELD_LINES#0 - (bool~) render_current::$3 ← (byte) render_current::ypos2#2 < (byte/signed word/word/dword/signed dword~) render_current::$2 - (bool~) render_current::$4 ← (bool~) render_current::$1 && (bool~) render_current::$3 - if((bool~) render_current::$4) goto render_current::@2 - to:render_current::@7 -render_current::@2: scope:[render_current] from render_current::@1 - (byte) current_piece_char#38 ← phi( render_current::@1/(byte) current_piece_char#52 ) - (byte) render_current::l#9 ← phi( render_current::@1/(byte) render_current::l#5 ) - (byte) render_current::i#6 ← phi( render_current::@1/(byte) render_current::i#5 ) - (byte*) current_piece_gfx#22 ← phi( render_current::@1/(byte*) current_piece_gfx#36 ) - (byte) current_xpos#12 ← phi( render_current::@1/(byte) current_xpos#29 ) - (byte) render_current::ypos2#3 ← phi( render_current::@1/(byte) render_current::ypos2#2 ) - (byte) render_screen_render#14 ← phi( render_current::@1/(byte) render_screen_render#23 ) - (byte~) render_current::$5 ← (byte) render_screen_render#14 + (byte) render_current::ypos2#3 - (byte*) render_current::screen_line#0 ← *((byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) - (byte) render_current::xpos#0 ← (byte) current_xpos#12 - (byte) render_current::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - to:render_current::@4 -render_current::@7: scope:[render_current] from render_current::@1 - (byte) current_piece_char#72 ← phi( render_current::@1/(byte) current_piece_char#52 ) - (byte*) current_piece_gfx#69 ← phi( render_current::@1/(byte*) current_piece_gfx#36 ) - (byte) current_xpos#69 ← phi( render_current::@1/(byte) current_xpos#29 ) - (byte) render_screen_render#39 ← phi( render_current::@1/(byte) render_screen_render#23 ) - (byte) render_current::l#4 ← phi( render_current::@1/(byte) render_current::l#5 ) - (byte) render_current::ypos2#6 ← phi( render_current::@1/(byte) render_current::ypos2#2 ) - (byte) render_current::i#3 ← phi( render_current::@1/(byte) render_current::i#5 ) - (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 - to:render_current::@3 -render_current::@3: scope:[render_current] from render_current::@5 render_current::@7 - (byte) current_piece_char#65 ← phi( render_current::@5/(byte) current_piece_char#39 render_current::@7/(byte) current_piece_char#72 ) - (byte*) current_piece_gfx#54 ← phi( render_current::@5/(byte*) current_piece_gfx#23 render_current::@7/(byte*) current_piece_gfx#69 ) - (byte) render_current::i#8 ← phi( render_current::@5/(byte) render_current::i#7 render_current::@7/(byte) render_current::i#1 ) - (byte) current_xpos#48 ← phi( render_current::@5/(byte) current_xpos#68 render_current::@7/(byte) current_xpos#69 ) - (byte) render_screen_render#31 ← phi( render_current::@5/(byte) render_screen_render#38 render_current::@7/(byte) render_screen_render#39 ) - (byte) render_current::l#2 ← phi( render_current::@5/(byte) render_current::l#3 render_current::@7/(byte) render_current::l#4 ) - (byte) render_current::ypos2#4 ← phi( render_current::@5/(byte) render_current::ypos2#5 render_current::@7/(byte) render_current::ypos2#6 ) - (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#4 + (byte/signed byte/word/signed word/dword/signed dword) 2 - (byte) render_current::l#1 ← (byte) render_current::l#2 + rangenext(0,3) - (bool~) render_current::$11 ← (byte) render_current::l#1 != rangelast(0,3) - if((bool~) render_current::$11) goto render_current::@1 - to:render_current::@return -render_current::@4: scope:[render_current] from render_current::@2 render_current::@5 - (byte) current_xpos#83 ← phi( render_current::@2/(byte) current_xpos#12 render_current::@5/(byte) current_xpos#68 ) - (byte) render_screen_render#44 ← phi( render_current::@2/(byte) render_screen_render#14 render_current::@5/(byte) render_screen_render#38 ) - (byte*) render_current::screen_line#3 ← phi( render_current::@2/(byte*) render_current::screen_line#0 render_current::@5/(byte*) render_current::screen_line#4 ) - (byte) current_piece_char#26 ← phi( render_current::@2/(byte) current_piece_char#38 render_current::@5/(byte) current_piece_char#39 ) - (byte) render_current::l#7 ← phi( render_current::@2/(byte) render_current::l#9 render_current::@5/(byte) render_current::l#3 ) - (byte) render_current::ypos2#8 ← phi( render_current::@2/(byte) render_current::ypos2#3 render_current::@5/(byte) render_current::ypos2#5 ) - (byte) render_current::c#4 ← phi( render_current::@2/(byte) render_current::c#0 render_current::@5/(byte) render_current::c#1 ) - (byte) render_current::xpos#5 ← phi( render_current::@2/(byte) render_current::xpos#0 render_current::@5/(byte) render_current::xpos#1 ) - (byte) render_current::i#4 ← phi( render_current::@2/(byte) render_current::i#6 render_current::@5/(byte) render_current::i#7 ) - (byte*) current_piece_gfx#11 ← phi( render_current::@2/(byte*) current_piece_gfx#22 render_current::@5/(byte*) current_piece_gfx#23 ) - (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#11 + (byte) render_current::i#4) - (byte) render_current::i#2 ← ++ (byte) render_current::i#4 - (bool~) render_current::$6 ← (byte) render_current::current_cell#0 != (byte/signed byte/word/signed word/dword/signed dword) 0 - (bool~) render_current::$7 ← ! (bool~) render_current::$6 - if((bool~) render_current::$7) goto render_current::@5 - to:render_current::@9 -render_current::@5: scope:[render_current] from render_current::@10 render_current::@4 render_current::@6 - (byte*) render_current::screen_line#4 ← phi( render_current::@10/(byte*) render_current::screen_line#1 render_current::@4/(byte*) render_current::screen_line#3 render_current::@6/(byte*) render_current::screen_line#5 ) - (byte) current_piece_char#39 ← phi( render_current::@10/(byte) current_piece_char#8 render_current::@4/(byte) current_piece_char#26 render_current::@6/(byte) current_piece_char#53 ) - (byte) current_xpos#68 ← phi( render_current::@10/(byte) current_xpos#82 render_current::@4/(byte) current_xpos#83 render_current::@6/(byte) current_xpos#84 ) - (byte) render_screen_render#38 ← phi( render_current::@10/(byte) render_screen_render#43 render_current::@4/(byte) render_screen_render#44 render_current::@6/(byte) render_screen_render#45 ) - (byte) render_current::i#7 ← phi( render_current::@10/(byte) render_current::i#9 render_current::@4/(byte) render_current::i#2 render_current::@6/(byte) render_current::i#10 ) - (byte*) current_piece_gfx#23 ← phi( render_current::@10/(byte*) current_piece_gfx#37 render_current::@4/(byte*) current_piece_gfx#11 render_current::@6/(byte*) current_piece_gfx#38 ) - (byte) render_current::l#3 ← phi( render_current::@10/(byte) render_current::l#6 render_current::@4/(byte) render_current::l#7 render_current::@6/(byte) render_current::l#8 ) - (byte) render_current::ypos2#5 ← phi( render_current::@10/(byte) render_current::ypos2#7 render_current::@4/(byte) render_current::ypos2#8 render_current::@6/(byte) render_current::ypos2#9 ) - (byte) render_current::c#2 ← phi( render_current::@10/(byte) render_current::c#3 render_current::@4/(byte) render_current::c#4 render_current::@6/(byte) render_current::c#5 ) - (byte) render_current::xpos#2 ← phi( render_current::@10/(byte) render_current::xpos#4 render_current::@4/(byte) render_current::xpos#5 render_current::@6/(byte) render_current::xpos#6 ) - (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 - (byte) render_current::c#1 ← (byte) render_current::c#2 + rangenext(0,3) - (bool~) render_current::$10 ← (byte) render_current::c#1 != rangelast(0,3) - if((bool~) render_current::$10) goto render_current::@4 - to:render_current::@3 -render_current::@9: scope:[render_current] from render_current::@4 - (byte) current_xpos#92 ← phi( render_current::@4/(byte) current_xpos#83 ) - (byte) render_screen_render#49 ← phi( render_current::@4/(byte) render_screen_render#44 ) - (byte) render_current::i#11 ← phi( render_current::@4/(byte) render_current::i#2 ) - (byte*) current_piece_gfx#55 ← phi( render_current::@4/(byte*) current_piece_gfx#11 ) - (byte) render_current::l#10 ← phi( render_current::@4/(byte) render_current::l#7 ) - (byte) render_current::ypos2#10 ← phi( render_current::@4/(byte) render_current::ypos2#8 ) - (byte) render_current::c#6 ← phi( render_current::@4/(byte) render_current::c#4 ) - (byte*) render_current::screen_line#2 ← phi( render_current::@4/(byte*) render_current::screen_line#3 ) - (byte) current_piece_char#17 ← phi( render_current::@4/(byte) current_piece_char#26 ) - (byte) render_current::xpos#3 ← phi( render_current::@4/(byte) render_current::xpos#5 ) - (bool~) render_current::$8 ← (byte) render_current::xpos#3 < (byte) PLAYFIELD_COLS#0 - (bool~) render_current::$9 ← ! (bool~) render_current::$8 - if((bool~) render_current::$9) goto render_current::@6 - to:render_current::@10 -render_current::@6: scope:[render_current] from render_current::@9 - (byte*) render_current::screen_line#5 ← phi( render_current::@9/(byte*) render_current::screen_line#2 ) - (byte) current_piece_char#53 ← phi( render_current::@9/(byte) current_piece_char#17 ) - (byte) current_xpos#84 ← phi( render_current::@9/(byte) current_xpos#92 ) - (byte) render_screen_render#45 ← phi( render_current::@9/(byte) render_screen_render#49 ) - (byte) render_current::i#10 ← phi( render_current::@9/(byte) render_current::i#11 ) - (byte*) current_piece_gfx#38 ← phi( render_current::@9/(byte*) current_piece_gfx#55 ) - (byte) render_current::l#8 ← phi( render_current::@9/(byte) render_current::l#10 ) - (byte) render_current::ypos2#9 ← phi( render_current::@9/(byte) render_current::ypos2#10 ) - (byte) render_current::c#5 ← phi( render_current::@9/(byte) render_current::c#6 ) - (byte) render_current::xpos#6 ← phi( render_current::@9/(byte) render_current::xpos#3 ) - to:render_current::@5 -render_current::@10: scope:[render_current] from render_current::@9 - (byte) current_xpos#82 ← phi( render_current::@9/(byte) current_xpos#92 ) - (byte) render_screen_render#43 ← phi( render_current::@9/(byte) render_screen_render#49 ) - (byte) render_current::i#9 ← phi( render_current::@9/(byte) render_current::i#11 ) - (byte*) current_piece_gfx#37 ← phi( render_current::@9/(byte*) current_piece_gfx#55 ) - (byte) render_current::l#6 ← phi( render_current::@9/(byte) render_current::l#10 ) - (byte) render_current::ypos2#7 ← phi( render_current::@9/(byte) render_current::ypos2#10 ) - (byte) render_current::c#3 ← phi( render_current::@9/(byte) render_current::c#6 ) - (byte) render_current::xpos#4 ← phi( render_current::@9/(byte) render_current::xpos#3 ) - (byte*) render_current::screen_line#1 ← phi( render_current::@9/(byte*) render_current::screen_line#2 ) - (byte) current_piece_char#8 ← phi( render_current::@9/(byte) current_piece_char#17 ) - *((byte*) render_current::screen_line#1 + (byte) render_current::xpos#4) ← (byte) current_piece_char#8 - to:render_current::@5 -render_current::@return: scope:[render_current] from render_current::@3 + (byte) render_moving::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) render_moving::$0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) render_moving::ypos2#0 ← (byte~) render_moving::$0 + (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#52 ← 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#36 ← phi( render_moving/(byte*) current_piece_gfx#53 render_moving::@3/(byte*) current_piece_gfx#54 ) + (byte) render_moving::i#5 ← phi( render_moving/(byte) render_moving::i#0 render_moving::@3/(byte) render_moving::i#8 ) + (byte) current_xpos#29 ← phi( render_moving/(byte) current_xpos#47 render_moving::@3/(byte) current_xpos#48 ) + (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 +render_moving::@2: scope:[render_moving] from render_moving::@1 + (byte) current_piece_char#38 ← phi( render_moving::@1/(byte) current_piece_char#52 ) + (byte) render_moving::l#9 ← phi( render_moving::@1/(byte) render_moving::l#5 ) + (byte) render_moving::i#6 ← phi( render_moving::@1/(byte) render_moving::i#5 ) + (byte*) current_piece_gfx#22 ← phi( render_moving::@1/(byte*) current_piece_gfx#36 ) + (byte) current_xpos#12 ← phi( render_moving::@1/(byte) current_xpos#29 ) + (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::xpos#0 ← (byte) current_xpos#12 + (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#72 ← phi( render_moving::@1/(byte) current_piece_char#52 ) + (byte*) current_piece_gfx#69 ← phi( render_moving::@1/(byte*) current_piece_gfx#36 ) + (byte) current_xpos#69 ← phi( render_moving::@1/(byte) current_xpos#29 ) + (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 ) + (byte) render_moving::ypos2#6 ← phi( render_moving::@1/(byte) render_moving::ypos2#2 ) + (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#65 ← phi( render_moving::@5/(byte) current_piece_char#39 render_moving::@7/(byte) current_piece_char#72 ) + (byte*) current_piece_gfx#54 ← phi( render_moving::@5/(byte*) current_piece_gfx#23 render_moving::@7/(byte*) current_piece_gfx#69 ) + (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#48 ← phi( render_moving::@5/(byte) current_xpos#68 render_moving::@7/(byte) current_xpos#69 ) + (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 ) + (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 + to:render_moving::@return +render_moving::@4: scope:[render_moving] from render_moving::@2 render_moving::@5 + (byte) current_xpos#83 ← phi( render_moving::@2/(byte) current_xpos#12 render_moving::@5/(byte) current_xpos#68 ) + (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#26 ← phi( render_moving::@2/(byte) current_piece_char#38 render_moving::@5/(byte) current_piece_char#39 ) + (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) 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#11 ← phi( render_moving::@2/(byte*) current_piece_gfx#22 render_moving::@5/(byte*) current_piece_gfx#23 ) + (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#11 + (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#39 ← phi( render_moving::@10/(byte) current_piece_char#8 render_moving::@4/(byte) current_piece_char#26 render_moving::@6/(byte) current_piece_char#53 ) + (byte) current_xpos#68 ← phi( render_moving::@10/(byte) current_xpos#82 render_moving::@4/(byte) current_xpos#83 render_moving::@6/(byte) current_xpos#84 ) + (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#23 ← phi( render_moving::@10/(byte*) current_piece_gfx#37 render_moving::@4/(byte*) current_piece_gfx#11 render_moving::@6/(byte*) current_piece_gfx#38 ) + (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 ) + (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 + to:render_moving::@3 +render_moving::@9: scope:[render_moving] from render_moving::@4 + (byte) current_xpos#92 ← phi( render_moving::@4/(byte) current_xpos#83 ) + (byte) render_screen_render#49 ← 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#55 ← phi( render_moving::@4/(byte*) current_piece_gfx#11 ) + (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#17 ← phi( render_moving::@4/(byte) current_piece_char#26 ) + (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#53 ← phi( render_moving::@9/(byte) current_piece_char#17 ) + (byte) current_xpos#84 ← phi( render_moving::@9/(byte) current_xpos#92 ) + (byte) render_screen_render#45 ← phi( render_moving::@9/(byte) render_screen_render#49 ) + (byte) render_moving::i#10 ← phi( render_moving::@9/(byte) render_moving::i#11 ) + (byte*) current_piece_gfx#38 ← phi( render_moving::@9/(byte*) current_piece_gfx#55 ) + (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#82 ← phi( render_moving::@9/(byte) current_xpos#92 ) + (byte) render_screen_render#43 ← phi( render_moving::@9/(byte) render_screen_render#49 ) + (byte) render_moving::i#9 ← phi( render_moving::@9/(byte) render_moving::i#11 ) + (byte*) current_piece_gfx#37 ← phi( render_moving::@9/(byte*) current_piece_gfx#55 ) + (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#8 ← phi( render_moving::@9/(byte) current_piece_char#17 ) + *((byte*) render_moving::screen_line#1 + (byte) render_moving::xpos#4) ← (byte) current_piece_char#8 + to:render_moving::@5 +render_moving::@return: scope:[render_moving] from render_moving::@3 return to:@return @22: scope:[] from @14 - (byte) level_bcd#79 ← phi( @14/(byte) level_bcd#0 ) - (dword) score_bcd#73 ← phi( @14/(dword) score_bcd#0 ) - (word) lines_bcd#77 ← phi( @14/(word) lines_bcd#0 ) + (byte) level_bcd#87 ← phi( @14/(byte) level_bcd#0 ) + (byte) level#83 ← phi( @14/(byte) level#0 ) + (dword) score_bcd#72 ← phi( @14/(dword) score_bcd#0 ) + (word) lines_bcd#76 ← phi( @14/(word) lines_bcd#0 ) (byte) keyboard_modifiers#55 ← phi( @14/(byte) keyboard_modifiers#57 ) (byte) keyboard_events_size#73 ← phi( @14/(byte) keyboard_events_size#76 ) (byte) render_screen_showing#42 ← phi( @14/(byte) render_screen_showing#0 ) @@ -1158,9 +1160,10 @@ sprites_init::@return: scope:[sprites_init] from sprites_init::@1 return to:@return @23: scope:[] from @22 - (byte) level_bcd#77 ← phi( @22/(byte) level_bcd#79 ) - (dword) score_bcd#71 ← phi( @22/(dword) score_bcd#73 ) - (word) lines_bcd#75 ← phi( @22/(word) lines_bcd#77 ) + (byte) level_bcd#85 ← phi( @22/(byte) level_bcd#87 ) + (byte) level#81 ← phi( @22/(byte) level#83 ) + (dword) score_bcd#70 ← phi( @22/(dword) score_bcd#72 ) + (word) lines_bcd#74 ← phi( @22/(word) lines_bcd#76 ) (byte) keyboard_modifiers#53 ← phi( @22/(byte) keyboard_modifiers#55 ) (byte) keyboard_events_size#69 ← phi( @22/(byte) keyboard_events_size#73 ) (byte) render_screen_showing#39 ← phi( @22/(byte) render_screen_showing#42 ) @@ -1177,9 +1180,10 @@ sprites_init::@return: scope:[sprites_init] from sprites_init::@1 to:toSpritePtr1 toSpritePtr1: scope:[] from @23 (byte) irq_raster_next#23 ← phi( @23/(byte) irq_raster_next#0 ) - (byte) level_bcd#69 ← phi( @23/(byte) level_bcd#77 ) - (dword) score_bcd#65 ← phi( @23/(dword) score_bcd#71 ) - (word) lines_bcd#68 ← phi( @23/(word) lines_bcd#75 ) + (byte) level_bcd#77 ← phi( @23/(byte) level_bcd#85 ) + (byte) level#74 ← phi( @23/(byte) level#81 ) + (dword) score_bcd#64 ← phi( @23/(dword) score_bcd#70 ) + (word) lines_bcd#67 ← phi( @23/(word) lines_bcd#74 ) (byte) keyboard_modifiers#49 ← phi( @23/(byte) keyboard_modifiers#53 ) (byte) keyboard_events_size#65 ← phi( @23/(byte) keyboard_events_size#69 ) (byte) render_screen_showing#35 ← phi( @23/(byte) render_screen_showing#39 ) @@ -1198,9 +1202,10 @@ toSpritePtr1: scope:[] from @23 to:toSpritePtr1_@return toSpritePtr1_@return: scope:[] from toSpritePtr1 (byte) irq_raster_next#22 ← phi( toSpritePtr1/(byte) irq_raster_next#23 ) - (byte) level_bcd#61 ← phi( toSpritePtr1/(byte) level_bcd#69 ) - (dword) score_bcd#59 ← phi( toSpritePtr1/(dword) score_bcd#65 ) - (word) lines_bcd#62 ← phi( toSpritePtr1/(word) lines_bcd#68 ) + (byte) level_bcd#69 ← phi( toSpritePtr1/(byte) level_bcd#77 ) + (byte) level#67 ← phi( toSpritePtr1/(byte) level#74 ) + (dword) score_bcd#58 ← phi( toSpritePtr1/(dword) score_bcd#64 ) + (word) lines_bcd#61 ← phi( toSpritePtr1/(word) lines_bcd#67 ) (byte) keyboard_modifiers#45 ← phi( toSpritePtr1/(byte) keyboard_modifiers#49 ) (byte) keyboard_events_size#57 ← phi( toSpritePtr1/(byte) keyboard_events_size#65 ) (byte) render_screen_showing#31 ← phi( toSpritePtr1/(byte) render_screen_showing#35 ) @@ -1213,12 +1218,13 @@ toSpritePtr1_@return: scope:[] from toSpritePtr1 (byte) irq_sprite_ypos#21 ← phi( toSpritePtr1/(byte) irq_sprite_ypos#23 ) (byte) toSpritePtr1_return#2 ← phi( toSpritePtr1/(byte) toSpritePtr1_return#0 ) (byte) toSpritePtr1_return#1 ← (byte) toSpritePtr1_return#2 - to:@36 -@36: scope:[] from toSpritePtr1_@return + to:@37 +@37: scope:[] from toSpritePtr1_@return (byte) irq_raster_next#21 ← phi( toSpritePtr1_@return/(byte) irq_raster_next#22 ) - (byte) level_bcd#51 ← phi( toSpritePtr1_@return/(byte) level_bcd#61 ) - (dword) score_bcd#50 ← phi( toSpritePtr1_@return/(dword) score_bcd#59 ) - (word) lines_bcd#52 ← phi( toSpritePtr1_@return/(word) lines_bcd#62 ) + (byte) level_bcd#59 ← phi( toSpritePtr1_@return/(byte) level_bcd#69 ) + (byte) level#57 ← phi( toSpritePtr1_@return/(byte) level#67 ) + (dword) score_bcd#49 ← phi( toSpritePtr1_@return/(dword) score_bcd#58 ) + (word) lines_bcd#51 ← phi( toSpritePtr1_@return/(word) lines_bcd#61 ) (byte) keyboard_modifiers#39 ← phi( toSpritePtr1_@return/(byte) keyboard_modifiers#45 ) (byte) keyboard_events_size#48 ← phi( toSpritePtr1_@return/(byte) keyboard_events_size#57 ) (byte) render_screen_showing#27 ← phi( toSpritePtr1_@return/(byte) render_screen_showing#31 ) @@ -1252,11 +1258,11 @@ sprites_irq_init::@return: scope:[sprites_irq_init] from sprites_irq_init return to:@return sprites_irq: scope:[sprites_irq] from - (byte) irq_raster_next#17 ← phi( @35/(byte) irq_raster_next#18 ) - (byte) irq_cnt#15 ← phi( @35/(byte) irq_cnt#17 ) - (byte) render_screen_showing#15 ← phi( @35/(byte) render_screen_showing#14 ) - (byte) irq_sprite_ptr#10 ← phi( @35/(byte) irq_sprite_ptr#15 ) - (byte) irq_sprite_ypos#4 ← phi( @35/(byte) irq_sprite_ypos#8 ) + (byte) irq_raster_next#17 ← phi( @36/(byte) irq_raster_next#18 ) + (byte) irq_cnt#15 ← phi( @36/(byte) irq_cnt#17 ) + (byte) render_screen_showing#15 ← phi( @36/(byte) render_screen_showing#14 ) + (byte) irq_sprite_ptr#10 ← phi( @36/(byte) irq_sprite_ptr#15 ) + (byte) irq_sprite_ypos#4 ← phi( @36/(byte) irq_sprite_ypos#8 ) asm { cld } (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#4 *((byte*) SPRITES_YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) sprites_irq::ypos#0 @@ -1397,23 +1403,24 @@ sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@6 (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#6 return to:@return -@25: scope:[] from @36 - (byte) irq_raster_next#20 ← phi( @36/(byte) irq_raster_next#21 ) - (byte) irq_cnt#20 ← phi( @36/(byte) irq_cnt#0 ) - (byte) irq_sprite_ptr#17 ← phi( @36/(byte) irq_sprite_ptr#0 ) - (byte) level_bcd#45 ← phi( @36/(byte) level_bcd#51 ) - (dword) score_bcd#45 ← phi( @36/(dword) score_bcd#50 ) - (word) lines_bcd#45 ← phi( @36/(word) lines_bcd#52 ) - (byte) keyboard_modifiers#34 ← phi( @36/(byte) keyboard_modifiers#39 ) - (byte) keyboard_events_size#40 ← phi( @36/(byte) keyboard_events_size#48 ) - (byte) render_screen_showing#21 ← phi( @36/(byte) render_screen_showing#27 ) - (byte) current_piece_char#44 ← phi( @36/(byte) current_piece_char#54 ) - (byte) current_ypos#56 ← phi( @36/(byte) current_ypos#61 ) - (byte) current_xpos#75 ← phi( @36/(byte) current_xpos#85 ) - (byte*) current_piece_gfx#62 ← phi( @36/(byte*) current_piece_gfx#70 ) - (byte) render_screen_render#40 ← phi( @36/(byte) render_screen_render#46 ) - (byte) render_screen_show#35 ← phi( @36/(byte) render_screen_show#43 ) - (byte) irq_sprite_ypos#18 ← phi( @36/(byte) irq_sprite_ypos#20 ) +@25: scope:[] from @37 + (byte) irq_raster_next#20 ← phi( @37/(byte) irq_raster_next#21 ) + (byte) irq_cnt#20 ← phi( @37/(byte) irq_cnt#0 ) + (byte) irq_sprite_ptr#17 ← phi( @37/(byte) irq_sprite_ptr#0 ) + (byte) level_bcd#53 ← phi( @37/(byte) level_bcd#59 ) + (byte) level#51 ← phi( @37/(byte) level#57 ) + (dword) score_bcd#44 ← phi( @37/(dword) score_bcd#49 ) + (word) lines_bcd#44 ← phi( @37/(word) lines_bcd#51 ) + (byte) keyboard_modifiers#34 ← phi( @37/(byte) keyboard_modifiers#39 ) + (byte) keyboard_events_size#40 ← phi( @37/(byte) keyboard_events_size#48 ) + (byte) render_screen_showing#21 ← phi( @37/(byte) render_screen_showing#27 ) + (byte) current_piece_char#44 ← phi( @37/(byte) current_piece_char#54 ) + (byte) current_ypos#56 ← phi( @37/(byte) current_ypos#61 ) + (byte) current_xpos#75 ← phi( @37/(byte) current_xpos#85 ) + (byte*) current_piece_gfx#62 ← phi( @37/(byte*) current_piece_gfx#70 ) + (byte) render_screen_render#40 ← phi( @37/(byte) render_screen_render#46 ) + (byte) render_screen_show#35 ← phi( @37/(byte) render_screen_show#43 ) + (byte) irq_sprite_ypos#18 ← phi( @37/(byte) irq_sprite_ypos#20 ) (byte/signed byte/word/signed word/dword/signed dword~) $5 ← (byte/signed byte/word/signed word/dword/signed dword) 4 * (byte/signed byte/word/signed word/dword/signed dword) 4 (byte/signed word/word/dword/signed dword/signed byte~) $6 ← (byte/signed byte/word/signed word/dword/signed dword~) $5 * (byte/signed byte/word/signed word/dword/signed dword) 4 (byte[$6]) PIECE_T#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 } @@ -1451,18 +1458,21 @@ sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@6 (byte[$26]) playfield_lines_idx#0 ← { fill( $26, 0) } (byte*) current_piece#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) current_orientation#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte) current_movedown_slow#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 - (byte) current_movedown_fast#0 ← (byte/signed byte/word/signed word/dword/signed dword) 5 + (byte) current_movedown_slow#0 ← (byte/signed byte/word/signed word/dword/signed dword) 48 + (byte) current_movedown_fast#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) current_movedown_counter#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (dword[]) score_add_bcd#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 64, (word/signed word/dword/signed dword) 256, (word/signed word/dword/signed dword) 768, (word/signed word/dword/signed dword) 4608 } + (byte[]) MOVEDOWN_SLOW_SPEEDS#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 48, (byte/signed byte/word/signed word/dword/signed dword) 43, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 33, (byte/signed byte/word/signed word/dword/signed dword) 28, (byte/signed byte/word/signed word/dword/signed dword) 23, (byte/signed byte/word/signed word/dword/signed dword) 18, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1 } to:@29 play_init: scope:[play_init] from main::@18 + (byte) level#33 ← phi( main::@18/(byte) level#46 ) (byte) play_init::idx#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) play_init::pli#0 ← (byte[$3]) playfield#0 (byte/signed word/word/dword/signed dword~) play_init::$0 ← (byte) PLAYFIELD_LINES#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) play_init::j#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:play_init::@1 play_init::@1: scope:[play_init] from play_init play_init::@1 + (byte) level#21 ← phi( play_init/(byte) level#33 play_init::@1/(byte) level#21 ) (byte) play_init::idx#2 ← phi( play_init/(byte) play_init::idx#0 play_init::@1/(byte) play_init::idx#1 ) (byte*) play_init::pli#2 ← phi( play_init/(byte*) play_init::pli#0 play_init::@1/(byte*) play_init::pli#1 ) (byte) play_init::j#2 ← phi( play_init/(byte) play_init::j#0 play_init::@1/(byte) play_init::j#1 ) @@ -1476,22 +1486,28 @@ play_init::@1: scope:[play_init] from play_init play_init::@1 if((bool~) play_init::$2) goto play_init::@1 to:play_init::@2 play_init::@2: scope:[play_init] from play_init::@1 + (byte) level#10 ← phi( play_init::@1/(byte) level#21 ) (byte~) play_init::$3 ← (byte) PLAYFIELD_COLS#0 * (byte) PLAYFIELD_LINES#0 *((byte[$26]) playfield_lines_idx#0 + (byte) PLAYFIELD_LINES#0) ← (byte~) play_init::$3 + (byte) current_movedown_slow#1 ← *((byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#10) to:play_init::@return play_init::@return: scope:[play_init] from play_init::@2 + (byte) current_movedown_slow#14 ← phi( play_init::@2/(byte) current_movedown_slow#1 ) + (byte) current_movedown_slow#2 ← (byte) current_movedown_slow#14 return to:@return play_move_down: scope:[play_move_down] from main::@25 (byte) current_piece_char#74 ← phi( main::@25/(byte) current_piece_char#23 ) (byte*) current_piece_gfx#87 ← phi( main::@25/(byte*) current_piece_gfx#32 ) (byte*) current_piece#67 ← phi( main::@25/(byte*) current_piece#27 ) - (byte) level_bcd#70 ← phi( main::@25/(byte) level_bcd#26 ) - (dword) score_bcd#66 ← phi( main::@25/(dword) score_bcd#26 ) - (word) lines_bcd#69 ← phi( main::@25/(word) lines_bcd#26 ) + (byte) level_bcd#78 ← phi( main::@25/(byte) level_bcd#32 ) + (byte) level#75 ← phi( main::@25/(byte) level#30 ) + (dword) score_bcd#65 ← phi( main::@25/(dword) score_bcd#25 ) + (word) lines_bcd#68 ← phi( main::@25/(word) lines_bcd#25 ) (byte) current_orientation#68 ← phi( main::@25/(byte) current_orientation#37 ) (byte) current_xpos#94 ← phi( main::@25/(byte) current_xpos#44 ) (byte) current_ypos#68 ← phi( main::@25/(byte) current_ypos#36 ) + (byte) current_movedown_slow#55 ← phi( main::@25/(byte) current_movedown_slow#37 ) (byte) play_move_down::key_event#1 ← phi( main::@25/(byte) play_move_down::key_event#0 ) (byte) current_movedown_counter#7 ← phi( main::@25/(byte) current_movedown_counter#14 ) (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#7 @@ -1504,13 +1520,15 @@ play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down:: (byte) current_piece_char#67 ← phi( play_move_down/(byte) current_piece_char#74 play_move_down::@8/(byte) current_piece_char#75 ) (byte*) current_piece_gfx#81 ← phi( play_move_down/(byte*) current_piece_gfx#87 play_move_down::@8/(byte*) current_piece_gfx#88 ) (byte*) current_piece#62 ← phi( play_move_down/(byte*) current_piece#67 play_move_down::@8/(byte*) current_piece#68 ) - (byte) level_bcd#62 ← phi( play_move_down/(byte) level_bcd#70 play_move_down::@8/(byte) level_bcd#71 ) - (dword) score_bcd#60 ← phi( play_move_down/(dword) score_bcd#66 play_move_down::@8/(dword) score_bcd#67 ) - (word) lines_bcd#63 ← phi( play_move_down/(word) lines_bcd#69 play_move_down::@8/(word) lines_bcd#70 ) + (byte) level_bcd#70 ← phi( play_move_down/(byte) level_bcd#78 play_move_down::@8/(byte) level_bcd#79 ) + (byte) level#68 ← phi( play_move_down/(byte) level#75 play_move_down::@8/(byte) level#76 ) + (dword) score_bcd#59 ← phi( play_move_down/(dword) score_bcd#65 play_move_down::@8/(dword) score_bcd#66 ) + (word) lines_bcd#62 ← phi( play_move_down/(word) lines_bcd#68 play_move_down::@8/(word) lines_bcd#69 ) (byte) current_orientation#62 ← phi( play_move_down/(byte) current_orientation#68 play_move_down::@8/(byte) current_orientation#69 ) (byte) current_xpos#86 ← phi( play_move_down/(byte) current_xpos#94 play_move_down::@8/(byte) current_xpos#95 ) (byte) current_ypos#62 ← phi( play_move_down/(byte) current_ypos#68 play_move_down::@8/(byte) current_ypos#69 ) (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#40 ← phi( play_move_down/(byte) current_movedown_slow#55 play_move_down::@8/(byte) current_movedown_slow#56 ) (byte) current_movedown_counter#21 ← phi( play_move_down/(byte) current_movedown_counter#1 play_move_down::@8/(byte) current_movedown_counter#28 ) (byte) keyboard_event_pressed::keycode#4 ← (byte) KEY_SPACE#0 call keyboard_event_pressed @@ -1520,13 +1538,15 @@ play_move_down::@17: scope:[play_move_down] from play_move_down::@1 (byte) current_piece_char#56 ← phi( play_move_down::@1/(byte) current_piece_char#67 ) (byte*) current_piece_gfx#72 ← phi( play_move_down::@1/(byte*) current_piece_gfx#81 ) (byte*) current_piece#55 ← phi( play_move_down::@1/(byte*) current_piece#62 ) - (byte) level_bcd#53 ← phi( play_move_down::@1/(byte) level_bcd#62 ) - (dword) score_bcd#52 ← phi( play_move_down::@1/(dword) score_bcd#60 ) - (word) lines_bcd#54 ← phi( play_move_down::@1/(word) lines_bcd#63 ) + (byte) level_bcd#61 ← phi( play_move_down::@1/(byte) level_bcd#70 ) + (byte) level#59 ← phi( play_move_down::@1/(byte) level#68 ) + (dword) score_bcd#51 ← phi( play_move_down::@1/(dword) score_bcd#59 ) + (word) lines_bcd#53 ← phi( play_move_down::@1/(word) lines_bcd#62 ) (byte) current_orientation#53 ← phi( play_move_down::@1/(byte) current_orientation#62 ) (byte) current_xpos#71 ← phi( play_move_down::@1/(byte) current_xpos#86 ) (byte) current_ypos#52 ← phi( play_move_down::@1/(byte) current_ypos#62 ) (byte) play_move_down::movedown#10 ← phi( play_move_down::@1/(byte) play_move_down::movedown#12 ) + (byte) current_movedown_slow#26 ← phi( play_move_down::@1/(byte) current_movedown_slow#40 ) (byte) current_movedown_counter#16 ← phi( play_move_down::@1/(byte) current_movedown_counter#21 ) (byte) keyboard_event_pressed::return#12 ← phi( play_move_down::@1/(byte) keyboard_event_pressed::return#6 ) (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 @@ -1538,12 +1558,14 @@ play_move_down::@8: scope:[play_move_down] from play_move_down (byte) current_piece_char#75 ← phi( play_move_down/(byte) current_piece_char#74 ) (byte*) current_piece_gfx#88 ← phi( play_move_down/(byte*) current_piece_gfx#87 ) (byte*) current_piece#68 ← phi( play_move_down/(byte*) current_piece#67 ) - (byte) level_bcd#71 ← phi( play_move_down/(byte) level_bcd#70 ) - (dword) score_bcd#67 ← phi( play_move_down/(dword) score_bcd#66 ) - (word) lines_bcd#70 ← phi( play_move_down/(word) lines_bcd#69 ) + (byte) level_bcd#79 ← phi( play_move_down/(byte) level_bcd#78 ) + (byte) level#76 ← phi( play_move_down/(byte) level#75 ) + (dword) score_bcd#66 ← phi( play_move_down/(dword) score_bcd#65 ) + (word) lines_bcd#69 ← phi( play_move_down/(word) lines_bcd#68 ) (byte) current_orientation#69 ← phi( play_move_down/(byte) current_orientation#68 ) (byte) current_xpos#95 ← phi( play_move_down/(byte) current_xpos#94 ) (byte) current_ypos#69 ← phi( play_move_down/(byte) current_ypos#68 ) + (byte) current_movedown_slow#56 ← phi( play_move_down/(byte) current_movedown_slow#55 ) (byte) current_movedown_counter#28 ← phi( play_move_down/(byte) current_movedown_counter#1 ) (byte) play_move_down::movedown#4 ← phi( play_move_down/(byte) play_move_down::movedown#0 ) (byte) play_move_down::movedown#1 ← ++ (byte) play_move_down::movedown#4 @@ -1552,15 +1574,17 @@ play_move_down::@2: scope:[play_move_down] from play_move_down::@10 play_move_d (byte) current_piece_char#41 ← phi( play_move_down::@10/(byte) current_piece_char#55 play_move_down::@17/(byte) current_piece_char#56 play_move_down::@3/(byte) current_piece_char#57 ) (byte*) current_piece_gfx#57 ← phi( play_move_down::@10/(byte*) current_piece_gfx#71 play_move_down::@17/(byte*) current_piece_gfx#72 play_move_down::@3/(byte*) current_piece_gfx#73 ) (byte*) current_piece#44 ← phi( play_move_down::@10/(byte*) current_piece#54 play_move_down::@17/(byte*) current_piece#55 play_move_down::@3/(byte*) current_piece#56 ) - (byte) level_bcd#42 ← phi( play_move_down::@10/(byte) level_bcd#52 play_move_down::@17/(byte) level_bcd#53 play_move_down::@3/(byte) level_bcd#54 ) - (dword) score_bcd#42 ← phi( play_move_down::@10/(dword) score_bcd#51 play_move_down::@17/(dword) score_bcd#52 play_move_down::@3/(dword) score_bcd#53 ) - (word) lines_bcd#42 ← phi( play_move_down::@10/(word) lines_bcd#53 play_move_down::@17/(word) lines_bcd#54 play_move_down::@3/(word) lines_bcd#55 ) + (byte) level_bcd#50 ← phi( play_move_down::@10/(byte) level_bcd#60 play_move_down::@17/(byte) level_bcd#61 play_move_down::@3/(byte) level_bcd#62 ) + (byte) level#48 ← phi( play_move_down::@10/(byte) level#58 play_move_down::@17/(byte) level#59 play_move_down::@3/(byte) level#60 ) + (dword) score_bcd#41 ← phi( play_move_down::@10/(dword) score_bcd#50 play_move_down::@17/(dword) score_bcd#51 play_move_down::@3/(dword) score_bcd#52 ) + (word) lines_bcd#41 ← phi( play_move_down::@10/(word) lines_bcd#52 play_move_down::@17/(word) lines_bcd#53 play_move_down::@3/(word) lines_bcd#54 ) (byte) current_orientation#42 ← phi( play_move_down::@10/(byte) current_orientation#52 play_move_down::@17/(byte) current_orientation#53 play_move_down::@3/(byte) current_orientation#54 ) (byte) current_xpos#50 ← phi( play_move_down::@10/(byte) current_xpos#70 play_move_down::@17/(byte) current_xpos#71 play_move_down::@3/(byte) current_xpos#72 ) (byte) current_ypos#40 ← phi( play_move_down::@10/(byte) current_ypos#51 play_move_down::@17/(byte) current_ypos#52 play_move_down::@3/(byte) current_ypos#53 ) (byte) play_move_down::movedown#9 ← phi( play_move_down::@10/(byte) play_move_down::movedown#2 play_move_down::@17/(byte) play_move_down::movedown#10 play_move_down::@3/(byte) play_move_down::movedown#11 ) + (byte) current_movedown_slow#15 ← phi( play_move_down::@10/(byte) current_movedown_slow#25 play_move_down::@17/(byte) current_movedown_slow#26 play_move_down::@3/(byte) current_movedown_slow#27 ) (byte) current_movedown_counter#8 ← phi( play_move_down::@10/(byte) current_movedown_counter#15 play_move_down::@17/(byte) current_movedown_counter#16 play_move_down::@3/(byte) current_movedown_counter#17 ) - (bool~) play_move_down::$7 ← (byte) current_movedown_counter#8 >= (byte) current_movedown_slow#0 + (bool~) play_move_down::$7 ← (byte) current_movedown_counter#8 >= (byte) current_movedown_slow#15 (bool~) play_move_down::$8 ← ! (bool~) play_move_down::$7 if((bool~) play_move_down::$8) goto play_move_down::@4 to:play_move_down::@11 @@ -1568,12 +1592,14 @@ play_move_down::@9: scope:[play_move_down] from play_move_down::@17 (byte) current_piece_char#68 ← phi( play_move_down::@17/(byte) current_piece_char#56 ) (byte*) current_piece_gfx#82 ← phi( play_move_down::@17/(byte*) current_piece_gfx#72 ) (byte*) current_piece#63 ← phi( play_move_down::@17/(byte*) current_piece#55 ) - (byte) level_bcd#63 ← phi( play_move_down::@17/(byte) level_bcd#53 ) - (dword) score_bcd#61 ← phi( play_move_down::@17/(dword) score_bcd#52 ) - (word) lines_bcd#64 ← phi( play_move_down::@17/(word) lines_bcd#54 ) + (byte) level_bcd#71 ← phi( play_move_down::@17/(byte) level_bcd#61 ) + (byte) level#69 ← phi( play_move_down::@17/(byte) level#59 ) + (dword) score_bcd#60 ← phi( play_move_down::@17/(dword) score_bcd#51 ) + (word) lines_bcd#63 ← phi( play_move_down::@17/(word) lines_bcd#53 ) (byte) current_orientation#63 ← phi( play_move_down::@17/(byte) current_orientation#53 ) (byte) current_xpos#87 ← phi( play_move_down::@17/(byte) current_xpos#71 ) (byte) current_ypos#63 ← phi( play_move_down::@17/(byte) current_ypos#52 ) + (byte) current_movedown_slow#41 ← phi( play_move_down::@17/(byte) current_movedown_slow#26 ) (byte) play_move_down::movedown#8 ← phi( play_move_down::@17/(byte) play_move_down::movedown#10 ) (byte) current_movedown_counter#9 ← phi( play_move_down::@17/(byte) current_movedown_counter#16 ) (bool~) play_move_down::$5 ← (byte) current_movedown_counter#9 >= (byte) current_movedown_fast#0 @@ -1584,25 +1610,29 @@ play_move_down::@3: scope:[play_move_down] from play_move_down::@9 (byte) current_piece_char#57 ← phi( play_move_down::@9/(byte) current_piece_char#68 ) (byte*) current_piece_gfx#73 ← phi( play_move_down::@9/(byte*) current_piece_gfx#82 ) (byte*) current_piece#56 ← phi( play_move_down::@9/(byte*) current_piece#63 ) - (byte) level_bcd#54 ← phi( play_move_down::@9/(byte) level_bcd#63 ) - (dword) score_bcd#53 ← phi( play_move_down::@9/(dword) score_bcd#61 ) - (word) lines_bcd#55 ← phi( play_move_down::@9/(word) lines_bcd#64 ) + (byte) level_bcd#62 ← phi( play_move_down::@9/(byte) level_bcd#71 ) + (byte) level#60 ← phi( play_move_down::@9/(byte) level#69 ) + (dword) score_bcd#52 ← phi( play_move_down::@9/(dword) score_bcd#60 ) + (word) lines_bcd#54 ← phi( play_move_down::@9/(word) lines_bcd#63 ) (byte) current_orientation#54 ← phi( play_move_down::@9/(byte) current_orientation#63 ) (byte) current_xpos#72 ← phi( play_move_down::@9/(byte) current_xpos#87 ) (byte) current_ypos#53 ← phi( play_move_down::@9/(byte) current_ypos#63 ) (byte) play_move_down::movedown#11 ← phi( play_move_down::@9/(byte) play_move_down::movedown#8 ) + (byte) current_movedown_slow#27 ← phi( play_move_down::@9/(byte) current_movedown_slow#41 ) (byte) current_movedown_counter#17 ← phi( play_move_down::@9/(byte) current_movedown_counter#9 ) to:play_move_down::@2 play_move_down::@10: scope:[play_move_down] from play_move_down::@9 (byte) current_piece_char#55 ← phi( play_move_down::@9/(byte) current_piece_char#68 ) (byte*) current_piece_gfx#71 ← phi( play_move_down::@9/(byte*) current_piece_gfx#82 ) (byte*) current_piece#54 ← phi( play_move_down::@9/(byte*) current_piece#63 ) - (byte) level_bcd#52 ← phi( play_move_down::@9/(byte) level_bcd#63 ) - (dword) score_bcd#51 ← phi( play_move_down::@9/(dword) score_bcd#61 ) - (word) lines_bcd#53 ← phi( play_move_down::@9/(word) lines_bcd#64 ) + (byte) level_bcd#60 ← phi( play_move_down::@9/(byte) level_bcd#71 ) + (byte) level#58 ← phi( play_move_down::@9/(byte) level#69 ) + (dword) score_bcd#50 ← phi( play_move_down::@9/(dword) score_bcd#60 ) + (word) lines_bcd#52 ← phi( play_move_down::@9/(word) lines_bcd#63 ) (byte) current_orientation#52 ← phi( play_move_down::@9/(byte) current_orientation#63 ) (byte) current_xpos#70 ← phi( play_move_down::@9/(byte) current_xpos#87 ) (byte) current_ypos#51 ← phi( play_move_down::@9/(byte) current_ypos#63 ) + (byte) current_movedown_slow#25 ← phi( play_move_down::@9/(byte) current_movedown_slow#41 ) (byte) current_movedown_counter#15 ← phi( play_move_down::@9/(byte) current_movedown_counter#9 ) (byte) play_move_down::movedown#5 ← phi( play_move_down::@9/(byte) play_move_down::movedown#8 ) (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#5 @@ -1611,9 +1641,11 @@ play_move_down::@4: scope:[play_move_down] from play_move_down::@11 play_move_d (byte) current_piece_char#27 ← phi( play_move_down::@11/(byte) current_piece_char#40 play_move_down::@2/(byte) current_piece_char#41 ) (byte*) current_piece_gfx#39 ← phi( play_move_down::@11/(byte*) current_piece_gfx#56 play_move_down::@2/(byte*) current_piece_gfx#57 ) (byte*) current_piece#30 ← phi( play_move_down::@11/(byte*) current_piece#43 play_move_down::@2/(byte*) current_piece#44 ) - (byte) level_bcd#30 ← phi( play_move_down::@11/(byte) level_bcd#41 play_move_down::@2/(byte) level_bcd#42 ) - (dword) score_bcd#30 ← phi( play_move_down::@11/(dword) score_bcd#41 play_move_down::@2/(dword) score_bcd#42 ) - (word) lines_bcd#30 ← phi( play_move_down::@11/(word) lines_bcd#41 play_move_down::@2/(word) lines_bcd#42 ) + (byte) level_bcd#36 ← phi( play_move_down::@11/(byte) level_bcd#49 play_move_down::@2/(byte) level_bcd#50 ) + (byte) current_movedown_slow#42 ← phi( play_move_down::@11/(byte) current_movedown_slow#57 play_move_down::@2/(byte) current_movedown_slow#15 ) + (byte) level#34 ← phi( play_move_down::@11/(byte) level#47 play_move_down::@2/(byte) level#48 ) + (dword) score_bcd#29 ← phi( play_move_down::@11/(dword) score_bcd#40 play_move_down::@2/(dword) score_bcd#41 ) + (word) lines_bcd#29 ← phi( play_move_down::@11/(word) lines_bcd#40 play_move_down::@2/(word) lines_bcd#41 ) (byte) current_movedown_counter#22 ← phi( play_move_down::@11/(byte) current_movedown_counter#29 play_move_down::@2/(byte) current_movedown_counter#8 ) (byte) current_orientation#26 ← phi( play_move_down::@11/(byte) current_orientation#41 play_move_down::@2/(byte) current_orientation#42 ) (byte) current_xpos#30 ← phi( play_move_down::@11/(byte) current_xpos#49 play_move_down::@2/(byte) current_xpos#50 ) @@ -1627,9 +1659,11 @@ play_move_down::@11: scope:[play_move_down] from play_move_down::@2 (byte) current_piece_char#40 ← phi( play_move_down::@2/(byte) current_piece_char#41 ) (byte*) current_piece_gfx#56 ← phi( play_move_down::@2/(byte*) current_piece_gfx#57 ) (byte*) current_piece#43 ← phi( play_move_down::@2/(byte*) current_piece#44 ) - (byte) level_bcd#41 ← phi( play_move_down::@2/(byte) level_bcd#42 ) - (dword) score_bcd#41 ← phi( play_move_down::@2/(dword) score_bcd#42 ) - (word) lines_bcd#41 ← phi( play_move_down::@2/(word) lines_bcd#42 ) + (byte) level_bcd#49 ← phi( play_move_down::@2/(byte) level_bcd#50 ) + (byte) current_movedown_slow#57 ← phi( play_move_down::@2/(byte) current_movedown_slow#15 ) + (byte) level#47 ← phi( play_move_down::@2/(byte) level#48 ) + (dword) score_bcd#40 ← phi( play_move_down::@2/(dword) score_bcd#41 ) + (word) lines_bcd#40 ← phi( play_move_down::@2/(word) lines_bcd#41 ) (byte) current_movedown_counter#29 ← phi( play_move_down::@2/(byte) current_movedown_counter#8 ) (byte) current_orientation#41 ← phi( play_move_down::@2/(byte) current_orientation#42 ) (byte) current_xpos#49 ← phi( play_move_down::@2/(byte) current_xpos#50 ) @@ -1643,9 +1677,11 @@ play_move_down::@5: scope:[play_move_down] from play_move_down::@4 (byte*) current_piece_gfx#25 ← phi( play_move_down::@4/(byte*) current_piece_gfx#39 ) (byte) current_orientation#28 ← phi( play_move_down::@4/(byte) current_orientation#26 ) (byte*) current_piece#19 ← phi( play_move_down::@4/(byte*) current_piece#30 ) - (byte) level_bcd#20 ← phi( play_move_down::@4/(byte) level_bcd#30 ) - (dword) score_bcd#19 ← phi( play_move_down::@4/(dword) score_bcd#30 ) - (word) lines_bcd#19 ← phi( play_move_down::@4/(word) lines_bcd#30 ) + (byte) level_bcd#24 ← phi( play_move_down::@4/(byte) level_bcd#36 ) + (byte) current_movedown_slow#29 ← phi( play_move_down::@4/(byte) current_movedown_slow#42 ) + (byte) level#23 ← phi( play_move_down::@4/(byte) level#34 ) + (dword) score_bcd#19 ← phi( play_move_down::@4/(dword) score_bcd#29 ) + (word) lines_bcd#19 ← phi( play_move_down::@4/(word) lines_bcd#29 ) (byte) current_ypos#28 ← phi( play_move_down::@4/(byte) current_ypos#25 ) (byte) current_movedown_counter#18 ← phi( play_move_down::@4/(byte) current_movedown_counter#22 ) (byte) play_move_down::return#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -1653,9 +1689,11 @@ play_move_down::@5: scope:[play_move_down] from play_move_down::@4 play_move_down::@12: scope:[play_move_down] from play_move_down::@4 (byte) current_piece_char#58 ← phi( play_move_down::@4/(byte) current_piece_char#27 ) (byte*) current_piece_gfx#74 ← phi( play_move_down::@4/(byte*) current_piece_gfx#39 ) - (byte) level_bcd#55 ← phi( play_move_down::@4/(byte) level_bcd#30 ) - (dword) score_bcd#54 ← phi( play_move_down::@4/(dword) score_bcd#30 ) - (word) lines_bcd#56 ← phi( play_move_down::@4/(word) lines_bcd#30 ) + (byte) level_bcd#63 ← phi( play_move_down::@4/(byte) level_bcd#36 ) + (byte) current_movedown_slow#65 ← phi( play_move_down::@4/(byte) current_movedown_slow#42 ) + (byte) level#61 ← phi( play_move_down::@4/(byte) level#34 ) + (dword) score_bcd#53 ← phi( play_move_down::@4/(dword) score_bcd#29 ) + (word) lines_bcd#55 ← phi( play_move_down::@4/(word) lines_bcd#29 ) (byte*) current_piece#22 ← phi( play_move_down::@4/(byte*) current_piece#30 ) (byte) current_orientation#12 ← phi( play_move_down::@4/(byte) current_orientation#26 ) (byte) current_xpos#13 ← phi( play_move_down::@4/(byte) current_xpos#30 ) @@ -1673,9 +1711,11 @@ play_move_down::@18: scope:[play_move_down] from play_move_down::@12 (byte*) current_piece_gfx#58 ← phi( play_move_down::@12/(byte*) current_piece_gfx#74 ) (byte) current_orientation#55 ← phi( play_move_down::@12/(byte) current_orientation#12 ) (byte*) current_piece#45 ← phi( play_move_down::@12/(byte*) current_piece#22 ) - (byte) level_bcd#43 ← phi( play_move_down::@12/(byte) level_bcd#55 ) - (dword) score_bcd#43 ← phi( play_move_down::@12/(dword) score_bcd#54 ) - (word) lines_bcd#43 ← phi( play_move_down::@12/(word) lines_bcd#56 ) + (byte) level_bcd#51 ← phi( play_move_down::@12/(byte) level_bcd#63 ) + (byte) current_movedown_slow#58 ← phi( play_move_down::@12/(byte) current_movedown_slow#65 ) + (byte) level#49 ← phi( play_move_down::@12/(byte) level#61 ) + (dword) score_bcd#42 ← phi( play_move_down::@12/(dword) score_bcd#53 ) + (word) lines_bcd#42 ← phi( play_move_down::@12/(word) lines_bcd#55 ) (byte) current_ypos#26 ← phi( play_move_down::@12/(byte) current_ypos#10 ) (byte) play_collision::return#10 ← phi( play_move_down::@12/(byte) play_collision::return#0 ) (byte~) play_move_down::$12 ← (byte) play_collision::return#10 @@ -1688,9 +1728,11 @@ play_move_down::@6: scope:[play_move_down] from play_move_down::@18 (byte*) current_piece_gfx#41 ← phi( play_move_down::@18/(byte*) current_piece_gfx#58 ) (byte) current_orientation#44 ← phi( play_move_down::@18/(byte) current_orientation#55 ) (byte*) current_piece#32 ← phi( play_move_down::@18/(byte*) current_piece#45 ) - (byte) level_bcd#33 ← phi( play_move_down::@18/(byte) level_bcd#43 ) - (dword) score_bcd#33 ← phi( play_move_down::@18/(dword) score_bcd#43 ) - (word) lines_bcd#33 ← phi( play_move_down::@18/(word) lines_bcd#43 ) + (byte) level_bcd#39 ← phi( play_move_down::@18/(byte) level_bcd#51 ) + (byte) current_movedown_slow#45 ← phi( play_move_down::@18/(byte) current_movedown_slow#58 ) + (byte) level#37 ← phi( play_move_down::@18/(byte) level#49 ) + (dword) score_bcd#32 ← phi( play_move_down::@18/(dword) score_bcd#42 ) + (word) lines_bcd#32 ← phi( play_move_down::@18/(word) lines_bcd#42 ) (byte) current_ypos#11 ← phi( play_move_down::@18/(byte) current_ypos#26 ) (byte) current_ypos#0 ← ++ (byte) current_ypos#11 to:play_move_down::@7 @@ -1699,9 +1741,11 @@ play_move_down::@13: scope:[play_move_down] from play_move_down::@18 (byte) current_orientation#64 ← phi( play_move_down::@18/(byte) current_orientation#55 ) (byte*) current_piece#57 ← phi( play_move_down::@18/(byte*) current_piece#45 ) (byte*) current_piece_gfx#63 ← phi( play_move_down::@18/(byte*) current_piece_gfx#58 ) - (byte) level_bcd#44 ← phi( play_move_down::@18/(byte) level_bcd#43 ) - (dword) score_bcd#44 ← phi( play_move_down::@18/(dword) score_bcd#43 ) - (word) lines_bcd#44 ← phi( play_move_down::@18/(word) lines_bcd#43 ) + (byte) level_bcd#52 ← phi( play_move_down::@18/(byte) level_bcd#51 ) + (byte) current_movedown_slow#59 ← phi( play_move_down::@18/(byte) current_movedown_slow#58 ) + (byte) level#50 ← phi( play_move_down::@18/(byte) level#49 ) + (dword) score_bcd#43 ← phi( play_move_down::@18/(dword) score_bcd#42 ) + (word) lines_bcd#43 ← phi( play_move_down::@18/(word) lines_bcd#42 ) (byte) current_xpos#58 ← phi( play_move_down::@18/(byte) current_xpos#73 ) (byte) current_ypos#34 ← phi( play_move_down::@18/(byte) current_ypos#26 ) call play_lock_current @@ -1713,9 +1757,11 @@ play_move_down::@19: scope:[play_move_down] from play_move_down::@13 (byte*) current_piece_gfx#59 ← phi( play_move_down::@13/(byte*) current_piece_gfx#63 ) (byte) current_orientation#56 ← phi( play_move_down::@13/(byte) current_orientation#64 ) (byte*) current_piece#46 ← phi( play_move_down::@13/(byte*) current_piece#57 ) - (byte) level_bcd#31 ← phi( play_move_down::@13/(byte) level_bcd#44 ) - (dword) score_bcd#31 ← phi( play_move_down::@13/(dword) score_bcd#44 ) - (word) lines_bcd#31 ← phi( play_move_down::@13/(word) lines_bcd#44 ) + (byte) level_bcd#37 ← phi( play_move_down::@13/(byte) level_bcd#52 ) + (byte) current_movedown_slow#43 ← phi( play_move_down::@13/(byte) current_movedown_slow#59 ) + (byte) level#35 ← phi( play_move_down::@13/(byte) level#50 ) + (dword) score_bcd#30 ← phi( play_move_down::@13/(dword) score_bcd#43 ) + (word) lines_bcd#30 ← phi( play_move_down::@13/(word) lines_bcd#43 ) call play_remove_lines (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::return#2 to:play_move_down::@20 @@ -1726,9 +1772,11 @@ play_move_down::@20: scope:[play_move_down] from play_move_down::@19 (byte*) current_piece_gfx#40 ← phi( play_move_down::@19/(byte*) current_piece_gfx#59 ) (byte) current_orientation#43 ← phi( play_move_down::@19/(byte) current_orientation#56 ) (byte*) current_piece#31 ← phi( play_move_down::@19/(byte*) current_piece#46 ) - (byte) level_bcd#19 ← phi( play_move_down::@19/(byte) level_bcd#31 ) - (dword) score_bcd#18 ← phi( play_move_down::@19/(dword) score_bcd#31 ) - (word) lines_bcd#18 ← phi( play_move_down::@19/(word) lines_bcd#31 ) + (byte) level_bcd#23 ← phi( play_move_down::@19/(byte) level_bcd#37 ) + (byte) current_movedown_slow#28 ← phi( play_move_down::@19/(byte) current_movedown_slow#43 ) + (byte) level#22 ← phi( play_move_down::@19/(byte) level#35 ) + (dword) score_bcd#18 ← phi( play_move_down::@19/(dword) score_bcd#30 ) + (word) lines_bcd#18 ← phi( play_move_down::@19/(word) lines_bcd#30 ) (byte) play_remove_lines::return#3 ← phi( play_move_down::@19/(byte) play_remove_lines::return#0 ) (byte~) play_move_down::$15 ← (byte) play_remove_lines::return#3 (byte) play_move_down::removed#0 ← (byte~) play_move_down::$15 @@ -1742,18 +1790,24 @@ play_move_down::@21: scope:[play_move_down] from play_move_down::@20 (byte*) current_piece_gfx#24 ← phi( play_move_down::@20/(byte*) current_piece_gfx#40 ) (byte) current_orientation#27 ← phi( play_move_down::@20/(byte) current_orientation#43 ) (byte*) current_piece#18 ← phi( play_move_down::@20/(byte*) current_piece#31 ) - (byte) level_bcd#10 ← phi( play_move_down::@20/(byte) level_bcd#5 ) + (byte) level_bcd#12 ← phi( play_move_down::@20/(byte) level_bcd#4 ) + (byte) current_movedown_slow#16 ← phi( play_move_down::@20/(byte) current_movedown_slow#6 ) + (byte) level#11 ← phi( play_move_down::@20/(byte) level#4 ) (dword) score_bcd#9 ← phi( play_move_down::@20/(dword) score_bcd#4 ) (word) lines_bcd#10 ← phi( play_move_down::@20/(word) lines_bcd#4 ) (word) lines_bcd#1 ← (word) lines_bcd#10 (dword) score_bcd#1 ← (dword) score_bcd#9 - (byte) level_bcd#1 ← (byte) level_bcd#10 + (byte) level#1 ← (byte) level#11 + (byte) current_movedown_slow#3 ← (byte) current_movedown_slow#16 + (byte) level_bcd#1 ← (byte) level_bcd#12 call play_spawn_current to:play_move_down::@22 play_move_down::@22: scope:[play_move_down] from play_move_down::@21 - (byte) level_bcd#32 ← phi( play_move_down::@21/(byte) level_bcd#1 ) - (dword) score_bcd#32 ← phi( play_move_down::@21/(dword) score_bcd#1 ) - (word) lines_bcd#32 ← phi( play_move_down::@21/(word) lines_bcd#1 ) + (byte) level_bcd#38 ← phi( play_move_down::@21/(byte) level_bcd#1 ) + (byte) current_movedown_slow#44 ← phi( play_move_down::@21/(byte) current_movedown_slow#3 ) + (byte) level#36 ← phi( play_move_down::@21/(byte) level#1 ) + (dword) score_bcd#31 ← phi( play_move_down::@21/(dword) score_bcd#1 ) + (word) lines_bcd#31 ← phi( play_move_down::@21/(word) lines_bcd#1 ) (byte) current_piece_char#9 ← phi( play_move_down::@21/(byte) current_piece_char#3 ) (byte) current_ypos#12 ← phi( play_move_down::@21/(byte) current_ypos#4 ) (byte) current_xpos#14 ← phi( play_move_down::@21/(byte) current_xpos#6 ) @@ -1773,9 +1827,11 @@ play_move_down::@7: scope:[play_move_down] from play_move_down::@22 play_move_d (byte*) current_piece_gfx#26 ← phi( play_move_down::@22/(byte*) current_piece_gfx#0 play_move_down::@6/(byte*) current_piece_gfx#41 ) (byte) current_orientation#29 ← phi( play_move_down::@22/(byte) current_orientation#1 play_move_down::@6/(byte) current_orientation#44 ) (byte*) current_piece#20 ← phi( play_move_down::@22/(byte*) current_piece#1 play_move_down::@6/(byte*) current_piece#32 ) - (byte) level_bcd#21 ← phi( play_move_down::@22/(byte) level_bcd#32 play_move_down::@6/(byte) level_bcd#33 ) - (dword) score_bcd#20 ← phi( play_move_down::@22/(dword) score_bcd#32 play_move_down::@6/(dword) score_bcd#33 ) - (word) lines_bcd#20 ← phi( play_move_down::@22/(word) lines_bcd#32 play_move_down::@6/(word) lines_bcd#33 ) + (byte) level_bcd#25 ← phi( play_move_down::@22/(byte) level_bcd#38 play_move_down::@6/(byte) level_bcd#39 ) + (byte) current_movedown_slow#30 ← phi( play_move_down::@22/(byte) current_movedown_slow#44 play_move_down::@6/(byte) current_movedown_slow#45 ) + (byte) level#24 ← phi( play_move_down::@22/(byte) level#36 play_move_down::@6/(byte) level#37 ) + (dword) score_bcd#20 ← phi( play_move_down::@22/(dword) score_bcd#31 play_move_down::@6/(dword) score_bcd#32 ) + (word) lines_bcd#20 ← phi( play_move_down::@22/(word) lines_bcd#31 play_move_down::@6/(word) lines_bcd#32 ) (byte) current_ypos#29 ← phi( play_move_down::@22/(byte) current_ypos#1 play_move_down::@6/(byte) current_ypos#0 ) (byte) current_movedown_counter#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) play_move_down::return#1 ← (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -1786,7 +1842,9 @@ play_move_down::@return: scope:[play_move_down] from play_move_down::@5 play_mo (byte*) current_piece_gfx#13 ← phi( play_move_down::@5/(byte*) current_piece_gfx#25 play_move_down::@7/(byte*) current_piece_gfx#26 ) (byte) current_orientation#14 ← phi( play_move_down::@5/(byte) current_orientation#28 play_move_down::@7/(byte) current_orientation#29 ) (byte*) current_piece#10 ← phi( play_move_down::@5/(byte*) current_piece#19 play_move_down::@7/(byte*) current_piece#20 ) - (byte) level_bcd#11 ← phi( play_move_down::@5/(byte) level_bcd#20 play_move_down::@7/(byte) level_bcd#21 ) + (byte) level_bcd#13 ← phi( play_move_down::@5/(byte) level_bcd#24 play_move_down::@7/(byte) level_bcd#25 ) + (byte) current_movedown_slow#17 ← phi( play_move_down::@5/(byte) current_movedown_slow#29 play_move_down::@7/(byte) current_movedown_slow#30 ) + (byte) level#12 ← phi( play_move_down::@5/(byte) level#23 play_move_down::@7/(byte) level#24 ) (dword) score_bcd#10 ← phi( play_move_down::@5/(dword) score_bcd#19 play_move_down::@7/(dword) score_bcd#20 ) (word) lines_bcd#11 ← phi( play_move_down::@5/(word) lines_bcd#19 play_move_down::@7/(word) lines_bcd#20 ) (byte) current_ypos#13 ← phi( play_move_down::@5/(byte) current_ypos#28 play_move_down::@7/(byte) current_ypos#29 ) @@ -1797,7 +1855,9 @@ play_move_down::@return: scope:[play_move_down] from play_move_down::@5 play_mo (byte) current_ypos#2 ← (byte) current_ypos#13 (word) lines_bcd#2 ← (word) lines_bcd#11 (dword) score_bcd#2 ← (dword) score_bcd#10 - (byte) level_bcd#2 ← (byte) level_bcd#11 + (byte) level#2 ← (byte) level#12 + (byte) current_movedown_slow#4 ← (byte) current_movedown_slow#17 + (byte) level_bcd#2 ← (byte) level_bcd#13 (byte*) current_piece#2 ← (byte*) current_piece#10 (byte) current_orientation#2 ← (byte) current_orientation#14 (byte*) current_piece_gfx#1 ← (byte*) current_piece_gfx#13 @@ -1990,9 +2050,10 @@ play_move_rotate::@11: scope:[play_move_rotate] from play_move_rotate::@14 (byte) irq_raster_next#19 ← phi( @25/(byte) irq_raster_next#20 ) (byte) irq_cnt#19 ← phi( @25/(byte) irq_cnt#20 ) (byte) irq_sprite_ptr#16 ← phi( @25/(byte) irq_sprite_ptr#17 ) - (byte) level_bcd#39 ← phi( @25/(byte) level_bcd#45 ) - (dword) score_bcd#39 ← phi( @25/(dword) score_bcd#45 ) - (word) lines_bcd#39 ← phi( @25/(word) lines_bcd#45 ) + (byte) level_bcd#47 ← phi( @25/(byte) level_bcd#53 ) + (byte) level#45 ← phi( @25/(byte) level#51 ) + (dword) score_bcd#38 ← phi( @25/(dword) score_bcd#44 ) + (word) lines_bcd#38 ← phi( @25/(word) lines_bcd#44 ) (byte) current_movedown_counter#27 ← phi( @25/(byte) current_movedown_counter#0 ) (byte) keyboard_modifiers#33 ← phi( @25/(byte) keyboard_modifiers#34 ) (byte) keyboard_events_size#36 ← phi( @25/(byte) keyboard_events_size#40 ) @@ -2003,6 +2064,7 @@ play_move_rotate::@11: scope:[play_move_rotate] from play_move_rotate::@14 (byte*) current_piece_gfx#52 ← phi( @25/(byte*) current_piece_gfx#62 ) (byte) current_orientation#51 ← phi( @25/(byte) current_orientation#0 ) (byte*) current_piece#42 ← phi( @25/(byte*) current_piece#0 ) + (byte) current_movedown_slow#54 ← phi( @25/(byte) current_movedown_slow#0 ) (byte) render_screen_render#36 ← phi( @25/(byte) render_screen_render#40 ) (byte) render_screen_show#32 ← phi( @25/(byte) render_screen_show#35 ) (byte) irq_sprite_ypos#15 ← phi( @25/(byte) irq_sprite_ypos#18 ) @@ -2011,7 +2073,7 @@ play_move_rotate::@11: scope:[play_move_rotate] from play_move_rotate::@14 (byte) COLLISION_BOTTOM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) COLLISION_LEFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) COLLISION_RIGHT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - to:@35 + to:@36 play_collision: scope:[play_collision] from play_move_down::@12 play_move_leftright::@1 play_move_leftright::@7 play_move_rotate::@4 (byte) play_collision::xpos#5 ← phi( play_move_down::@12/(byte) play_collision::xpos#0 play_move_leftright::@1/(byte) play_collision::xpos#1 play_move_leftright::@7/(byte) play_collision::xpos#2 play_move_rotate::@4/(byte) play_collision::xpos#3 ) (byte) play_collision::ypos#4 ← phi( play_move_down::@12/(byte) play_collision::ypos#0 play_move_leftright::@1/(byte) play_collision::ypos#1 play_move_leftright::@7/(byte) play_collision::ypos#2 play_move_rotate::@4/(byte) play_collision::ypos#3 ) @@ -2385,21 +2447,27 @@ play_remove_lines::@return: scope:[play_remove_lines] from play_remove_lines::@ return to:@return play_update_score: scope:[play_update_score] from play_move_down::@20 - (byte) level_bcd#34 ← phi( play_move_down::@20/(byte) level_bcd#19 ) + (byte) level_bcd#40 ← phi( play_move_down::@20/(byte) level_bcd#23 ) + (byte) current_movedown_slow#46 ← phi( play_move_down::@20/(byte) current_movedown_slow#28 ) + (byte) level#38 ← phi( play_move_down::@20/(byte) level#22 ) (dword) score_bcd#21 ← phi( play_move_down::@20/(dword) score_bcd#18 ) (word) lines_bcd#21 ← phi( play_move_down::@20/(word) lines_bcd#18 ) (byte) play_update_score::removed#1 ← phi( play_move_down::@20/(byte) play_update_score::removed#0 ) (bool~) play_update_score::$0 ← (byte) play_update_score::removed#1 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) play_update_score::$1 ← ! (bool~) play_update_score::$0 if((bool~) play_update_score::$1) goto play_update_score::@1 - to:play_update_score::@4 + to:play_update_score::@3 play_update_score::@1: scope:[play_update_score] from play_update_score - (byte) level_bcd#23 ← phi( play_update_score/(byte) level_bcd#34 ) + (byte) level_bcd#27 ← phi( play_update_score/(byte) level_bcd#40 ) + (byte) current_movedown_slow#32 ← phi( play_update_score/(byte) current_movedown_slow#46 ) + (byte) level#26 ← phi( play_update_score/(byte) level#38 ) (dword) score_bcd#22 ← phi( play_update_score/(dword) score_bcd#21 ) (word) lines_bcd#22 ← phi( play_update_score/(word) lines_bcd#21 ) to:play_update_score::@return -play_update_score::@4: scope:[play_update_score] from play_update_score - (byte) level_bcd#22 ← phi( play_update_score/(byte) level_bcd#34 ) +play_update_score::@3: scope:[play_update_score] from play_update_score + (byte) level_bcd#41 ← phi( play_update_score/(byte) level_bcd#40 ) + (byte) current_movedown_slow#47 ← phi( play_update_score/(byte) current_movedown_slow#46 ) + (byte) level#39 ← phi( play_update_score/(byte) level#38 ) (dword) score_bcd#11 ← phi( play_update_score/(dword) score_bcd#21 ) (byte) play_update_score::removed#2 ← phi( play_update_score/(byte) play_update_score::removed#1 ) (word) lines_bcd#12 ← phi( play_update_score/(word) lines_bcd#21 ) @@ -2418,93 +2486,149 @@ play_update_score::@4: scope:[play_update_score] from play_update_score (bool~) play_update_score::$7 ← (byte) play_update_score::lines_before#0 != (byte) play_update_score::lines_after#0 (bool~) play_update_score::$8 ← ! (bool~) play_update_score::$7 if((bool~) play_update_score::$8) goto play_update_score::@2 + to:play_update_score::@4 +play_update_score::@2: scope:[play_update_score] from play_update_score::@3 + (byte) level_bcd#28 ← phi( play_update_score::@3/(byte) level_bcd#41 ) + (byte) current_movedown_slow#33 ← phi( play_update_score::@3/(byte) current_movedown_slow#47 ) + (byte) level#27 ← phi( play_update_score::@3/(byte) level#39 ) + (dword) score_bcd#23 ← phi( play_update_score::@3/(dword) score_bcd#3 ) + (word) lines_bcd#23 ← phi( play_update_score::@3/(word) lines_bcd#3 ) + to:play_update_score::@return +play_update_score::@4: scope:[play_update_score] from play_update_score::@3 + (dword) score_bcd#33 ← phi( play_update_score::@3/(dword) score_bcd#3 ) + (word) lines_bcd#33 ← phi( play_update_score::@3/(word) lines_bcd#3 ) + (byte) level_bcd#26 ← phi( play_update_score::@3/(byte) level_bcd#41 ) + (byte) current_movedown_slow#31 ← phi( play_update_score::@3/(byte) current_movedown_slow#47 ) + (byte) level#25 ← phi( play_update_score::@3/(byte) level#39 ) + call play_increase_level to:play_update_score::@5 -play_update_score::@2: scope:[play_update_score] from play_update_score::@4 - (byte) level_bcd#24 ← phi( play_update_score::@4/(byte) level_bcd#22 ) - (dword) score_bcd#23 ← phi( play_update_score::@4/(dword) score_bcd#3 ) - (word) lines_bcd#23 ← phi( play_update_score::@4/(word) lines_bcd#3 ) - to:play_update_score::@return play_update_score::@5: scope:[play_update_score] from play_update_score::@4 - (dword) score_bcd#34 ← phi( play_update_score::@4/(dword) score_bcd#3 ) - (word) lines_bcd#34 ← phi( play_update_score::@4/(word) lines_bcd#3 ) - (byte) level_bcd#12 ← phi( play_update_score::@4/(byte) level_bcd#22 ) - (byte) level_bcd#3 ← ++ (byte) level_bcd#12 - (byte~) play_update_score::$9 ← (byte) level_bcd#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 - (bool~) play_update_score::$10 ← (byte~) play_update_score::$9 == (byte/signed byte/word/signed word/dword/signed dword) 10 - (bool~) play_update_score::$11 ← ! (bool~) play_update_score::$10 - if((bool~) play_update_score::$11) goto play_update_score::@3 - to:play_update_score::@6 -play_update_score::@3: scope:[play_update_score] from play_update_score::@5 - (byte) level_bcd#25 ← phi( play_update_score::@5/(byte) level_bcd#3 ) - (dword) score_bcd#24 ← phi( play_update_score::@5/(dword) score_bcd#34 ) - (word) lines_bcd#24 ← phi( play_update_score::@5/(word) lines_bcd#34 ) + (dword) score_bcd#24 ← phi( play_update_score::@4/(dword) score_bcd#33 ) + (word) lines_bcd#24 ← phi( play_update_score::@4/(word) lines_bcd#33 ) + (byte) level_bcd#14 ← phi( play_update_score::@4/(byte) level_bcd#7 ) + (byte) current_movedown_slow#18 ← phi( play_update_score::@4/(byte) current_movedown_slow#9 ) + (byte) level#13 ← phi( play_update_score::@4/(byte) level#6 ) + (byte) level#3 ← (byte) level#13 + (byte) current_movedown_slow#5 ← (byte) current_movedown_slow#18 + (byte) level_bcd#3 ← (byte) level_bcd#14 to:play_update_score::@return -play_update_score::@6: scope:[play_update_score] from play_update_score::@5 - (dword) score_bcd#25 ← phi( play_update_score::@5/(dword) score_bcd#34 ) - (word) lines_bcd#25 ← phi( play_update_score::@5/(word) lines_bcd#34 ) - (byte) level_bcd#13 ← phi( play_update_score::@5/(byte) level_bcd#3 ) - (byte) level_bcd#4 ← (byte) level_bcd#13 + (byte/signed byte/word/signed word/dword/signed dword) 6 - to:play_update_score::@return -play_update_score::@return: scope:[play_update_score] from play_update_score::@1 play_update_score::@2 play_update_score::@3 play_update_score::@6 - (byte) level_bcd#14 ← phi( play_update_score::@1/(byte) level_bcd#23 play_update_score::@2/(byte) level_bcd#24 play_update_score::@3/(byte) level_bcd#25 play_update_score::@6/(byte) level_bcd#4 ) - (dword) score_bcd#12 ← phi( play_update_score::@1/(dword) score_bcd#22 play_update_score::@2/(dword) score_bcd#23 play_update_score::@3/(dword) score_bcd#24 play_update_score::@6/(dword) score_bcd#25 ) - (word) lines_bcd#13 ← phi( play_update_score::@1/(word) lines_bcd#22 play_update_score::@2/(word) lines_bcd#23 play_update_score::@3/(word) lines_bcd#24 play_update_score::@6/(word) lines_bcd#25 ) +play_update_score::@return: scope:[play_update_score] from play_update_score::@1 play_update_score::@2 play_update_score::@5 + (byte) level_bcd#15 ← phi( play_update_score::@1/(byte) level_bcd#27 play_update_score::@2/(byte) level_bcd#28 play_update_score::@5/(byte) level_bcd#3 ) + (byte) current_movedown_slow#19 ← phi( play_update_score::@1/(byte) current_movedown_slow#32 play_update_score::@2/(byte) current_movedown_slow#33 play_update_score::@5/(byte) current_movedown_slow#5 ) + (byte) level#14 ← phi( play_update_score::@1/(byte) level#26 play_update_score::@2/(byte) level#27 play_update_score::@5/(byte) level#3 ) + (dword) score_bcd#12 ← phi( play_update_score::@1/(dword) score_bcd#22 play_update_score::@2/(dword) score_bcd#23 play_update_score::@5/(dword) score_bcd#24 ) + (word) lines_bcd#13 ← phi( play_update_score::@1/(word) lines_bcd#22 play_update_score::@2/(word) lines_bcd#23 play_update_score::@5/(word) lines_bcd#24 ) (word) lines_bcd#4 ← (word) lines_bcd#13 (dword) score_bcd#4 ← (dword) score_bcd#12 - (byte) level_bcd#5 ← (byte) level_bcd#14 + (byte) level#4 ← (byte) level#14 + (byte) current_movedown_slow#6 ← (byte) current_movedown_slow#19 + (byte) level_bcd#4 ← (byte) level_bcd#15 return to:@return -main: scope:[main] from @35 - (byte) level_bcd#82 ← phi( @35/(byte) level_bcd#28 ) - (dword) score_bcd#76 ← phi( @35/(dword) score_bcd#28 ) - (word) lines_bcd#80 ← phi( @35/(word) lines_bcd#28 ) - (byte) current_movedown_counter#48 ← phi( @35/(byte) current_movedown_counter#20 ) - (byte) keyboard_modifiers#60 ← phi( @35/(byte) keyboard_modifiers#25 ) - (byte) keyboard_events_size#79 ← phi( @35/(byte) keyboard_events_size#28 ) - (byte) render_screen_showing#45 ← phi( @35/(byte) render_screen_showing#14 ) - (byte) current_piece_char#76 ← phi( @35/(byte) current_piece_char#25 ) - (byte) current_ypos#73 ← phi( @35/(byte) current_ypos#38 ) - (byte) current_xpos#99 ← phi( @35/(byte) current_xpos#46 ) - (byte*) current_piece_gfx#89 ← phi( @35/(byte*) current_piece_gfx#35 ) - (byte) current_orientation#73 ← phi( @35/(byte) current_orientation#40 ) - (byte*) current_piece#69 ← phi( @35/(byte*) current_piece#29 ) - (byte) render_screen_render#32 ← phi( @35/(byte) render_screen_render#26 ) - (byte) render_screen_show#27 ← phi( @35/(byte) render_screen_show#24 ) +play_increase_level: scope:[play_increase_level] from play_update_score::@4 + (byte) level_bcd#42 ← phi( play_update_score::@4/(byte) level_bcd#26 ) + (byte) level#15 ← phi( play_update_score::@4/(byte) level#25 ) + (byte) level#5 ← ++ (byte) level#15 + (bool~) play_increase_level::$0 ← (byte) level#5 > (byte/signed byte/word/signed word/dword/signed dword) 29 + if((bool~) play_increase_level::$0) goto play_increase_level::@1 + to:play_increase_level::@4 +play_increase_level::@1: scope:[play_increase_level] from play_increase_level + (byte) level#52 ← phi( play_increase_level/(byte) level#5 ) + (byte) level_bcd#29 ← phi( play_increase_level/(byte) level_bcd#42 ) + (byte) current_movedown_slow#7 ← (byte/signed byte/word/signed word/dword/signed dword) 1 + to:play_increase_level::@2 +play_increase_level::@4: scope:[play_increase_level] from play_increase_level + (byte) level_bcd#30 ← phi( play_increase_level/(byte) level_bcd#42 ) + (byte) level#16 ← phi( play_increase_level/(byte) level#5 ) + (byte) current_movedown_slow#8 ← *((byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#16) + to:play_increase_level::@2 +play_increase_level::@2: scope:[play_increase_level] from play_increase_level::@1 play_increase_level::@4 + (byte) current_movedown_slow#48 ← phi( play_increase_level::@1/(byte) current_movedown_slow#7 play_increase_level::@4/(byte) current_movedown_slow#8 ) + (byte) level#40 ← phi( play_increase_level::@1/(byte) level#52 play_increase_level::@4/(byte) level#16 ) + (byte) level_bcd#16 ← phi( play_increase_level::@1/(byte) level_bcd#29 play_increase_level::@4/(byte) level_bcd#30 ) + (byte) level_bcd#5 ← ++ (byte) level_bcd#16 + (byte~) play_increase_level::$1 ← (byte) level_bcd#5 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (bool~) play_increase_level::$2 ← (byte~) play_increase_level::$1 == (byte/signed byte/word/signed word/dword/signed dword) 10 + (bool~) play_increase_level::$3 ← ! (bool~) play_increase_level::$2 + if((bool~) play_increase_level::$3) goto play_increase_level::@3 + to:play_increase_level::@6 +play_increase_level::@3: scope:[play_increase_level] from play_increase_level::@2 + (byte) level_bcd#31 ← phi( play_increase_level::@2/(byte) level_bcd#5 ) + (byte) current_movedown_slow#34 ← phi( play_increase_level::@2/(byte) current_movedown_slow#48 ) + (byte) level#28 ← phi( play_increase_level::@2/(byte) level#40 ) + to:play_increase_level::@return +play_increase_level::@6: scope:[play_increase_level] from play_increase_level::@2 + (byte) current_movedown_slow#35 ← phi( play_increase_level::@2/(byte) current_movedown_slow#48 ) + (byte) level#29 ← phi( play_increase_level::@2/(byte) level#40 ) + (byte) level_bcd#17 ← phi( play_increase_level::@2/(byte) level_bcd#5 ) + (byte) level_bcd#6 ← (byte) level_bcd#17 + (byte/signed byte/word/signed word/dword/signed dword) 6 + to:play_increase_level::@return +play_increase_level::@return: scope:[play_increase_level] from play_increase_level::@3 play_increase_level::@6 + (byte) level_bcd#18 ← phi( play_increase_level::@3/(byte) level_bcd#31 play_increase_level::@6/(byte) level_bcd#6 ) + (byte) current_movedown_slow#20 ← phi( play_increase_level::@3/(byte) current_movedown_slow#34 play_increase_level::@6/(byte) current_movedown_slow#35 ) + (byte) level#17 ← phi( play_increase_level::@3/(byte) level#28 play_increase_level::@6/(byte) level#29 ) + (byte) level#6 ← (byte) level#17 + (byte) current_movedown_slow#9 ← (byte) current_movedown_slow#20 + (byte) level_bcd#7 ← (byte) level_bcd#18 + return + to:@return +main: scope:[main] from @36 + (byte) level_bcd#90 ← phi( @36/(byte) level_bcd#34 ) + (dword) score_bcd#75 ← phi( @36/(dword) score_bcd#27 ) + (word) lines_bcd#79 ← phi( @36/(word) lines_bcd#27 ) + (byte) current_movedown_counter#48 ← phi( @36/(byte) current_movedown_counter#20 ) + (byte) keyboard_modifiers#60 ← phi( @36/(byte) keyboard_modifiers#25 ) + (byte) keyboard_events_size#79 ← phi( @36/(byte) keyboard_events_size#28 ) + (byte) render_screen_showing#45 ← phi( @36/(byte) render_screen_showing#14 ) + (byte) level#82 ← phi( @36/(byte) level#32 ) + (byte) current_piece_char#76 ← phi( @36/(byte) current_piece_char#25 ) + (byte) current_ypos#73 ← phi( @36/(byte) current_ypos#38 ) + (byte) current_xpos#99 ← phi( @36/(byte) current_xpos#46 ) + (byte*) current_piece_gfx#89 ← phi( @36/(byte*) current_piece_gfx#35 ) + (byte) current_orientation#73 ← phi( @36/(byte) current_orientation#40 ) + (byte*) current_piece#69 ← phi( @36/(byte*) current_piece#29 ) + (byte) current_movedown_slow#71 ← phi( @36/(byte) current_movedown_slow#39 ) + (byte) render_screen_render#32 ← phi( @36/(byte) render_screen_render#26 ) + (byte) render_screen_show#27 ← phi( @36/(byte) render_screen_show#24 ) call sid_rnd_init to:main::@15 main::@15: scope:[main] from main - (byte) level_bcd#81 ← phi( main/(byte) level_bcd#82 ) - (dword) score_bcd#75 ← phi( main/(dword) score_bcd#76 ) - (word) lines_bcd#79 ← phi( main/(word) lines_bcd#80 ) + (byte) level_bcd#89 ← phi( main/(byte) level_bcd#90 ) + (dword) score_bcd#74 ← phi( main/(dword) score_bcd#75 ) + (word) lines_bcd#78 ← phi( main/(word) lines_bcd#79 ) (byte) current_movedown_counter#47 ← phi( main/(byte) current_movedown_counter#48 ) (byte) keyboard_modifiers#58 ← phi( main/(byte) keyboard_modifiers#60 ) (byte) keyboard_events_size#77 ← phi( main/(byte) keyboard_events_size#79 ) (byte) render_screen_showing#44 ← phi( main/(byte) render_screen_showing#45 ) + (byte) level#77 ← phi( main/(byte) level#82 ) (byte) current_piece_char#69 ← phi( main/(byte) current_piece_char#76 ) (byte) current_ypos#70 ← phi( main/(byte) current_ypos#73 ) (byte) current_xpos#96 ← phi( main/(byte) current_xpos#99 ) (byte*) current_piece_gfx#83 ← phi( main/(byte*) current_piece_gfx#89 ) (byte) current_orientation#70 ← phi( main/(byte) current_orientation#73 ) (byte*) current_piece#64 ← phi( main/(byte*) current_piece#69 ) + (byte) current_movedown_slow#66 ← phi( main/(byte) current_movedown_slow#71 ) (byte) render_screen_render#24 ← phi( main/(byte) render_screen_render#32 ) (byte) render_screen_show#22 ← phi( main/(byte) render_screen_show#27 ) asm { sei } call render_init to:main::@16 main::@16: scope:[main] from main::@15 - (byte) level_bcd#80 ← phi( main::@15/(byte) level_bcd#81 ) - (dword) score_bcd#74 ← phi( main::@15/(dword) score_bcd#75 ) - (word) lines_bcd#78 ← phi( main::@15/(word) lines_bcd#79 ) + (byte) level_bcd#88 ← phi( main::@15/(byte) level_bcd#89 ) + (dword) score_bcd#73 ← phi( main::@15/(dword) score_bcd#74 ) + (word) lines_bcd#77 ← phi( main::@15/(word) lines_bcd#78 ) (byte) current_movedown_counter#46 ← phi( main::@15/(byte) current_movedown_counter#47 ) (byte) keyboard_modifiers#56 ← phi( main::@15/(byte) keyboard_modifiers#58 ) (byte) keyboard_events_size#74 ← phi( main::@15/(byte) keyboard_events_size#77 ) (byte) render_screen_showing#43 ← phi( main::@15/(byte) render_screen_showing#44 ) + (byte) level#70 ← phi( main::@15/(byte) level#77 ) (byte) current_piece_char#60 ← phi( main::@15/(byte) current_piece_char#69 ) (byte) current_ypos#64 ← phi( main::@15/(byte) current_ypos#70 ) (byte) current_xpos#88 ← phi( main::@15/(byte) current_xpos#96 ) (byte*) current_piece_gfx#77 ← phi( main::@15/(byte*) current_piece_gfx#83 ) (byte) current_orientation#65 ← phi( main::@15/(byte) current_orientation#70 ) (byte*) current_piece#59 ← phi( main::@15/(byte*) current_piece#64 ) + (byte) current_movedown_slow#60 ← phi( main::@15/(byte) current_movedown_slow#66 ) (byte) render_screen_render#15 ← phi( main::@15/(byte) render_screen_render#2 ) (byte) render_screen_show#14 ← phi( main::@15/(byte) render_screen_show#2 ) (byte) render_screen_show#5 ← (byte) render_screen_show#14 @@ -2512,45 +2636,50 @@ main::@16: scope:[main] from main::@15 call sprites_init to:main::@17 main::@17: scope:[main] from main::@16 - (byte) level_bcd#78 ← phi( main::@16/(byte) level_bcd#80 ) - (dword) score_bcd#72 ← phi( main::@16/(dword) score_bcd#74 ) - (word) lines_bcd#76 ← phi( main::@16/(word) lines_bcd#78 ) + (byte) level_bcd#86 ← phi( main::@16/(byte) level_bcd#88 ) + (dword) score_bcd#71 ← phi( main::@16/(dword) score_bcd#73 ) + (word) lines_bcd#75 ← phi( main::@16/(word) lines_bcd#77 ) (byte) current_movedown_counter#45 ← phi( main::@16/(byte) current_movedown_counter#46 ) (byte) keyboard_modifiers#54 ← phi( main::@16/(byte) keyboard_modifiers#56 ) (byte) keyboard_events_size#70 ← phi( main::@16/(byte) keyboard_events_size#74 ) (byte) render_screen_showing#40 ← phi( main::@16/(byte) render_screen_showing#43 ) (byte) render_screen_show#54 ← phi( main::@16/(byte) render_screen_show#5 ) (byte) render_screen_render#51 ← phi( main::@16/(byte) render_screen_render#5 ) + (byte) level#62 ← phi( main::@16/(byte) level#70 ) (byte) current_piece_char#47 ← phi( main::@16/(byte) current_piece_char#60 ) (byte) current_ypos#57 ← phi( main::@16/(byte) current_ypos#64 ) (byte) current_xpos#78 ← phi( main::@16/(byte) current_xpos#88 ) (byte*) current_piece_gfx#64 ← phi( main::@16/(byte*) current_piece_gfx#77 ) (byte) current_orientation#58 ← phi( main::@16/(byte) current_orientation#65 ) (byte*) current_piece#49 ← phi( main::@16/(byte*) current_piece#59 ) + (byte) current_movedown_slow#49 ← phi( main::@16/(byte) current_movedown_slow#60 ) call sprites_irq_init to:main::@18 main::@18: scope:[main] from main::@17 - (byte) level_bcd#72 ← phi( main::@17/(byte) level_bcd#78 ) - (dword) score_bcd#68 ← phi( main::@17/(dword) score_bcd#72 ) - (word) lines_bcd#71 ← phi( main::@17/(word) lines_bcd#76 ) + (byte) level_bcd#80 ← phi( main::@17/(byte) level_bcd#86 ) + (dword) score_bcd#67 ← phi( main::@17/(dword) score_bcd#71 ) + (word) lines_bcd#70 ← phi( main::@17/(word) lines_bcd#75 ) (byte) current_movedown_counter#41 ← phi( main::@17/(byte) current_movedown_counter#45 ) (byte) keyboard_modifiers#50 ← phi( main::@17/(byte) keyboard_modifiers#54 ) (byte) keyboard_events_size#66 ← phi( main::@17/(byte) keyboard_events_size#70 ) (byte) render_screen_showing#36 ← phi( main::@17/(byte) render_screen_showing#40 ) (byte) render_screen_show#51 ← phi( main::@17/(byte) render_screen_show#54 ) (byte) render_screen_render#47 ← phi( main::@17/(byte) render_screen_render#51 ) + (byte) level#46 ← phi( main::@17/(byte) level#62 ) (byte) current_piece_char#32 ← phi( main::@17/(byte) current_piece_char#47 ) (byte) current_ypos#44 ← phi( main::@17/(byte) current_ypos#57 ) (byte) current_xpos#60 ← phi( main::@17/(byte) current_xpos#78 ) (byte*) current_piece_gfx#47 ← phi( main::@17/(byte*) current_piece_gfx#64 ) (byte) current_orientation#46 ← phi( main::@17/(byte) current_orientation#58 ) (byte*) current_piece#37 ← phi( main::@17/(byte*) current_piece#49 ) + (byte) current_movedown_slow#36 ← phi( main::@17/(byte) current_movedown_slow#49 ) call play_init to:main::@19 main::@19: scope:[main] from main::@18 - (byte) level_bcd#64 ← phi( main::@18/(byte) level_bcd#72 ) - (dword) score_bcd#62 ← phi( main::@18/(dword) score_bcd#68 ) - (word) lines_bcd#65 ← phi( main::@18/(word) lines_bcd#71 ) + (byte) level_bcd#72 ← phi( main::@18/(byte) level_bcd#80 ) + (byte) level#71 ← phi( main::@18/(byte) level#46 ) + (dword) score_bcd#61 ← phi( main::@18/(dword) score_bcd#67 ) + (word) lines_bcd#64 ← phi( main::@18/(word) lines_bcd#70 ) (byte) current_movedown_counter#38 ← phi( main::@18/(byte) current_movedown_counter#41 ) (byte) keyboard_modifiers#46 ← phi( main::@18/(byte) keyboard_modifiers#50 ) (byte) keyboard_events_size#58 ← phi( main::@18/(byte) keyboard_events_size#66 ) @@ -2563,16 +2692,20 @@ main::@19: scope:[main] from main::@18 (byte*) current_piece_gfx#31 ← phi( main::@18/(byte*) current_piece_gfx#47 ) (byte) current_orientation#36 ← phi( main::@18/(byte) current_orientation#46 ) (byte*) current_piece#26 ← phi( main::@18/(byte*) current_piece#37 ) + (byte) current_movedown_slow#21 ← phi( main::@18/(byte) current_movedown_slow#2 ) + (byte) current_movedown_slow#10 ← (byte) current_movedown_slow#21 call play_spawn_current to:main::@20 main::@20: scope:[main] from main::@19 - (byte) level_bcd#56 ← phi( main::@19/(byte) level_bcd#64 ) - (dword) score_bcd#55 ← phi( main::@19/(dword) score_bcd#62 ) - (word) lines_bcd#57 ← phi( main::@19/(word) lines_bcd#65 ) + (byte) level_bcd#64 ← phi( main::@19/(byte) level_bcd#72 ) + (byte) level#63 ← phi( main::@19/(byte) level#71 ) + (dword) score_bcd#54 ← phi( main::@19/(dword) score_bcd#61 ) + (word) lines_bcd#56 ← phi( main::@19/(word) lines_bcd#64 ) (byte) current_movedown_counter#34 ← phi( main::@19/(byte) current_movedown_counter#38 ) (byte) keyboard_modifiers#40 ← phi( main::@19/(byte) keyboard_modifiers#46 ) (byte) keyboard_events_size#49 ← phi( main::@19/(byte) keyboard_events_size#58 ) (byte) render_screen_showing#28 ← phi( main::@19/(byte) render_screen_showing#32 ) + (byte) current_movedown_slow#67 ← phi( main::@19/(byte) current_movedown_slow#10 ) (byte) render_screen_show#44 ← phi( main::@19/(byte) render_screen_show#48 ) (byte) render_screen_render#28 ← phi( main::@19/(byte) render_screen_render#41 ) (byte) current_piece_char#13 ← phi( main::@19/(byte) current_piece_char#3 ) @@ -2590,9 +2723,10 @@ main::@20: scope:[main] from main::@19 call render_playfield to:main::@21 main::@21: scope:[main] from main::@20 - (byte) level_bcd#46 ← phi( main::@20/(byte) level_bcd#56 ) - (dword) score_bcd#46 ← phi( main::@20/(dword) score_bcd#55 ) - (word) lines_bcd#46 ← phi( main::@20/(word) lines_bcd#57 ) + (byte) level_bcd#54 ← phi( main::@20/(byte) level_bcd#64 ) + (byte) level#53 ← phi( main::@20/(byte) level#63 ) + (dword) score_bcd#45 ← phi( main::@20/(dword) score_bcd#54 ) + (word) lines_bcd#45 ← phi( main::@20/(word) lines_bcd#56 ) (byte) current_movedown_counter#30 ← phi( main::@20/(byte) current_movedown_counter#34 ) (byte) keyboard_modifiers#35 ← phi( main::@20/(byte) keyboard_modifiers#40 ) (byte) keyboard_events_size#41 ← phi( main::@20/(byte) keyboard_events_size#49 ) @@ -2601,16 +2735,18 @@ main::@21: scope:[main] from main::@20 (byte*) current_piece_gfx#65 ← phi( main::@20/(byte*) current_piece_gfx#6 ) (byte) current_orientation#59 ← phi( main::@20/(byte) current_orientation#7 ) (byte*) current_piece#50 ← phi( main::@20/(byte*) current_piece#5 ) + (byte) current_movedown_slow#61 ← phi( main::@20/(byte) current_movedown_slow#67 ) (byte) render_screen_show#36 ← phi( main::@20/(byte) render_screen_show#44 ) (byte) current_xpos#66 ← phi( main::@20/(byte) current_xpos#7 ) (byte) render_screen_render#37 ← phi( main::@20/(byte) render_screen_render#28 ) (byte) current_ypos#23 ← phi( main::@20/(byte) current_ypos#5 ) - call render_current + call render_moving to:main::@22 main::@22: scope:[main] from main::@21 - (byte) level_bcd#35 ← phi( main::@21/(byte) level_bcd#46 ) - (dword) score_bcd#35 ← phi( main::@21/(dword) score_bcd#46 ) - (word) lines_bcd#35 ← phi( main::@21/(word) lines_bcd#46 ) + (byte) level_bcd#43 ← phi( main::@21/(byte) level_bcd#54 ) + (byte) level#41 ← phi( main::@21/(byte) level#53 ) + (dword) score_bcd#34 ← phi( main::@21/(dword) score_bcd#45 ) + (word) lines_bcd#34 ← phi( main::@21/(word) lines_bcd#45 ) (byte) current_movedown_counter#23 ← phi( main::@21/(byte) current_movedown_counter#30 ) (byte) keyboard_modifiers#29 ← phi( main::@21/(byte) keyboard_modifiers#35 ) (byte) keyboard_events_size#32 ← phi( main::@21/(byte) keyboard_events_size#41 ) @@ -2621,13 +2757,15 @@ main::@22: scope:[main] from main::@21 (byte*) current_piece_gfx#48 ← phi( main::@21/(byte*) current_piece_gfx#65 ) (byte) current_orientation#47 ← phi( main::@21/(byte) current_orientation#59 ) (byte*) current_piece#38 ← phi( main::@21/(byte*) current_piece#50 ) + (byte) current_movedown_slow#50 ← phi( main::@21/(byte) current_movedown_slow#61 ) (byte) render_screen_render#33 ← phi( main::@21/(byte) render_screen_render#37 ) (byte) render_screen_show#28 ← phi( main::@21/(byte) render_screen_show#36 ) to:main::@1 main::@1: scope:[main] from main::@22 main::@32 main::@7 - (byte) level_bcd#27 ← phi( main::@22/(byte) level_bcd#35 main::@32/(byte) level_bcd#36 main::@7/(byte) level_bcd#37 ) - (dword) score_bcd#27 ← phi( main::@22/(dword) score_bcd#35 main::@32/(dword) score_bcd#36 main::@7/(dword) score_bcd#37 ) - (word) lines_bcd#27 ← phi( main::@22/(word) lines_bcd#35 main::@32/(word) lines_bcd#36 main::@7/(word) lines_bcd#37 ) + (byte) level_bcd#33 ← phi( main::@22/(byte) level_bcd#43 main::@32/(byte) level_bcd#44 main::@7/(byte) level_bcd#45 ) + (byte) level#31 ← phi( main::@22/(byte) level#41 main::@32/(byte) level#42 main::@7/(byte) level#43 ) + (dword) score_bcd#26 ← phi( main::@22/(dword) score_bcd#34 main::@32/(dword) score_bcd#35 main::@7/(dword) score_bcd#36 ) + (word) lines_bcd#26 ← phi( main::@22/(word) lines_bcd#34 main::@32/(word) lines_bcd#35 main::@7/(word) lines_bcd#36 ) (byte) current_movedown_counter#19 ← phi( main::@22/(byte) current_movedown_counter#23 main::@32/(byte) current_movedown_counter#24 main::@7/(byte) current_movedown_counter#25 ) (byte) keyboard_modifiers#24 ← phi( main::@22/(byte) keyboard_modifiers#29 main::@32/(byte) keyboard_modifiers#30 main::@7/(byte) keyboard_modifiers#31 ) (byte) keyboard_events_size#27 ← phi( main::@22/(byte) keyboard_events_size#32 main::@32/(byte) keyboard_events_size#33 main::@7/(byte) keyboard_events_size#34 ) @@ -2638,6 +2776,7 @@ main::@1: scope:[main] from main::@22 main::@32 main::@7 (byte*) current_piece_gfx#34 ← phi( main::@22/(byte*) current_piece_gfx#48 main::@32/(byte*) current_piece_gfx#49 main::@7/(byte*) current_piece_gfx#50 ) (byte) current_orientation#39 ← phi( main::@22/(byte) current_orientation#47 main::@32/(byte) current_orientation#48 main::@7/(byte) current_orientation#49 ) (byte*) current_piece#28 ← phi( main::@22/(byte*) current_piece#38 main::@32/(byte*) current_piece#39 main::@7/(byte*) current_piece#40 ) + (byte) current_movedown_slow#38 ← phi( main::@22/(byte) current_movedown_slow#50 main::@32/(byte) current_movedown_slow#51 main::@7/(byte) current_movedown_slow#52 ) (byte) render_screen_render#25 ← phi( main::@22/(byte) render_screen_render#33 main::@32/(byte) render_screen_render#6 main::@7/(byte) render_screen_render#34 ) (byte) render_screen_show#23 ← phi( main::@22/(byte) render_screen_show#28 main::@32/(byte) render_screen_show#6 main::@7/(byte) render_screen_show#29 ) if(true) goto main::@2 @@ -2649,9 +2788,11 @@ main::@2: scope:[main] from main::@1 (byte*) current_piece_gfx#90 ← phi( main::@1/(byte*) current_piece_gfx#34 ) (byte) current_orientation#74 ← phi( main::@1/(byte) current_orientation#39 ) (byte*) current_piece#70 ← phi( main::@1/(byte*) current_piece#28 ) - (byte) level_bcd#73 ← phi( main::@1/(byte) level_bcd#27 ) - (dword) score_bcd#69 ← phi( main::@1/(dword) score_bcd#27 ) - (word) lines_bcd#72 ← phi( main::@1/(word) lines_bcd#27 ) + (byte) level_bcd#81 ← phi( main::@1/(byte) level_bcd#33 ) + (byte) current_movedown_slow#74 ← phi( main::@1/(byte) current_movedown_slow#38 ) + (byte) level#78 ← phi( main::@1/(byte) level#31 ) + (dword) score_bcd#68 ← phi( main::@1/(dword) score_bcd#26 ) + (word) lines_bcd#71 ← phi( main::@1/(word) lines_bcd#26 ) (byte) current_ypos#74 ← phi( main::@1/(byte) current_ypos#37 ) (byte) current_movedown_counter#42 ← phi( main::@1/(byte) current_movedown_counter#19 ) (byte) keyboard_modifiers#41 ← phi( main::@1/(byte) keyboard_modifiers#24 ) @@ -2666,9 +2807,11 @@ main::@4: scope:[main] from main::@2 main::@5 (byte*) current_piece_gfx#84 ← phi( main::@2/(byte*) current_piece_gfx#90 main::@5/(byte*) current_piece_gfx#91 ) (byte) current_orientation#71 ← phi( main::@2/(byte) current_orientation#74 main::@5/(byte) current_orientation#75 ) (byte*) current_piece#65 ← phi( main::@2/(byte*) current_piece#70 main::@5/(byte*) current_piece#71 ) - (byte) level_bcd#65 ← phi( main::@2/(byte) level_bcd#73 main::@5/(byte) level_bcd#74 ) - (dword) score_bcd#63 ← phi( main::@2/(dword) score_bcd#69 main::@5/(dword) score_bcd#70 ) - (word) lines_bcd#66 ← phi( main::@2/(word) lines_bcd#72 main::@5/(word) lines_bcd#73 ) + (byte) level_bcd#73 ← phi( main::@2/(byte) level_bcd#81 main::@5/(byte) level_bcd#82 ) + (byte) current_movedown_slow#72 ← phi( main::@2/(byte) current_movedown_slow#74 main::@5/(byte) current_movedown_slow#75 ) + (byte) level#72 ← phi( main::@2/(byte) level#78 main::@5/(byte) level#79 ) + (dword) score_bcd#62 ← phi( main::@2/(dword) score_bcd#68 main::@5/(dword) score_bcd#69 ) + (word) lines_bcd#65 ← phi( main::@2/(word) lines_bcd#71 main::@5/(word) lines_bcd#72 ) (byte) current_ypos#71 ← phi( main::@2/(byte) current_ypos#74 main::@5/(byte) current_ypos#75 ) (byte) current_movedown_counter#39 ← phi( main::@2/(byte) current_movedown_counter#42 main::@5/(byte) current_movedown_counter#43 ) (byte) keyboard_modifiers#36 ← phi( main::@2/(byte) keyboard_modifiers#41 main::@5/(byte) keyboard_modifiers#42 ) @@ -2685,9 +2828,11 @@ main::@5: scope:[main] from main::@4 (byte*) current_piece_gfx#91 ← phi( main::@4/(byte*) current_piece_gfx#84 ) (byte) current_orientation#75 ← phi( main::@4/(byte) current_orientation#71 ) (byte*) current_piece#71 ← phi( main::@4/(byte*) current_piece#65 ) - (byte) level_bcd#74 ← phi( main::@4/(byte) level_bcd#65 ) - (dword) score_bcd#70 ← phi( main::@4/(dword) score_bcd#63 ) - (word) lines_bcd#73 ← phi( main::@4/(word) lines_bcd#66 ) + (byte) level_bcd#82 ← phi( main::@4/(byte) level_bcd#73 ) + (byte) current_movedown_slow#75 ← phi( main::@4/(byte) current_movedown_slow#72 ) + (byte) level#79 ← phi( main::@4/(byte) level#72 ) + (dword) score_bcd#69 ← phi( main::@4/(dword) score_bcd#62 ) + (word) lines_bcd#72 ← phi( main::@4/(word) lines_bcd#65 ) (byte) current_ypos#75 ← phi( main::@4/(byte) current_ypos#71 ) (byte) current_movedown_counter#43 ← phi( main::@4/(byte) current_movedown_counter#39 ) (byte) keyboard_modifiers#42 ← phi( main::@4/(byte) keyboard_modifiers#36 ) @@ -2702,9 +2847,11 @@ main::@6: scope:[main] from main::@4 (byte*) current_piece_gfx#78 ← phi( main::@4/(byte*) current_piece_gfx#84 ) (byte) current_orientation#66 ← phi( main::@4/(byte) current_orientation#71 ) (byte*) current_piece#60 ← phi( main::@4/(byte*) current_piece#65 ) - (byte) level_bcd#57 ← phi( main::@4/(byte) level_bcd#65 ) - (dword) score_bcd#56 ← phi( main::@4/(dword) score_bcd#63 ) - (word) lines_bcd#58 ← phi( main::@4/(word) lines_bcd#66 ) + (byte) level_bcd#65 ← phi( main::@4/(byte) level_bcd#73 ) + (byte) current_movedown_slow#68 ← phi( main::@4/(byte) current_movedown_slow#72 ) + (byte) level#64 ← phi( main::@4/(byte) level#72 ) + (dword) score_bcd#55 ← phi( main::@4/(dword) score_bcd#62 ) + (word) lines_bcd#57 ← phi( main::@4/(word) lines_bcd#65 ) (byte) current_ypos#65 ← phi( main::@4/(byte) current_ypos#71 ) (byte) current_movedown_counter#35 ← phi( main::@4/(byte) current_movedown_counter#39 ) (byte) keyboard_modifiers#32 ← phi( main::@4/(byte) keyboard_modifiers#36 ) @@ -2721,9 +2868,11 @@ main::@23: scope:[main] from main::@6 (byte*) current_piece_gfx#66 ← phi( main::@6/(byte*) current_piece_gfx#78 ) (byte) current_orientation#60 ← phi( main::@6/(byte) current_orientation#66 ) (byte*) current_piece#51 ← phi( main::@6/(byte*) current_piece#60 ) - (byte) level_bcd#47 ← phi( main::@6/(byte) level_bcd#57 ) - (dword) score_bcd#47 ← phi( main::@6/(dword) score_bcd#56 ) - (word) lines_bcd#47 ← phi( main::@6/(word) lines_bcd#58 ) + (byte) level_bcd#55 ← phi( main::@6/(byte) level_bcd#65 ) + (byte) current_movedown_slow#62 ← phi( main::@6/(byte) current_movedown_slow#68 ) + (byte) level#54 ← phi( main::@6/(byte) level#64 ) + (dword) score_bcd#46 ← phi( main::@6/(dword) score_bcd#55 ) + (word) lines_bcd#46 ← phi( main::@6/(word) lines_bcd#57 ) (byte) current_ypos#58 ← phi( main::@6/(byte) current_ypos#65 ) (byte) current_movedown_counter#31 ← phi( main::@6/(byte) current_movedown_counter#35 ) (byte) keyboard_modifiers#23 ← phi( main::@6/(byte) keyboard_modifiers#32 ) @@ -2741,9 +2890,11 @@ main::@24: scope:[main] from main::@23 (byte*) current_piece_gfx#51 ← phi( main::@23/(byte*) current_piece_gfx#66 ) (byte) current_orientation#50 ← phi( main::@23/(byte) current_orientation#60 ) (byte*) current_piece#41 ← phi( main::@23/(byte*) current_piece#51 ) - (byte) level_bcd#38 ← phi( main::@23/(byte) level_bcd#47 ) - (dword) score_bcd#38 ← phi( main::@23/(dword) score_bcd#47 ) - (word) lines_bcd#38 ← phi( main::@23/(word) lines_bcd#47 ) + (byte) level_bcd#46 ← phi( main::@23/(byte) level_bcd#55 ) + (byte) current_movedown_slow#53 ← phi( main::@23/(byte) current_movedown_slow#62 ) + (byte) level#44 ← phi( main::@23/(byte) level#54 ) + (dword) score_bcd#37 ← phi( main::@23/(dword) score_bcd#46 ) + (word) lines_bcd#37 ← phi( main::@23/(word) lines_bcd#46 ) (byte) current_ypos#48 ← phi( main::@23/(byte) current_ypos#58 ) (byte) current_movedown_counter#26 ← phi( main::@23/(byte) current_movedown_counter#31 ) (byte) keyboard_modifiers#15 ← phi( main::@23/(byte) keyboard_modifiers#6 ) @@ -2763,9 +2914,11 @@ main::@25: scope:[main] from main::@24 (byte*) current_piece_gfx#32 ← phi( main::@24/(byte*) current_piece_gfx#51 ) (byte) current_orientation#37 ← phi( main::@24/(byte) current_orientation#50 ) (byte*) current_piece#27 ← phi( main::@24/(byte*) current_piece#41 ) - (byte) level_bcd#26 ← phi( main::@24/(byte) level_bcd#38 ) - (dword) score_bcd#26 ← phi( main::@24/(dword) score_bcd#38 ) - (word) lines_bcd#26 ← phi( main::@24/(word) lines_bcd#38 ) + (byte) level_bcd#32 ← phi( main::@24/(byte) level_bcd#46 ) + (byte) current_movedown_slow#37 ← phi( main::@24/(byte) current_movedown_slow#53 ) + (byte) level#30 ← phi( main::@24/(byte) level#44 ) + (dword) score_bcd#25 ← phi( main::@24/(dword) score_bcd#37 ) + (word) lines_bcd#25 ← phi( main::@24/(word) lines_bcd#37 ) (byte) current_ypos#36 ← phi( main::@24/(byte) current_ypos#48 ) (byte) current_movedown_counter#14 ← phi( main::@24/(byte) current_movedown_counter#26 ) (byte) keyboard_events_size#18 ← phi( main::@24/(byte) keyboard_events_size#5 ) @@ -2791,7 +2944,9 @@ main::@26: scope:[main] from main::@25 (byte*) current_piece_gfx#18 ← phi( main::@25/(byte*) current_piece_gfx#1 ) (byte) current_orientation#22 ← phi( main::@25/(byte) current_orientation#2 ) (byte*) current_piece#15 ← phi( main::@25/(byte*) current_piece#2 ) - (byte) level_bcd#15 ← phi( main::@25/(byte) level_bcd#2 ) + (byte) level_bcd#19 ← phi( main::@25/(byte) level_bcd#2 ) + (byte) current_movedown_slow#22 ← phi( main::@25/(byte) current_movedown_slow#4 ) + (byte) level#18 ← phi( main::@25/(byte) level#2 ) (dword) score_bcd#13 ← phi( main::@25/(dword) score_bcd#2 ) (word) lines_bcd#14 ← phi( main::@25/(word) lines_bcd#2 ) (byte) current_ypos#20 ← phi( main::@25/(byte) current_ypos#2 ) @@ -2802,7 +2957,9 @@ main::@26: scope:[main] from main::@25 (byte) current_ypos#6 ← (byte) current_ypos#20 (word) lines_bcd#5 ← (word) lines_bcd#14 (dword) score_bcd#5 ← (dword) score_bcd#13 - (byte) level_bcd#6 ← (byte) level_bcd#15 + (byte) level#7 ← (byte) level#18 + (byte) current_movedown_slow#11 ← (byte) current_movedown_slow#22 + (byte) level_bcd#8 ← (byte) level_bcd#19 (byte*) current_piece#6 ← (byte*) current_piece#15 (byte) current_orientation#8 ← (byte) current_orientation#22 (byte*) current_piece_gfx#7 ← (byte*) current_piece_gfx#18 @@ -2814,14 +2971,16 @@ main::@26: scope:[main] from main::@25 (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 to:main::@27 main::@27: scope:[main] from main::@26 - (byte) level_bcd#58 ← phi( main::@26/(byte) level_bcd#6 ) - (dword) score_bcd#57 ← phi( main::@26/(dword) score_bcd#5 ) - (word) lines_bcd#59 ← phi( main::@26/(word) lines_bcd#5 ) + (byte) level_bcd#66 ← phi( main::@26/(byte) level_bcd#8 ) + (byte) level#65 ← phi( main::@26/(byte) level#7 ) + (dword) score_bcd#56 ← phi( main::@26/(dword) score_bcd#5 ) + (word) lines_bcd#58 ← phi( main::@26/(word) lines_bcd#5 ) (byte) current_movedown_counter#36 ← phi( main::@26/(byte) current_movedown_counter#4 ) (byte) keyboard_modifiers#43 ← phi( main::@26/(byte) keyboard_modifiers#47 ) (byte) keyboard_events_size#52 ← phi( main::@26/(byte) keyboard_events_size#59 ) (byte) render_screen_showing#29 ← phi( main::@26/(byte) render_screen_showing#33 ) (byte) current_piece_char#62 ← phi( main::@26/(byte) current_piece_char#5 ) + (byte) current_movedown_slow#69 ← phi( main::@26/(byte) current_movedown_slow#11 ) (byte) render_screen_render#48 ← phi( main::@26/(byte) render_screen_render#52 ) (byte) render_screen_show#45 ← phi( main::@26/(byte) render_screen_show#49 ) (byte*) current_piece#58 ← phi( main::@26/(byte*) current_piece#6 ) @@ -2840,9 +2999,10 @@ main::@27: scope:[main] from main::@26 (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 to:main::@28 main::@28: scope:[main] from main::@27 - (byte) level_bcd#48 ← phi( main::@27/(byte) level_bcd#58 ) - (dword) score_bcd#48 ← phi( main::@27/(dword) score_bcd#57 ) - (word) lines_bcd#48 ← phi( main::@27/(word) lines_bcd#59 ) + (byte) level_bcd#56 ← phi( main::@27/(byte) level_bcd#66 ) + (byte) level#55 ← phi( main::@27/(byte) level#65 ) + (dword) score_bcd#47 ← phi( main::@27/(dword) score_bcd#56 ) + (word) lines_bcd#47 ← phi( main::@27/(word) lines_bcd#58 ) (byte) current_movedown_counter#32 ← phi( main::@27/(byte) current_movedown_counter#36 ) (byte) keyboard_modifiers#37 ← phi( main::@27/(byte) keyboard_modifiers#43 ) (byte) keyboard_events_size#43 ← phi( main::@27/(byte) keyboard_events_size#52 ) @@ -2851,6 +3011,7 @@ main::@28: scope:[main] from main::@27 (byte) current_ypos#59 ← phi( main::@27/(byte) current_ypos#55 ) (byte) current_xpos#80 ← phi( main::@27/(byte) current_xpos#9 ) (byte*) current_piece#52 ← phi( main::@27/(byte*) current_piece#58 ) + (byte) current_movedown_slow#63 ← phi( main::@27/(byte) current_movedown_slow#69 ) (byte) render_screen_render#42 ← phi( main::@27/(byte) render_screen_render#48 ) (byte) render_screen_show#39 ← phi( main::@27/(byte) render_screen_show#45 ) (byte) main::render#6 ← phi( main::@27/(byte) main::render#2 ) @@ -2866,9 +3027,10 @@ main::@28: scope:[main] from main::@27 if((bool~) main::$16) goto main::@7 to:main::@13 main::@7: scope:[main] from main::@28 - (byte) level_bcd#37 ← phi( main::@28/(byte) level_bcd#48 ) - (dword) score_bcd#37 ← phi( main::@28/(dword) score_bcd#48 ) - (word) lines_bcd#37 ← phi( main::@28/(word) lines_bcd#48 ) + (byte) level_bcd#45 ← phi( main::@28/(byte) level_bcd#56 ) + (byte) level#43 ← phi( main::@28/(byte) level#55 ) + (dword) score_bcd#36 ← phi( main::@28/(dword) score_bcd#47 ) + (word) lines_bcd#36 ← phi( main::@28/(word) lines_bcd#47 ) (byte) current_movedown_counter#25 ← phi( main::@28/(byte) current_movedown_counter#32 ) (byte) keyboard_modifiers#31 ← phi( main::@28/(byte) keyboard_modifiers#37 ) (byte) keyboard_events_size#34 ← phi( main::@28/(byte) keyboard_events_size#43 ) @@ -2879,12 +3041,14 @@ main::@7: scope:[main] from main::@28 (byte*) current_piece_gfx#50 ← phi( main::@28/(byte*) current_piece_gfx#8 ) (byte) current_orientation#49 ← phi( main::@28/(byte) current_orientation#9 ) (byte*) current_piece#40 ← phi( main::@28/(byte*) current_piece#52 ) + (byte) current_movedown_slow#52 ← phi( main::@28/(byte) current_movedown_slow#63 ) (byte) render_screen_render#34 ← phi( main::@28/(byte) render_screen_render#42 ) (byte) render_screen_show#29 ← phi( main::@28/(byte) render_screen_show#39 ) to:main::@1 main::@13: scope:[main] from main::@28 - (byte) level_bcd#75 ← phi( main::@28/(byte) level_bcd#48 ) - (word) lines_bcd#74 ← phi( main::@28/(word) lines_bcd#48 ) + (byte) level_bcd#83 ← phi( main::@28/(byte) level_bcd#56 ) + (byte) level#80 ← phi( main::@28/(byte) level#55 ) + (word) lines_bcd#73 ← phi( main::@28/(word) lines_bcd#47 ) (byte) current_movedown_counter#44 ← phi( main::@28/(byte) current_movedown_counter#32 ) (byte) keyboard_modifiers#52 ← phi( main::@28/(byte) keyboard_modifiers#37 ) (byte) keyboard_events_size#67 ← phi( main::@28/(byte) keyboard_events_size#43 ) @@ -2892,7 +3056,8 @@ main::@13: scope:[main] from main::@28 (byte) current_piece_char#79 ← phi( main::@28/(byte) current_piece_char#50 ) (byte) current_orientation#76 ← phi( main::@28/(byte) current_orientation#9 ) (byte*) current_piece#72 ← phi( main::@28/(byte*) current_piece#52 ) - (dword) score_bcd#64 ← phi( main::@28/(dword) score_bcd#48 ) + (byte) current_movedown_slow#76 ← phi( main::@28/(byte) current_movedown_slow#63 ) + (dword) score_bcd#63 ← phi( main::@28/(dword) score_bcd#47 ) (byte*) current_piece_gfx#85 ← phi( main::@28/(byte*) current_piece_gfx#8 ) (byte) render_screen_show#46 ← phi( main::@28/(byte) render_screen_show#39 ) (byte) current_xpos#90 ← phi( main::@28/(byte) current_xpos#80 ) @@ -2901,8 +3066,9 @@ main::@13: scope:[main] from main::@28 call render_playfield to:main::@29 main::@29: scope:[main] from main::@13 - (byte) level_bcd#66 ← phi( main::@13/(byte) level_bcd#75 ) - (word) lines_bcd#67 ← phi( main::@13/(word) lines_bcd#74 ) + (byte) level_bcd#74 ← phi( main::@13/(byte) level_bcd#83 ) + (byte) level#73 ← phi( main::@13/(byte) level#80 ) + (word) lines_bcd#66 ← phi( main::@13/(word) lines_bcd#73 ) (byte) current_movedown_counter#40 ← phi( main::@13/(byte) current_movedown_counter#44 ) (byte) keyboard_modifiers#48 ← phi( main::@13/(byte) keyboard_modifiers#52 ) (byte) keyboard_events_size#60 ← phi( main::@13/(byte) keyboard_events_size#67 ) @@ -2910,17 +3076,19 @@ main::@29: scope:[main] from main::@13 (byte) current_piece_char#71 ← phi( main::@13/(byte) current_piece_char#79 ) (byte) current_orientation#72 ← phi( main::@13/(byte) current_orientation#76 ) (byte*) current_piece#66 ← phi( main::@13/(byte*) current_piece#72 ) - (dword) score_bcd#58 ← phi( main::@13/(dword) score_bcd#64 ) + (byte) current_movedown_slow#73 ← phi( main::@13/(byte) current_movedown_slow#76 ) + (dword) score_bcd#57 ← phi( main::@13/(dword) score_bcd#63 ) (byte*) current_piece_gfx#68 ← phi( main::@13/(byte*) current_piece_gfx#85 ) (byte) render_screen_show#40 ← phi( main::@13/(byte) render_screen_show#46 ) (byte) current_xpos#67 ← phi( main::@13/(byte) current_xpos#90 ) (byte) render_screen_render#35 ← phi( main::@13/(byte) render_screen_render#27 ) (byte) current_ypos#24 ← phi( main::@13/(byte) current_ypos#49 ) - call render_current + call render_moving to:main::@30 main::@30: scope:[main] from main::@29 - (byte) level_bcd#59 ← phi( main::@29/(byte) level_bcd#66 ) - (word) lines_bcd#60 ← phi( main::@29/(word) lines_bcd#67 ) + (byte) level_bcd#67 ← phi( main::@29/(byte) level_bcd#74 ) + (byte) level#66 ← phi( main::@29/(byte) level#73 ) + (word) lines_bcd#59 ← phi( main::@29/(word) lines_bcd#66 ) (byte) current_movedown_counter#37 ← phi( main::@29/(byte) current_movedown_counter#40 ) (byte) keyboard_modifiers#44 ← phi( main::@29/(byte) keyboard_modifiers#48 ) (byte) keyboard_events_size#53 ← phi( main::@29/(byte) keyboard_events_size#60 ) @@ -2931,15 +3099,17 @@ main::@30: scope:[main] from main::@29 (byte*) current_piece_gfx#79 ← phi( main::@29/(byte*) current_piece_gfx#68 ) (byte) current_orientation#67 ← phi( main::@29/(byte) current_orientation#72 ) (byte*) current_piece#61 ← phi( main::@29/(byte*) current_piece#66 ) - (dword) score_bcd#40 ← phi( main::@29/(dword) score_bcd#58 ) + (byte) current_movedown_slow#70 ← phi( main::@29/(byte) current_movedown_slow#73 ) + (dword) score_bcd#39 ← phi( main::@29/(dword) score_bcd#57 ) (byte) render_screen_show#31 ← phi( main::@29/(byte) render_screen_show#40 ) (byte) render_screen_render#20 ← phi( main::@29/(byte) render_screen_render#35 ) call render_score to:main::@31 main::@31: scope:[main] from main::@30 - (byte) level_bcd#49 ← phi( main::@30/(byte) level_bcd#59 ) - (dword) score_bcd#49 ← phi( main::@30/(dword) score_bcd#40 ) - (word) lines_bcd#49 ← phi( main::@30/(word) lines_bcd#60 ) + (byte) level_bcd#57 ← phi( main::@30/(byte) level_bcd#67 ) + (byte) level#56 ← phi( main::@30/(byte) level#66 ) + (dword) score_bcd#48 ← phi( main::@30/(dword) score_bcd#39 ) + (word) lines_bcd#48 ← phi( main::@30/(word) lines_bcd#59 ) (byte) current_movedown_counter#33 ← phi( main::@30/(byte) current_movedown_counter#37 ) (byte) keyboard_modifiers#38 ← phi( main::@30/(byte) keyboard_modifiers#44 ) (byte) keyboard_events_size#44 ← phi( main::@30/(byte) keyboard_events_size#53 ) @@ -2950,14 +3120,16 @@ main::@31: scope:[main] from main::@30 (byte*) current_piece_gfx#67 ← phi( main::@30/(byte*) current_piece_gfx#79 ) (byte) current_orientation#61 ← phi( main::@30/(byte) current_orientation#67 ) (byte*) current_piece#53 ← phi( main::@30/(byte*) current_piece#61 ) + (byte) current_movedown_slow#64 ← phi( main::@30/(byte) current_movedown_slow#70 ) (byte) render_screen_show#21 ← phi( main::@30/(byte) render_screen_show#31 ) (byte) render_screen_render#19 ← phi( main::@30/(byte) render_screen_render#20 ) call render_screen_swap to:main::@32 main::@32: scope:[main] from main::@31 - (byte) level_bcd#36 ← phi( main::@31/(byte) level_bcd#49 ) - (dword) score_bcd#36 ← phi( main::@31/(dword) score_bcd#49 ) - (word) lines_bcd#36 ← phi( main::@31/(word) lines_bcd#49 ) + (byte) level_bcd#44 ← phi( main::@31/(byte) level_bcd#57 ) + (byte) level#42 ← phi( main::@31/(byte) level#56 ) + (dword) score_bcd#35 ← phi( main::@31/(dword) score_bcd#48 ) + (word) lines_bcd#35 ← phi( main::@31/(word) lines_bcd#48 ) (byte) current_movedown_counter#24 ← phi( main::@31/(byte) current_movedown_counter#33 ) (byte) keyboard_modifiers#30 ← phi( main::@31/(byte) keyboard_modifiers#38 ) (byte) keyboard_events_size#33 ← phi( main::@31/(byte) keyboard_events_size#44 ) @@ -2968,15 +3140,17 @@ main::@32: scope:[main] from main::@31 (byte*) current_piece_gfx#49 ← phi( main::@31/(byte*) current_piece_gfx#67 ) (byte) current_orientation#48 ← phi( main::@31/(byte) current_orientation#61 ) (byte*) current_piece#39 ← phi( main::@31/(byte*) current_piece#53 ) + (byte) current_movedown_slow#51 ← phi( main::@31/(byte) current_movedown_slow#64 ) (byte) render_screen_show#15 ← phi( main::@31/(byte) render_screen_show#4 ) (byte) render_screen_render#16 ← phi( main::@31/(byte) render_screen_render#4 ) (byte) render_screen_render#6 ← (byte) render_screen_render#16 (byte) render_screen_show#6 ← (byte) render_screen_show#15 to:main::@1 main::@return: scope:[main] from main::@1 - (byte) level_bcd#16 ← phi( main::@1/(byte) level_bcd#27 ) - (dword) score_bcd#14 ← phi( main::@1/(dword) score_bcd#27 ) - (word) lines_bcd#15 ← phi( main::@1/(word) lines_bcd#27 ) + (byte) level_bcd#20 ← phi( main::@1/(byte) level_bcd#33 ) + (byte) level#19 ← phi( main::@1/(byte) level#31 ) + (dword) score_bcd#14 ← phi( main::@1/(dword) score_bcd#26 ) + (word) lines_bcd#15 ← phi( main::@1/(word) lines_bcd#26 ) (byte) current_movedown_counter#12 ← phi( main::@1/(byte) current_movedown_counter#19 ) (byte) keyboard_modifiers#16 ← phi( main::@1/(byte) keyboard_modifiers#24 ) (byte) keyboard_events_size#19 ← phi( main::@1/(byte) keyboard_events_size#27 ) @@ -2987,10 +3161,12 @@ main::@return: scope:[main] from main::@1 (byte*) current_piece_gfx#20 ← phi( main::@1/(byte*) current_piece_gfx#34 ) (byte) current_orientation#24 ← phi( main::@1/(byte) current_orientation#39 ) (byte*) current_piece#16 ← phi( main::@1/(byte*) current_piece#28 ) + (byte) current_movedown_slow#23 ← phi( main::@1/(byte) current_movedown_slow#38 ) (byte) render_screen_render#17 ← phi( main::@1/(byte) render_screen_render#25 ) (byte) render_screen_show#16 ← phi( main::@1/(byte) render_screen_show#23 ) (byte) render_screen_show#7 ← (byte) render_screen_show#16 (byte) render_screen_render#7 ← (byte) render_screen_render#17 + (byte) current_movedown_slow#12 ← (byte) current_movedown_slow#23 (byte*) current_piece#7 ← (byte*) current_piece#16 (byte) current_orientation#10 ← (byte) current_orientation#24 (byte*) current_piece_gfx#9 ← (byte*) current_piece_gfx#20 @@ -3003,16 +3179,18 @@ main::@return: scope:[main] from main::@1 (byte) current_movedown_counter#5 ← (byte) current_movedown_counter#12 (word) lines_bcd#6 ← (word) lines_bcd#15 (dword) score_bcd#6 ← (dword) score_bcd#14 - (byte) level_bcd#7 ← (byte) level_bcd#16 + (byte) level#8 ← (byte) level#19 + (byte) level_bcd#9 ← (byte) level_bcd#20 return to:@return -@35: scope:[] from @29 +@36: scope:[] from @29 (byte) irq_raster_next#18 ← phi( @29/(byte) irq_raster_next#19 ) (byte) irq_cnt#17 ← phi( @29/(byte) irq_cnt#19 ) (byte) irq_sprite_ptr#15 ← phi( @29/(byte) irq_sprite_ptr#16 ) - (byte) level_bcd#28 ← phi( @29/(byte) level_bcd#39 ) - (dword) score_bcd#28 ← phi( @29/(dword) score_bcd#39 ) - (word) lines_bcd#28 ← phi( @29/(word) lines_bcd#39 ) + (byte) level_bcd#34 ← phi( @29/(byte) level_bcd#47 ) + (byte) level#32 ← phi( @29/(byte) level#45 ) + (dword) score_bcd#27 ← phi( @29/(dword) score_bcd#38 ) + (word) lines_bcd#27 ← phi( @29/(word) lines_bcd#38 ) (byte) current_movedown_counter#20 ← phi( @29/(byte) current_movedown_counter#27 ) (byte) keyboard_modifiers#25 ← phi( @29/(byte) keyboard_modifiers#33 ) (byte) keyboard_events_size#28 ← phi( @29/(byte) keyboard_events_size#36 ) @@ -3023,29 +3201,33 @@ main::@return: scope:[main] from main::@1 (byte*) current_piece_gfx#35 ← phi( @29/(byte*) current_piece_gfx#52 ) (byte) current_orientation#40 ← phi( @29/(byte) current_orientation#51 ) (byte*) current_piece#29 ← phi( @29/(byte*) current_piece#42 ) + (byte) current_movedown_slow#39 ← phi( @29/(byte) current_movedown_slow#54 ) (byte) render_screen_render#26 ← phi( @29/(byte) render_screen_render#36 ) (byte) render_screen_show#24 ← phi( @29/(byte) render_screen_show#32 ) (byte) irq_sprite_ypos#8 ← phi( @29/(byte) irq_sprite_ypos#15 ) call main - to:@37 -@37: scope:[] from @35 - (byte) level_bcd#17 ← phi( @35/(byte) level_bcd#7 ) - (dword) score_bcd#15 ← phi( @35/(dword) score_bcd#6 ) - (word) lines_bcd#16 ← phi( @35/(word) lines_bcd#6 ) - (byte) current_movedown_counter#13 ← phi( @35/(byte) current_movedown_counter#5 ) - (byte) keyboard_modifiers#17 ← phi( @35/(byte) keyboard_modifiers#8 ) - (byte) keyboard_events_size#20 ← phi( @35/(byte) keyboard_events_size#8 ) - (byte) render_screen_showing#10 ← phi( @35/(byte) render_screen_showing#4 ) - (byte) current_piece_char#16 ← phi( @35/(byte) current_piece_char#6 ) - (byte) current_ypos#22 ← phi( @35/(byte) current_ypos#7 ) - (byte) current_xpos#28 ← phi( @35/(byte) current_xpos#10 ) - (byte*) current_piece_gfx#21 ← phi( @35/(byte*) current_piece_gfx#9 ) - (byte) current_orientation#25 ← phi( @35/(byte) current_orientation#10 ) - (byte*) current_piece#17 ← phi( @35/(byte*) current_piece#7 ) - (byte) render_screen_render#18 ← phi( @35/(byte) render_screen_render#7 ) - (byte) render_screen_show#17 ← phi( @35/(byte) render_screen_show#7 ) + to:@38 +@38: scope:[] from @36 + (byte) level_bcd#21 ← phi( @36/(byte) level_bcd#9 ) + (byte) level#20 ← phi( @36/(byte) level#8 ) + (dword) score_bcd#15 ← phi( @36/(dword) score_bcd#6 ) + (word) lines_bcd#16 ← phi( @36/(word) lines_bcd#6 ) + (byte) current_movedown_counter#13 ← phi( @36/(byte) current_movedown_counter#5 ) + (byte) keyboard_modifiers#17 ← phi( @36/(byte) keyboard_modifiers#8 ) + (byte) keyboard_events_size#20 ← phi( @36/(byte) keyboard_events_size#8 ) + (byte) render_screen_showing#10 ← phi( @36/(byte) render_screen_showing#4 ) + (byte) current_piece_char#16 ← phi( @36/(byte) current_piece_char#6 ) + (byte) current_ypos#22 ← phi( @36/(byte) current_ypos#7 ) + (byte) current_xpos#28 ← phi( @36/(byte) current_xpos#10 ) + (byte*) current_piece_gfx#21 ← phi( @36/(byte*) current_piece_gfx#9 ) + (byte) current_orientation#25 ← phi( @36/(byte) current_orientation#10 ) + (byte*) current_piece#17 ← phi( @36/(byte*) current_piece#7 ) + (byte) current_movedown_slow#24 ← phi( @36/(byte) current_movedown_slow#12 ) + (byte) render_screen_render#18 ← phi( @36/(byte) render_screen_render#7 ) + (byte) render_screen_show#17 ← phi( @36/(byte) render_screen_show#7 ) (byte) render_screen_show#8 ← (byte) render_screen_show#17 (byte) render_screen_render#8 ← (byte) render_screen_render#18 + (byte) current_movedown_slow#13 ← (byte) current_movedown_slow#24 (byte*) current_piece#8 ← (byte*) current_piece#17 (byte) current_orientation#11 ← (byte) current_orientation#25 (byte*) current_piece_gfx#10 ← (byte*) current_piece_gfx#21 @@ -3058,9 +3240,10 @@ main::@return: scope:[main] from main::@1 (byte) current_movedown_counter#6 ← (byte) current_movedown_counter#13 (word) lines_bcd#7 ← (word) lines_bcd#16 (dword) score_bcd#7 ← (dword) score_bcd#15 - (byte) level_bcd#8 ← (byte) level_bcd#17 + (byte) level#9 ← (byte) level#20 + (byte) level_bcd#10 ← (byte) level_bcd#21 to:@end -@end: scope:[] from @37 +@end: scope:[] from @38 SYMBOL TABLE SSA (byte~) $0 @@ -3096,9 +3279,9 @@ SYMBOL TABLE SSA (label) @23 (label) @25 (label) @29 -(label) @35 (label) @36 (label) @37 +(label) @38 (label) @5 (label) @9 (label) @begin @@ -3337,6 +3520,8 @@ SYMBOL TABLE SSA (byte) LIGHT_GREEN#0 (byte) LIGHT_GREY (byte) LIGHT_GREY#0 +(byte[]) MOVEDOWN_SLOW_SPEEDS +(byte[]) MOVEDOWN_SLOW_SPEEDS#0 (byte) ORANGE (byte) ORANGE#0 (word[]) PIECES @@ -3535,6 +3720,82 @@ SYMBOL TABLE SSA (byte) current_movedown_fast#0 (byte) current_movedown_slow (byte) current_movedown_slow#0 +(byte) current_movedown_slow#1 +(byte) current_movedown_slow#10 +(byte) current_movedown_slow#11 +(byte) current_movedown_slow#12 +(byte) current_movedown_slow#13 +(byte) current_movedown_slow#14 +(byte) current_movedown_slow#15 +(byte) current_movedown_slow#16 +(byte) current_movedown_slow#17 +(byte) current_movedown_slow#18 +(byte) current_movedown_slow#19 +(byte) current_movedown_slow#2 +(byte) current_movedown_slow#20 +(byte) current_movedown_slow#21 +(byte) current_movedown_slow#22 +(byte) current_movedown_slow#23 +(byte) current_movedown_slow#24 +(byte) current_movedown_slow#25 +(byte) current_movedown_slow#26 +(byte) current_movedown_slow#27 +(byte) current_movedown_slow#28 +(byte) current_movedown_slow#29 +(byte) current_movedown_slow#3 +(byte) current_movedown_slow#30 +(byte) current_movedown_slow#31 +(byte) current_movedown_slow#32 +(byte) current_movedown_slow#33 +(byte) current_movedown_slow#34 +(byte) current_movedown_slow#35 +(byte) current_movedown_slow#36 +(byte) current_movedown_slow#37 +(byte) current_movedown_slow#38 +(byte) current_movedown_slow#39 +(byte) current_movedown_slow#4 +(byte) current_movedown_slow#40 +(byte) current_movedown_slow#41 +(byte) current_movedown_slow#42 +(byte) current_movedown_slow#43 +(byte) current_movedown_slow#44 +(byte) current_movedown_slow#45 +(byte) current_movedown_slow#46 +(byte) current_movedown_slow#47 +(byte) current_movedown_slow#48 +(byte) current_movedown_slow#49 +(byte) current_movedown_slow#5 +(byte) current_movedown_slow#50 +(byte) current_movedown_slow#51 +(byte) current_movedown_slow#52 +(byte) current_movedown_slow#53 +(byte) current_movedown_slow#54 +(byte) current_movedown_slow#55 +(byte) current_movedown_slow#56 +(byte) current_movedown_slow#57 +(byte) current_movedown_slow#58 +(byte) current_movedown_slow#59 +(byte) current_movedown_slow#6 +(byte) current_movedown_slow#60 +(byte) current_movedown_slow#61 +(byte) current_movedown_slow#62 +(byte) current_movedown_slow#63 +(byte) current_movedown_slow#64 +(byte) current_movedown_slow#65 +(byte) current_movedown_slow#66 +(byte) current_movedown_slow#67 +(byte) current_movedown_slow#68 +(byte) current_movedown_slow#69 +(byte) current_movedown_slow#7 +(byte) current_movedown_slow#70 +(byte) current_movedown_slow#71 +(byte) current_movedown_slow#72 +(byte) current_movedown_slow#73 +(byte) current_movedown_slow#74 +(byte) current_movedown_slow#75 +(byte) current_movedown_slow#76 +(byte) current_movedown_slow#8 +(byte) current_movedown_slow#9 (byte) current_orientation (byte) current_orientation#0 (byte) current_orientation#1 @@ -4481,6 +4742,91 @@ SYMBOL TABLE SSA (byte) keyboard_modifiers#9 (byte[8]) keyboard_scan_values (byte[8]) keyboard_scan_values#0 +(byte) level +(byte) level#0 +(byte) level#1 +(byte) level#10 +(byte) level#11 +(byte) level#12 +(byte) level#13 +(byte) level#14 +(byte) level#15 +(byte) level#16 +(byte) level#17 +(byte) level#18 +(byte) level#19 +(byte) level#2 +(byte) level#20 +(byte) level#21 +(byte) level#22 +(byte) level#23 +(byte) level#24 +(byte) level#25 +(byte) level#26 +(byte) level#27 +(byte) level#28 +(byte) level#29 +(byte) level#3 +(byte) level#30 +(byte) level#31 +(byte) level#32 +(byte) level#33 +(byte) level#34 +(byte) level#35 +(byte) level#36 +(byte) level#37 +(byte) level#38 +(byte) level#39 +(byte) level#4 +(byte) level#40 +(byte) level#41 +(byte) level#42 +(byte) level#43 +(byte) level#44 +(byte) level#45 +(byte) level#46 +(byte) level#47 +(byte) level#48 +(byte) level#49 +(byte) level#5 +(byte) level#50 +(byte) level#51 +(byte) level#52 +(byte) level#53 +(byte) level#54 +(byte) level#55 +(byte) level#56 +(byte) level#57 +(byte) level#58 +(byte) level#59 +(byte) level#6 +(byte) level#60 +(byte) level#61 +(byte) level#62 +(byte) level#63 +(byte) level#64 +(byte) level#65 +(byte) level#66 +(byte) level#67 +(byte) level#68 +(byte) level#69 +(byte) level#7 +(byte) level#70 +(byte) level#71 +(byte) level#72 +(byte) level#73 +(byte) level#74 +(byte) level#75 +(byte) level#76 +(byte) level#77 +(byte) level#78 +(byte) level#79 +(byte) level#8 +(byte) level#80 +(byte) level#81 +(byte) level#82 +(byte) level#83 +(byte) level#9 (byte) level_bcd (byte) level_bcd#0 (byte) level_bcd#1 @@ -4564,7 +4910,15 @@ SYMBOL TABLE SSA (byte) level_bcd#80 (byte) level_bcd#81 (byte) level_bcd#82 +(byte) level_bcd#83 +(byte) level_bcd#84 +(byte) level_bcd#85 +(byte) level_bcd#86 +(byte) level_bcd#87 +(byte) level_bcd#88 +(byte) level_bcd#89 (byte) level_bcd#9 +(byte) level_bcd#90 (word) lines_bcd (word) lines_bcd#0 (word) lines_bcd#1 @@ -4645,7 +4999,6 @@ SYMBOL TABLE SSA (word) lines_bcd#78 (word) lines_bcd#79 (word) lines_bcd#8 -(word) lines_bcd#80 (word) lines_bcd#9 (void()) main() (byte~) main::$11 @@ -4844,6 +5197,17 @@ SYMBOL TABLE SSA (byte) play_collision::ypos2#7 (byte) play_collision::ypos2#8 (byte) play_collision::ypos2#9 +(void()) play_increase_level() +(bool~) play_increase_level::$0 +(byte~) play_increase_level::$1 +(bool~) play_increase_level::$2 +(bool~) play_increase_level::$3 +(label) play_increase_level::@1 +(label) play_increase_level::@2 +(label) play_increase_level::@3 +(label) play_increase_level::@4 +(label) play_increase_level::@6 +(label) play_increase_level::@return (void()) play_init() (byte/signed word/word/dword/signed dword~) play_init::$0 (byte~) play_init::$1 @@ -5168,8 +5532,6 @@ SYMBOL TABLE SSA (void()) play_update_score((byte) play_update_score::removed) (bool~) play_update_score::$0 (bool~) play_update_score::$1 -(bool~) play_update_score::$10 -(bool~) play_update_score::$11 (byte~) play_update_score::$2 (byte~) play_update_score::$3 (byte~) play_update_score::$4 @@ -5177,13 +5539,11 @@ SYMBOL TABLE SSA (byte~) play_update_score::$6 (bool~) play_update_score::$7 (bool~) play_update_score::$8 -(byte~) play_update_score::$9 (label) play_update_score::@1 (label) play_update_score::@2 (label) play_update_score::@3 (label) play_update_score::@4 (label) play_update_score::@5 -(label) play_update_score::@6 (label) play_update_score::@return (dword) play_update_score::add_bcd (dword) play_update_score::add_bcd#0 @@ -5254,91 +5614,6 @@ SYMBOL TABLE SSA (byte*) render_bcd::screen_pos#2 (byte*) render_bcd::screen_pos#3 (byte*) render_bcd::screen_pos#4 -(void()) render_current() -(byte~) render_current::$0 -(bool~) render_current::$1 -(bool~) render_current::$10 -(bool~) render_current::$11 -(byte/signed word/word/dword/signed dword~) render_current::$2 -(bool~) render_current::$3 -(bool~) render_current::$4 -(byte~) render_current::$5 -(bool~) render_current::$6 -(bool~) render_current::$7 -(bool~) render_current::$8 -(bool~) render_current::$9 -(label) render_current::@1 -(label) render_current::@10 -(label) render_current::@2 -(label) render_current::@3 -(label) render_current::@4 -(label) render_current::@5 -(label) render_current::@6 -(label) render_current::@7 -(label) render_current::@9 -(label) render_current::@return -(byte) render_current::c -(byte) render_current::c#0 -(byte) render_current::c#1 -(byte) render_current::c#2 -(byte) render_current::c#3 -(byte) render_current::c#4 -(byte) render_current::c#5 -(byte) render_current::c#6 -(byte) render_current::current_cell -(byte) render_current::current_cell#0 -(byte) render_current::i -(byte) render_current::i#0 -(byte) render_current::i#1 -(byte) render_current::i#10 -(byte) render_current::i#11 -(byte) render_current::i#2 -(byte) render_current::i#3 -(byte) render_current::i#4 -(byte) render_current::i#5 -(byte) render_current::i#6 -(byte) render_current::i#7 -(byte) render_current::i#8 -(byte) render_current::i#9 -(byte) render_current::l -(byte) render_current::l#0 -(byte) render_current::l#1 -(byte) render_current::l#10 -(byte) render_current::l#2 -(byte) render_current::l#3 -(byte) render_current::l#4 -(byte) render_current::l#5 -(byte) render_current::l#6 -(byte) render_current::l#7 -(byte) render_current::l#8 -(byte) render_current::l#9 -(byte*) render_current::screen_line -(byte*) render_current::screen_line#0 -(byte*) render_current::screen_line#1 -(byte*) render_current::screen_line#2 -(byte*) render_current::screen_line#3 -(byte*) render_current::screen_line#4 -(byte*) render_current::screen_line#5 -(byte) render_current::xpos -(byte) render_current::xpos#0 -(byte) render_current::xpos#1 -(byte) render_current::xpos#2 -(byte) render_current::xpos#3 -(byte) render_current::xpos#4 -(byte) render_current::xpos#5 -(byte) render_current::xpos#6 -(byte) render_current::ypos2 -(byte) render_current::ypos2#0 -(byte) render_current::ypos2#1 -(byte) render_current::ypos2#10 -(byte) render_current::ypos2#2 -(byte) render_current::ypos2#3 -(byte) render_current::ypos2#4 -(byte) render_current::ypos2#5 -(byte) render_current::ypos2#6 -(byte) render_current::ypos2#7 -(byte) render_current::ypos2#8 -(byte) render_current::ypos2#9 (void()) render_init() (byte~) render_init::$1 (byte*~) render_init::$10 @@ -5396,6 +5671,91 @@ SYMBOL TABLE SSA (byte) render_init::vicSelectGfxBank1_toDd001_return#1 (byte) render_init::vicSelectGfxBank1_toDd001_return#2 (byte) render_init::vicSelectGfxBank1_toDd001_return#3 +(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 +(bool~) render_moving::$3 +(bool~) render_moving::$4 +(byte~) 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::@return +(byte) render_moving::c +(byte) render_moving::c#0 +(byte) render_moving::c#1 +(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 +(byte) render_moving::i#5 +(byte) render_moving::i#6 +(byte) render_moving::i#7 +(byte) render_moving::i#8 +(byte) render_moving::i#9 +(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 +(byte) render_moving::l#5 +(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 +(byte) render_moving::ypos2#5 +(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 @@ -5877,7 +6237,6 @@ SYMBOL TABLE SSA (dword) score_bcd#73 (dword) score_bcd#74 (dword) score_bcd#75 -(dword) score_bcd#76 (dword) score_bcd#8 (dword) score_bcd#9 (byte*[PLAYFIELD_LINES#0]) screen_lines_1 @@ -5992,12 +6351,12 @@ Inversing boolean not (bool~) keyboard_event_scan::$20 ← (byte~) keyboard_even Inversing boolean not (bool~) keyboard_event_scan::$24 ← (byte~) keyboard_event_scan::$22 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) keyboard_event_scan::$23 ← (byte~) keyboard_event_scan::$22 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) keyboard_event_scan::$28 ← (byte~) keyboard_event_scan::$26 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) keyboard_event_scan::$27 ← (byte~) keyboard_event_scan::$26 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) render_bcd::$2 ← (byte) render_bcd::only_low#6 != (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) render_bcd::$1 ← (byte) render_bcd::only_low#6 == (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not (bool~) render_current::$7 ← (byte) render_current::current_cell#0 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) render_current::$6 ← (byte) render_current::current_cell#0 != (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not (bool~) render_current::$9 ← (byte) render_current::xpos#3 >= (byte) PLAYFIELD_COLS#0 from (bool~) render_current::$8 ← (byte) render_current::xpos#3 < (byte) PLAYFIELD_COLS#0 +Inversing boolean not (bool~) render_moving::$7 ← (byte) render_moving::current_cell#0 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) render_moving::$6 ← (byte) render_moving::current_cell#0 != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not (bool~) render_moving::$9 ← (byte) render_moving::xpos#3 >= (byte) PLAYFIELD_COLS#0 from (bool~) render_moving::$8 ← (byte) render_moving::xpos#3 < (byte) PLAYFIELD_COLS#0 Inversing boolean not (bool~) sprites_irq::$6 ← (byte~) sprites_irq::$4 != (byte/signed byte/word/signed word/dword/signed dword) 3 from (bool~) sprites_irq::$5 ← (byte~) sprites_irq::$4 == (byte/signed byte/word/signed word/dword/signed dword) 3 Inversing boolean not (bool~) play_move_down::$1 ← (byte) play_move_down::key_event#1 != (byte) KEY_SPACE#0 from (bool~) play_move_down::$0 ← (byte) play_move_down::key_event#1 == (byte) KEY_SPACE#0 Inversing boolean not (bool~) play_move_down::$4 ← (byte~) play_move_down::$2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) play_move_down::$3 ← (byte~) play_move_down::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not (bool~) play_move_down::$8 ← (byte) current_movedown_counter#8 < (byte) current_movedown_slow#0 from (bool~) play_move_down::$7 ← (byte) current_movedown_counter#8 >= (byte) current_movedown_slow#0 +Inversing boolean not (bool~) play_move_down::$8 ← (byte) current_movedown_counter#8 < (byte) current_movedown_slow#15 from (bool~) play_move_down::$7 ← (byte) current_movedown_counter#8 >= (byte) current_movedown_slow#15 Inversing boolean not (bool~) play_move_down::$6 ← (byte) current_movedown_counter#9 < (byte) current_movedown_fast#0 from (bool~) play_move_down::$5 ← (byte) current_movedown_counter#9 >= (byte) current_movedown_fast#0 Inversing boolean not (bool~) play_move_down::$10 ← (byte) play_move_down::movedown#6 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) play_move_down::$9 ← (byte) play_move_down::movedown#6 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) play_move_leftright::$10 ← (byte~) play_move_leftright::$8 != (byte) COLLISION_NONE#0 from (bool~) play_move_leftright::$9 ← (byte~) play_move_leftright::$8 == (byte) COLLISION_NONE#0 @@ -6014,7 +6373,7 @@ Inversing boolean not (bool~) play_remove_lines::$7 ← (byte) play_remove_lines Inversing boolean not (bool~) play_remove_lines::$10 ← (byte) play_remove_lines::full#2 != (byte/signed byte/word/signed word/dword/signed dword) 1 from (bool~) play_remove_lines::$9 ← (byte) play_remove_lines::full#2 == (byte/signed byte/word/signed word/dword/signed dword) 1 Inversing boolean not (bool~) play_update_score::$1 ← (byte) play_update_score::removed#1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) play_update_score::$0 ← (byte) play_update_score::removed#1 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) play_update_score::$8 ← (byte) play_update_score::lines_before#0 == (byte) play_update_score::lines_after#0 from (bool~) play_update_score::$7 ← (byte) play_update_score::lines_before#0 != (byte) play_update_score::lines_after#0 -Inversing boolean not (bool~) play_update_score::$11 ← (byte~) play_update_score::$9 != (byte/signed byte/word/signed word/dword/signed dword) 10 from (bool~) play_update_score::$10 ← (byte~) play_update_score::$9 == (byte/signed byte/word/signed word/dword/signed dword) 10 +Inversing boolean not (bool~) play_increase_level::$3 ← (byte~) play_increase_level::$1 != (byte/signed byte/word/signed word/dword/signed dword) 10 from (bool~) play_increase_level::$2 ← (byte~) play_increase_level::$1 == (byte/signed byte/word/signed word/dword/signed dword) 10 Inversing boolean not (bool~) main::$16 ← (byte) main::render#3 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) main::$15 ← (byte) main::render#3 != (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 @@ -6085,14 +6444,14 @@ Alias (byte*) render_show::toD0182_gfx#0 = (byte*) render_show::toD0182_gfx#1 Alias (byte) render_show::toD0182_return#0 = (byte) render_show::toD0182_$8#0 (byte) render_show::toD0182_return#2 (byte) render_show::toD0182_return#1 (byte) render_show::toD0182_return#3 (byte~) render_show::$1 (byte) render_show::d018val#2 Alias (byte) render_screen_render#11 = (byte) render_screen_render#3 (byte) render_screen_render#4 Alias (byte) render_screen_show#13 = (byte) render_screen_show#3 (byte) render_screen_show#4 -Alias (dword) score_bcd#16 = (dword) score_bcd#29 (dword) score_bcd#17 -Alias (word) lines_bcd#50 = (word) lines_bcd#61 (word) lines_bcd#51 -Alias (byte) level_bcd#67 = (byte) level_bcd#76 (byte) level_bcd#68 +Alias (dword) score_bcd#16 = (dword) score_bcd#28 (dword) score_bcd#17 +Alias (word) lines_bcd#49 = (word) lines_bcd#60 (word) lines_bcd#50 +Alias (byte) level_bcd#75 = (byte) level_bcd#84 (byte) level_bcd#76 Alias (byte*) render_score::score_bytes#0 = (byte*~) render_score::$2 (byte*) render_score::score_bytes#1 (byte*) render_score::score_bytes#2 Alias (word) render_score::score_offset#0 = (byte/signed word/word/dword/signed dword~) render_score::$4 (word) render_score::score_offset#1 (word) render_score::score_offset#2 Alias (byte*) render_score::screen#2 = (byte*) render_score::screen#3 (byte*) render_score::screen#4 (byte*) render_score::screen#5 (byte*) render_score::screen#6 (byte*) render_score::screen#7 -Alias (word) lines_bcd#17 = (word) lines_bcd#29 (word) lines_bcd#40 (word) lines_bcd#8 (word) lines_bcd#9 -Alias (byte) level_bcd#18 = (byte) level_bcd#50 (byte) level_bcd#60 (byte) level_bcd#40 (byte) level_bcd#29 (byte) level_bcd#9 +Alias (word) lines_bcd#17 = (word) lines_bcd#28 (word) lines_bcd#39 (word) lines_bcd#8 (word) lines_bcd#9 +Alias (byte) level_bcd#11 = (byte) level_bcd#58 (byte) level_bcd#68 (byte) level_bcd#48 (byte) level_bcd#35 (byte) level_bcd#22 Alias (word) render_bcd::offset#1 = (word/signed dword/dword~) render_score::$6 Alias (word) render_bcd::offset#2 = (word/signed dword/dword~) render_score::$8 Alias (word) render_score::lines_offset#0 = (byte/signed word/word/dword/signed dword/signed byte~) render_score::$11 (word) render_score::lines_offset#1 @@ -6114,30 +6473,31 @@ Alias (byte) render_playfield::i#0 = (byte/signed word/word/dword/signed dword~) Alias (byte) render_playfield::l#3 = (byte) render_playfield::l#4 Alias (byte) render_screen_render#22 = (byte) render_screen_render#29 Alias (byte) render_playfield::i#1 = (byte) render_playfield::i#4 -Alias (byte) render_current::ypos2#0 = (byte~) render_current::$0 +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_current::ypos2#2 = (byte) render_current::ypos2#3 (byte) render_current::ypos2#6 +Alias (byte) render_moving::ypos2#2 = (byte) render_moving::ypos2#3 (byte) render_moving::ypos2#6 Alias (byte) current_xpos#12 = (byte) current_xpos#29 (byte) current_xpos#69 Alias (byte*) current_piece_gfx#22 = (byte*) current_piece_gfx#36 (byte*) current_piece_gfx#69 -Alias (byte) render_current::i#3 = (byte) render_current::i#6 (byte) render_current::i#5 -Alias (byte) render_current::l#4 = (byte) render_current::l#9 (byte) render_current::l#5 +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#38 = (byte) current_piece_char#52 (byte) current_piece_char#72 -Alias (byte) render_current::xpos#3 = (byte) render_current::xpos#5 (byte) render_current::xpos#6 (byte) render_current::xpos#4 +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#17 = (byte) current_piece_char#26 (byte) current_piece_char#53 (byte) current_piece_char#8 -Alias (byte*) render_current::screen_line#1 = (byte*) render_current::screen_line#2 (byte*) render_current::screen_line#3 (byte*) render_current::screen_line#5 -Alias (byte) render_current::c#3 = (byte) render_current::c#6 (byte) render_current::c#4 (byte) render_current::c#5 -Alias (byte) render_current::ypos2#10 = (byte) render_current::ypos2#8 (byte) render_current::ypos2#9 (byte) render_current::ypos2#7 -Alias (byte) render_current::l#10 = (byte) render_current::l#7 (byte) render_current::l#8 (byte) render_current::l#6 +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#11 = (byte*) current_piece_gfx#55 (byte*) current_piece_gfx#38 (byte*) current_piece_gfx#37 -Alias (byte) render_current::i#10 = (byte) render_current::i#11 (byte) render_current::i#2 (byte) render_current::i#9 +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#49 (byte) render_screen_render#44 (byte) render_screen_render#45 Alias (byte) current_xpos#82 = (byte) current_xpos#92 (byte) current_xpos#83 (byte) current_xpos#84 Alias (byte) render_screen_show#0 = (byte) render_screen_show#56 (byte) render_screen_show#53 (byte) render_screen_show#50 (byte) render_screen_show#47 (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#57 (byte) render_screen_render#55 (byte) render_screen_render#53 (byte) render_screen_render#50 (byte) render_screen_render#46 (byte) render_screen_render#40 (byte) render_screen_render#36 (byte) render_screen_render#26 Alias (byte) render_screen_showing#0 = (byte) render_screen_showing#42 (byte) render_screen_showing#39 (byte) render_screen_showing#35 (byte) render_screen_showing#31 (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#77 (word) lines_bcd#75 (word) lines_bcd#68 (word) lines_bcd#62 (word) lines_bcd#52 (word) lines_bcd#45 (word) lines_bcd#39 (word) lines_bcd#28 -Alias (dword) score_bcd#0 = (dword) score_bcd#73 (dword) score_bcd#71 (dword) score_bcd#65 (dword) score_bcd#59 (dword) score_bcd#50 (dword) score_bcd#45 (dword) score_bcd#39 (dword) score_bcd#28 -Alias (byte) level_bcd#0 = (byte) level_bcd#79 (byte) level_bcd#77 (byte) level_bcd#69 (byte) level_bcd#61 (byte) level_bcd#51 (byte) level_bcd#45 (byte) level_bcd#39 (byte) level_bcd#28 +Alias (word) lines_bcd#0 = (word) lines_bcd#76 (word) lines_bcd#74 (word) lines_bcd#67 (word) lines_bcd#61 (word) lines_bcd#51 (word) lines_bcd#44 (word) lines_bcd#38 (word) lines_bcd#27 +Alias (dword) score_bcd#0 = (dword) score_bcd#72 (dword) score_bcd#70 (dword) score_bcd#64 (dword) score_bcd#58 (dword) score_bcd#49 (dword) score_bcd#44 (dword) score_bcd#38 (dword) score_bcd#27 +Alias (byte) level#0 = (byte) level#83 (byte) level#81 (byte) level#74 (byte) level#67 (byte) level#57 (byte) level#51 (byte) level#45 (byte) level#32 +Alias (byte) level_bcd#0 = (byte) level_bcd#87 (byte) level_bcd#85 (byte) level_bcd#77 (byte) level_bcd#69 (byte) level_bcd#59 (byte) level_bcd#53 (byte) level_bcd#47 (byte) level_bcd#34 Alias (byte) sprites_init::xpos#0 = (byte/signed word/word/dword/signed dword/signed byte~) sprites_init::$1 Alias (byte) sprites_init::s2#0 = (byte~) sprites_init::$2 Alias (byte) sprites_init::xpos#1 = (byte/signed word/word/dword/signed dword~) sprites_init::$3 @@ -6167,26 +6527,32 @@ Alias (byte) irq_raster_next#3 = (byte) irq_raster_next#6 (byte) irq_raster_next Alias (byte) irq_sprite_ypos#10 = (byte) irq_sprite_ypos#7 (byte) irq_sprite_ypos#3 Alias (byte) irq_sprite_ptr#3 = (byte) irq_sprite_ptr#6 (byte) irq_sprite_ptr#9 Alias (byte) irq_cnt#0 = (byte) irq_cnt#20 (byte) irq_cnt#19 (byte) irq_cnt#17 +Alias (byte) level#10 = (byte) level#21 +Alias (byte) current_movedown_slow#1 = (byte) current_movedown_slow#14 (byte) current_movedown_slow#2 Alias (byte) keyboard_event_pressed::return#12 = (byte) keyboard_event_pressed::return#6 Alias (byte) current_movedown_counter#15 = (byte) current_movedown_counter#16 (byte) current_movedown_counter#21 (byte) current_movedown_counter#9 (byte) current_movedown_counter#17 +Alias (byte) current_movedown_slow#25 = (byte) current_movedown_slow#26 (byte) current_movedown_slow#40 (byte) current_movedown_slow#41 (byte) current_movedown_slow#27 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#51 = (byte) current_ypos#52 (byte) current_ypos#62 (byte) current_ypos#63 (byte) current_ypos#53 Alias (byte) current_xpos#70 = (byte) current_xpos#71 (byte) current_xpos#86 (byte) current_xpos#87 (byte) current_xpos#72 Alias (byte) current_orientation#52 = (byte) current_orientation#53 (byte) current_orientation#62 (byte) current_orientation#63 (byte) current_orientation#54 -Alias (word) lines_bcd#53 = (word) lines_bcd#54 (word) lines_bcd#63 (word) lines_bcd#64 (word) lines_bcd#55 -Alias (dword) score_bcd#51 = (dword) score_bcd#52 (dword) score_bcd#60 (dword) score_bcd#61 (dword) score_bcd#53 -Alias (byte) level_bcd#52 = (byte) level_bcd#53 (byte) level_bcd#62 (byte) level_bcd#63 (byte) level_bcd#54 +Alias (word) lines_bcd#52 = (word) lines_bcd#53 (word) lines_bcd#62 (word) lines_bcd#63 (word) lines_bcd#54 +Alias (dword) score_bcd#50 = (dword) score_bcd#51 (dword) score_bcd#59 (dword) score_bcd#60 (dword) score_bcd#52 +Alias (byte) level#58 = (byte) level#59 (byte) level#68 (byte) level#69 (byte) level#60 +Alias (byte) level_bcd#60 = (byte) level_bcd#61 (byte) level_bcd#70 (byte) level_bcd#71 (byte) level_bcd#62 Alias (byte*) current_piece#54 = (byte*) current_piece#55 (byte*) current_piece#62 (byte*) current_piece#63 (byte*) current_piece#56 Alias (byte*) current_piece_gfx#71 = (byte*) current_piece_gfx#72 (byte*) current_piece_gfx#81 (byte*) current_piece_gfx#82 (byte*) current_piece_gfx#73 Alias (byte) current_piece_char#55 = (byte) current_piece_char#56 (byte) current_piece_char#67 (byte) current_piece_char#68 (byte) current_piece_char#57 Alias (byte) play_move_down::movedown#0 = (byte) play_move_down::movedown#4 Alias (byte) current_movedown_counter#1 = (byte) current_movedown_counter#28 +Alias (byte) current_movedown_slow#55 = (byte) current_movedown_slow#56 Alias (byte) current_ypos#68 = (byte) current_ypos#69 Alias (byte) current_xpos#94 = (byte) current_xpos#95 Alias (byte) current_orientation#68 = (byte) current_orientation#69 -Alias (word) lines_bcd#69 = (word) lines_bcd#70 -Alias (dword) score_bcd#66 = (dword) score_bcd#67 -Alias (byte) level_bcd#70 = (byte) level_bcd#71 +Alias (word) lines_bcd#68 = (word) lines_bcd#69 +Alias (dword) score_bcd#65 = (dword) score_bcd#66 +Alias (byte) level#75 = (byte) level#76 +Alias (byte) level_bcd#78 = (byte) level_bcd#79 Alias (byte*) current_piece#67 = (byte*) current_piece#68 Alias (byte*) current_piece_gfx#87 = (byte*) current_piece_gfx#88 Alias (byte) current_piece_char#74 = (byte) current_piece_char#75 @@ -6195,17 +6561,21 @@ Alias (byte) current_ypos#39 = (byte) current_ypos#40 Alias (byte) current_xpos#49 = (byte) current_xpos#50 Alias (byte) current_orientation#41 = (byte) current_orientation#42 Alias (byte) current_movedown_counter#29 = (byte) current_movedown_counter#8 -Alias (word) lines_bcd#41 = (word) lines_bcd#42 -Alias (dword) score_bcd#41 = (dword) score_bcd#42 -Alias (byte) level_bcd#41 = (byte) level_bcd#42 +Alias (word) lines_bcd#40 = (word) lines_bcd#41 +Alias (dword) score_bcd#40 = (dword) score_bcd#41 +Alias (byte) level#47 = (byte) level#48 +Alias (byte) current_movedown_slow#15 = (byte) current_movedown_slow#57 +Alias (byte) level_bcd#49 = (byte) level_bcd#50 Alias (byte*) current_piece#43 = (byte*) current_piece#44 Alias (byte*) current_piece_gfx#56 = (byte*) current_piece_gfx#57 Alias (byte) current_piece_char#40 = (byte) current_piece_char#41 Alias (byte) current_movedown_counter#18 = (byte) current_movedown_counter#22 Alias (byte) current_ypos#10 = (byte) current_ypos#28 (byte) current_ypos#25 (byte) current_ypos#26 (byte) current_ypos#11 (byte) current_ypos#34 (byte) current_ypos#54 (byte) current_ypos#41 (byte) current_ypos#27 -Alias (word) lines_bcd#18 = (word) lines_bcd#19 (word) lines_bcd#30 (word) lines_bcd#56 (word) lines_bcd#43 (word) lines_bcd#33 (word) lines_bcd#44 (word) lines_bcd#31 -Alias (dword) score_bcd#18 = (dword) score_bcd#19 (dword) score_bcd#30 (dword) score_bcd#54 (dword) score_bcd#43 (dword) score_bcd#33 (dword) score_bcd#44 (dword) score_bcd#31 -Alias (byte) level_bcd#19 = (byte) level_bcd#20 (byte) level_bcd#30 (byte) level_bcd#55 (byte) level_bcd#43 (byte) level_bcd#33 (byte) level_bcd#44 (byte) level_bcd#31 +Alias (word) lines_bcd#18 = (word) lines_bcd#19 (word) lines_bcd#29 (word) lines_bcd#55 (word) lines_bcd#42 (word) lines_bcd#32 (word) lines_bcd#43 (word) lines_bcd#30 +Alias (dword) score_bcd#18 = (dword) score_bcd#19 (dword) score_bcd#29 (dword) score_bcd#53 (dword) score_bcd#42 (dword) score_bcd#32 (dword) score_bcd#43 (dword) score_bcd#30 +Alias (byte) level#22 = (byte) level#23 (byte) level#34 (byte) level#61 (byte) level#49 (byte) level#37 (byte) level#50 (byte) level#35 +Alias (byte) current_movedown_slow#28 = (byte) current_movedown_slow#29 (byte) current_movedown_slow#42 (byte) current_movedown_slow#65 (byte) current_movedown_slow#58 (byte) current_movedown_slow#45 (byte) current_movedown_slow#59 (byte) current_movedown_slow#43 +Alias (byte) level_bcd#23 = (byte) level_bcd#24 (byte) level_bcd#36 (byte) level_bcd#63 (byte) level_bcd#51 (byte) level_bcd#39 (byte) level_bcd#52 (byte) level_bcd#37 Alias (byte*) current_piece#18 = (byte*) current_piece#19 (byte*) current_piece#30 (byte*) current_piece#22 (byte*) current_piece#45 (byte*) current_piece#32 (byte*) current_piece#57 (byte*) current_piece#46 (byte*) current_piece#31 Alias (byte) current_orientation#12 = (byte) current_orientation#28 (byte) current_orientation#26 (byte) current_orientation#55 (byte) current_orientation#44 (byte) current_orientation#64 (byte) current_orientation#56 (byte) current_orientation#43 (byte) current_orientation#27 Alias (byte*) current_piece_gfx#24 = (byte*) current_piece_gfx#25 (byte*) current_piece_gfx#39 (byte*) current_piece_gfx#74 (byte*) current_piece_gfx#58 (byte*) current_piece_gfx#41 (byte*) current_piece_gfx#63 (byte*) current_piece_gfx#59 (byte*) current_piece_gfx#40 @@ -6215,9 +6585,11 @@ Alias (byte) play_collision::ypos#0 = (byte/signed word/word/dword/signed dword~ Alias (byte) play_collision::return#0 = (byte) play_collision::return#10 Alias (byte) play_remove_lines::return#0 = (byte) play_remove_lines::return#3 Alias (byte) play_move_down::removed#0 = (byte~) play_move_down::$15 -Alias (word) lines_bcd#1 = (word) lines_bcd#10 (word) lines_bcd#32 -Alias (dword) score_bcd#1 = (dword) score_bcd#9 (dword) score_bcd#32 -Alias (byte) level_bcd#1 = (byte) level_bcd#10 (byte) level_bcd#32 +Alias (word) lines_bcd#1 = (word) lines_bcd#10 (word) lines_bcd#31 +Alias (dword) score_bcd#1 = (dword) score_bcd#9 (dword) score_bcd#31 +Alias (byte) level#1 = (byte) level#11 (byte) level#36 +Alias (byte) current_movedown_slow#16 = (byte) current_movedown_slow#3 (byte) current_movedown_slow#44 +Alias (byte) level_bcd#1 = (byte) level_bcd#12 (byte) level_bcd#38 Alias (byte*) current_piece#1 = (byte*) current_piece#9 Alias (byte) current_orientation#1 = (byte) current_orientation#13 Alias (byte*) current_piece_gfx#0 = (byte*) current_piece_gfx#12 @@ -6229,7 +6601,9 @@ Alias (byte) current_movedown_counter#10 = (byte) current_movedown_counter#3 Alias (byte) current_ypos#13 = (byte) current_ypos#2 Alias (word) lines_bcd#11 = (word) lines_bcd#2 Alias (dword) score_bcd#10 = (dword) score_bcd#2 -Alias (byte) level_bcd#11 = (byte) level_bcd#2 +Alias (byte) level#12 = (byte) level#2 +Alias (byte) current_movedown_slow#17 = (byte) current_movedown_slow#4 +Alias (byte) level_bcd#13 = (byte) level_bcd#2 Alias (byte*) current_piece#10 = (byte*) current_piece#2 Alias (byte) current_orientation#14 = (byte) current_orientation#2 Alias (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#13 @@ -6263,6 +6637,7 @@ Alias (byte*) current_piece#11 = (byte*) current_piece#21 (byte*) current_piece# Alias (byte) current_orientation#34 = (byte) current_orientation#45 (byte) current_orientation#57 Alias (byte*) current_piece_gfx#27 = (byte*) current_piece_gfx#43 (byte*) current_piece_gfx#61 Alias (byte*) current_piece_gfx#3 = (byte*~) play_move_rotate::$9 +Alias (byte) current_movedown_slow#0 = (byte) current_movedown_slow#54 (byte) current_movedown_slow#39 Alias (byte*) current_piece#0 = (byte*) current_piece#42 (byte*) current_piece#29 Alias (byte) current_orientation#0 = (byte) current_orientation#51 (byte) current_orientation#40 Alias (byte) current_movedown_counter#0 = (byte) current_movedown_counter#27 (byte) current_movedown_counter#20 @@ -6326,33 +6701,50 @@ Alias (byte) play_remove_lines::w#6 = (byte) play_remove_lines::w#7 Alias (byte) play_remove_lines::removed#3 = (byte) play_remove_lines::removed#8 (byte) play_remove_lines::removed#5 (byte) play_remove_lines::return#1 (byte) play_remove_lines::return#4 (byte) play_remove_lines::return#2 Alias (word) lines_bcd#12 = (word) lines_bcd#22 (word) lines_bcd#21 Alias (dword) score_bcd#11 = (dword) score_bcd#22 (dword) score_bcd#21 -Alias (byte) level_bcd#12 = (byte) level_bcd#23 (byte) level_bcd#34 (byte) level_bcd#22 (byte) level_bcd#24 +Alias (byte) level#25 = (byte) level#26 (byte) level#38 (byte) level#39 (byte) level#27 +Alias (byte) current_movedown_slow#31 = (byte) current_movedown_slow#32 (byte) current_movedown_slow#46 (byte) current_movedown_slow#47 (byte) current_movedown_slow#33 +Alias (byte) level_bcd#26 = (byte) level_bcd#27 (byte) level_bcd#40 (byte) level_bcd#41 (byte) level_bcd#28 Alias (byte) play_update_score::removed#1 = (byte) play_update_score::removed#2 Alias (byte) play_update_score::lines_before#0 = (byte~) play_update_score::$3 Alias (byte) play_update_score::lines_after#0 = (byte~) play_update_score::$6 -Alias (word) lines_bcd#23 = (word) lines_bcd#3 (word) lines_bcd#34 (word) lines_bcd#24 (word) lines_bcd#25 -Alias (dword) score_bcd#23 = (dword) score_bcd#3 (dword) score_bcd#34 (dword) score_bcd#24 (dword) score_bcd#25 -Alias (byte) level_bcd#13 = (byte) level_bcd#25 (byte) level_bcd#3 +Alias (word) lines_bcd#23 = (word) lines_bcd#3 (word) lines_bcd#33 (word) lines_bcd#24 +Alias (dword) score_bcd#23 = (dword) score_bcd#3 (dword) score_bcd#33 (dword) score_bcd#24 +Alias (byte) level#13 = (byte) level#3 +Alias (byte) current_movedown_slow#18 = (byte) current_movedown_slow#5 +Alias (byte) level_bcd#14 = (byte) level_bcd#3 Alias (word) lines_bcd#13 = (word) lines_bcd#4 Alias (dword) score_bcd#12 = (dword) score_bcd#4 -Alias (byte) level_bcd#14 = (byte) level_bcd#5 +Alias (byte) level#14 = (byte) level#4 +Alias (byte) current_movedown_slow#19 = (byte) current_movedown_slow#6 +Alias (byte) level_bcd#15 = (byte) level_bcd#4 +Alias (byte) level_bcd#29 = (byte) level_bcd#42 (byte) level_bcd#30 +Alias (byte) level#16 = (byte) level#52 (byte) level#5 +Alias (byte) level#28 = (byte) level#40 (byte) level#29 +Alias (byte) current_movedown_slow#34 = (byte) current_movedown_slow#48 (byte) current_movedown_slow#35 +Alias (byte) level_bcd#17 = (byte) level_bcd#31 (byte) level_bcd#5 +Alias (byte) level#17 = (byte) level#6 +Alias (byte) current_movedown_slow#20 = (byte) current_movedown_slow#9 +Alias (byte) level_bcd#18 = (byte) level_bcd#7 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#36 = (byte) current_movedown_slow#66 (byte) current_movedown_slow#71 (byte) current_movedown_slow#60 (byte) current_movedown_slow#49 Alias (byte*) current_piece#26 = (byte*) current_piece#64 (byte*) current_piece#69 (byte*) current_piece#59 (byte*) current_piece#49 (byte*) current_piece#37 Alias (byte) current_orientation#36 = (byte) current_orientation#70 (byte) current_orientation#73 (byte) current_orientation#65 (byte) current_orientation#58 (byte) current_orientation#46 Alias (byte*) current_piece_gfx#31 = (byte*) current_piece_gfx#83 (byte*) current_piece_gfx#89 (byte*) current_piece_gfx#77 (byte*) current_piece_gfx#64 (byte*) current_piece_gfx#47 Alias (byte) current_xpos#43 = (byte) current_xpos#96 (byte) current_xpos#99 (byte) current_xpos#88 (byte) current_xpos#78 (byte) current_xpos#60 Alias (byte) current_ypos#35 = (byte) current_ypos#70 (byte) current_ypos#73 (byte) current_ypos#64 (byte) current_ypos#57 (byte) current_ypos#44 Alias (byte) current_piece_char#22 = (byte) current_piece_char#69 (byte) current_piece_char#76 (byte) current_piece_char#60 (byte) current_piece_char#47 (byte) current_piece_char#32 +Alias (byte) level#41 = (byte) level#77 (byte) level#82 (byte) level#70 (byte) level#62 (byte) level#46 (byte) level#71 (byte) level#63 (byte) level#53 Alias (byte) render_screen_showing#16 = (byte) render_screen_showing#44 (byte) render_screen_showing#45 (byte) render_screen_showing#43 (byte) render_screen_showing#40 (byte) render_screen_showing#36 (byte) render_screen_showing#32 (byte) render_screen_showing#28 (byte) render_screen_showing#22 Alias (byte) keyboard_events_size#32 = (byte) keyboard_events_size#77 (byte) keyboard_events_size#79 (byte) keyboard_events_size#74 (byte) keyboard_events_size#70 (byte) keyboard_events_size#66 (byte) keyboard_events_size#58 (byte) keyboard_events_size#49 (byte) keyboard_events_size#41 Alias (byte) keyboard_modifiers#29 = (byte) keyboard_modifiers#58 (byte) keyboard_modifiers#60 (byte) keyboard_modifiers#56 (byte) keyboard_modifiers#54 (byte) keyboard_modifiers#50 (byte) keyboard_modifiers#46 (byte) keyboard_modifiers#40 (byte) keyboard_modifiers#35 Alias (byte) current_movedown_counter#23 = (byte) current_movedown_counter#47 (byte) current_movedown_counter#48 (byte) current_movedown_counter#46 (byte) current_movedown_counter#45 (byte) current_movedown_counter#41 (byte) current_movedown_counter#38 (byte) current_movedown_counter#34 (byte) current_movedown_counter#30 -Alias (word) lines_bcd#35 = (word) lines_bcd#79 (word) lines_bcd#80 (word) lines_bcd#78 (word) lines_bcd#76 (word) lines_bcd#71 (word) lines_bcd#65 (word) lines_bcd#57 (word) lines_bcd#46 -Alias (dword) score_bcd#35 = (dword) score_bcd#75 (dword) score_bcd#76 (dword) score_bcd#74 (dword) score_bcd#72 (dword) score_bcd#68 (dword) score_bcd#62 (dword) score_bcd#55 (dword) score_bcd#46 -Alias (byte) level_bcd#35 = (byte) level_bcd#81 (byte) level_bcd#82 (byte) level_bcd#80 (byte) level_bcd#78 (byte) level_bcd#72 (byte) level_bcd#64 (byte) level_bcd#56 (byte) level_bcd#46 +Alias (word) lines_bcd#34 = (word) lines_bcd#78 (word) lines_bcd#79 (word) lines_bcd#77 (word) lines_bcd#75 (word) lines_bcd#70 (word) lines_bcd#64 (word) lines_bcd#56 (word) lines_bcd#45 +Alias (dword) score_bcd#34 = (dword) score_bcd#74 (dword) score_bcd#75 (dword) score_bcd#73 (dword) score_bcd#71 (dword) score_bcd#67 (dword) score_bcd#61 (dword) score_bcd#54 (dword) score_bcd#45 +Alias (byte) level_bcd#43 = (byte) level_bcd#89 (byte) level_bcd#90 (byte) level_bcd#88 (byte) level_bcd#86 (byte) level_bcd#80 (byte) level_bcd#72 (byte) level_bcd#64 (byte) level_bcd#54 Alias (byte) render_screen_show#14 = (byte) render_screen_show#5 (byte) render_screen_show#54 (byte) render_screen_show#51 (byte) render_screen_show#48 (byte) render_screen_show#44 (byte) render_screen_show#36 (byte) render_screen_show#28 Alias (byte) render_screen_render#15 = (byte) render_screen_render#5 (byte) render_screen_render#51 (byte) render_screen_render#47 (byte) render_screen_render#41 (byte) render_screen_render#28 (byte) render_screen_render#37 (byte) render_screen_render#33 +Alias (byte) current_movedown_slow#10 = (byte) current_movedown_slow#21 (byte) current_movedown_slow#67 (byte) current_movedown_slow#61 (byte) current_movedown_slow#50 Alias (byte*) current_piece#14 = (byte*) current_piece#5 (byte*) current_piece#50 (byte*) current_piece#38 Alias (byte) current_orientation#21 = (byte) current_orientation#7 (byte) current_orientation#59 (byte) current_orientation#47 Alias (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#6 (byte*) current_piece_gfx#65 (byte*) current_piece_gfx#48 @@ -6365,9 +6757,11 @@ Alias (byte) keyboard_events_size#19 = (byte) keyboard_events_size#50 (byte) key Alias (byte) keyboard_modifiers#16 = (byte) keyboard_modifiers#41 (byte) keyboard_modifiers#24 (byte) keyboard_modifiers#8 Alias (byte) current_movedown_counter#12 = (byte) current_movedown_counter#42 (byte) current_movedown_counter#19 (byte) current_movedown_counter#5 Alias (byte) current_ypos#21 = (byte) current_ypos#74 (byte) current_ypos#37 (byte) current_ypos#7 -Alias (word) lines_bcd#15 = (word) lines_bcd#72 (word) lines_bcd#27 (word) lines_bcd#6 -Alias (dword) score_bcd#14 = (dword) score_bcd#69 (dword) score_bcd#27 (dword) score_bcd#6 -Alias (byte) level_bcd#16 = (byte) level_bcd#73 (byte) level_bcd#27 (byte) level_bcd#7 +Alias (word) lines_bcd#15 = (word) lines_bcd#71 (word) lines_bcd#26 (word) lines_bcd#6 +Alias (dword) score_bcd#14 = (dword) score_bcd#68 (dword) score_bcd#26 (dword) score_bcd#6 +Alias (byte) level#19 = (byte) level#78 (byte) level#31 (byte) level#8 +Alias (byte) current_movedown_slow#12 = (byte) current_movedown_slow#74 (byte) current_movedown_slow#38 (byte) current_movedown_slow#23 +Alias (byte) level_bcd#20 = (byte) level_bcd#81 (byte) level_bcd#33 (byte) level_bcd#9 Alias (byte*) current_piece#16 = (byte*) current_piece#70 (byte*) current_piece#28 (byte*) current_piece#7 Alias (byte) current_orientation#10 = (byte) current_orientation#74 (byte) current_orientation#39 (byte) current_orientation#24 Alias (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#90 (byte*) current_piece_gfx#34 (byte*) current_piece_gfx#9 @@ -6380,9 +6774,11 @@ Alias (byte) keyboard_events_size#26 = (byte) keyboard_events_size#51 (byte) key Alias (byte) keyboard_modifiers#23 = (byte) keyboard_modifiers#42 (byte) keyboard_modifiers#36 (byte) keyboard_modifiers#32 Alias (byte) current_movedown_counter#14 = (byte) current_movedown_counter#43 (byte) current_movedown_counter#39 (byte) current_movedown_counter#35 (byte) current_movedown_counter#31 (byte) current_movedown_counter#26 Alias (byte) current_ypos#36 = (byte) current_ypos#75 (byte) current_ypos#71 (byte) current_ypos#65 (byte) current_ypos#58 (byte) current_ypos#48 -Alias (word) lines_bcd#26 = (word) lines_bcd#73 (word) lines_bcd#66 (word) lines_bcd#58 (word) lines_bcd#47 (word) lines_bcd#38 -Alias (dword) score_bcd#26 = (dword) score_bcd#70 (dword) score_bcd#63 (dword) score_bcd#56 (dword) score_bcd#47 (dword) score_bcd#38 -Alias (byte) level_bcd#26 = (byte) level_bcd#74 (byte) level_bcd#65 (byte) level_bcd#57 (byte) level_bcd#47 (byte) level_bcd#38 +Alias (word) lines_bcd#25 = (word) lines_bcd#72 (word) lines_bcd#65 (word) lines_bcd#57 (word) lines_bcd#46 (word) lines_bcd#37 +Alias (dword) score_bcd#25 = (dword) score_bcd#69 (dword) score_bcd#62 (dword) score_bcd#55 (dword) score_bcd#46 (dword) score_bcd#37 +Alias (byte) level#30 = (byte) level#79 (byte) level#72 (byte) level#64 (byte) level#54 (byte) level#44 +Alias (byte) current_movedown_slow#37 = (byte) current_movedown_slow#75 (byte) current_movedown_slow#72 (byte) current_movedown_slow#68 (byte) current_movedown_slow#62 (byte) current_movedown_slow#53 +Alias (byte) level_bcd#32 = (byte) level_bcd#82 (byte) level_bcd#73 (byte) level_bcd#65 (byte) level_bcd#55 (byte) level_bcd#46 Alias (byte*) current_piece#27 = (byte*) current_piece#71 (byte*) current_piece#65 (byte*) current_piece#60 (byte*) current_piece#51 (byte*) current_piece#41 Alias (byte) current_orientation#37 = (byte) current_orientation#75 (byte) current_orientation#71 (byte) current_orientation#66 (byte) current_orientation#60 (byte) current_orientation#50 Alias (byte*) current_piece_gfx#32 = (byte*) current_piece_gfx#91 (byte*) current_piece_gfx#84 (byte*) current_piece_gfx#78 (byte*) current_piece_gfx#66 (byte*) current_piece_gfx#51 @@ -6399,9 +6795,11 @@ Alias (byte) play_move_down::return#3 = (byte) play_move_down::return#5 Alias (byte) main::render#0 = (byte) main::render#4 Alias (byte) current_movedown_counter#11 = (byte) current_movedown_counter#4 (byte) current_movedown_counter#36 (byte) current_movedown_counter#32 (byte) current_movedown_counter#25 (byte) current_movedown_counter#44 (byte) current_movedown_counter#40 (byte) current_movedown_counter#37 (byte) current_movedown_counter#33 (byte) current_movedown_counter#24 Alias (byte) current_ypos#20 = (byte) current_ypos#6 (byte) current_ypos#55 (byte) current_ypos#59 (byte) current_ypos#47 (byte) current_ypos#49 (byte) current_ypos#24 (byte) current_ypos#66 (byte) current_ypos#60 (byte) current_ypos#46 -Alias (word) lines_bcd#14 = (word) lines_bcd#5 (word) lines_bcd#59 (word) lines_bcd#48 (word) lines_bcd#37 (word) lines_bcd#74 (word) lines_bcd#67 (word) lines_bcd#60 (word) lines_bcd#49 (word) lines_bcd#36 -Alias (dword) score_bcd#13 = (dword) score_bcd#5 (dword) score_bcd#57 (dword) score_bcd#48 (dword) score_bcd#37 (dword) score_bcd#64 (dword) score_bcd#58 (dword) score_bcd#40 (dword) score_bcd#49 (dword) score_bcd#36 -Alias (byte) level_bcd#15 = (byte) level_bcd#6 (byte) level_bcd#58 (byte) level_bcd#48 (byte) level_bcd#37 (byte) level_bcd#75 (byte) level_bcd#66 (byte) level_bcd#59 (byte) level_bcd#49 (byte) level_bcd#36 +Alias (word) lines_bcd#14 = (word) lines_bcd#5 (word) lines_bcd#58 (word) lines_bcd#47 (word) lines_bcd#36 (word) lines_bcd#73 (word) lines_bcd#66 (word) lines_bcd#59 (word) lines_bcd#48 (word) lines_bcd#35 +Alias (dword) score_bcd#13 = (dword) score_bcd#5 (dword) score_bcd#56 (dword) score_bcd#47 (dword) score_bcd#36 (dword) score_bcd#63 (dword) score_bcd#57 (dword) score_bcd#39 (dword) score_bcd#48 (dword) score_bcd#35 +Alias (byte) level#18 = (byte) level#7 (byte) level#65 (byte) level#55 (byte) level#43 (byte) level#80 (byte) level#73 (byte) level#66 (byte) level#56 (byte) level#42 +Alias (byte) current_movedown_slow#11 = (byte) current_movedown_slow#22 (byte) current_movedown_slow#69 (byte) current_movedown_slow#63 (byte) current_movedown_slow#52 (byte) current_movedown_slow#76 (byte) current_movedown_slow#73 (byte) current_movedown_slow#70 (byte) current_movedown_slow#64 (byte) current_movedown_slow#51 +Alias (byte) level_bcd#19 = (byte) level_bcd#8 (byte) level_bcd#66 (byte) level_bcd#56 (byte) level_bcd#45 (byte) level_bcd#83 (byte) level_bcd#74 (byte) level_bcd#67 (byte) level_bcd#57 (byte) level_bcd#44 Alias (byte*) current_piece#15 = (byte*) current_piece#6 (byte*) current_piece#58 (byte*) current_piece#52 (byte*) current_piece#40 (byte*) current_piece#72 (byte*) current_piece#66 (byte*) current_piece#61 (byte*) current_piece#53 (byte*) current_piece#39 Alias (byte) current_orientation#22 = (byte) current_orientation#8 (byte) current_orientation#38 Alias (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#7 (byte*) current_piece_gfx#33 @@ -6418,6 +6816,7 @@ Alias (byte) render_screen_render#16 = (byte) render_screen_render#6 Alias (byte) render_screen_show#15 = (byte) render_screen_show#6 Alias (byte) render_screen_show#17 = (byte) render_screen_show#8 Alias (byte) render_screen_render#18 = (byte) render_screen_render#8 +Alias (byte) current_movedown_slow#13 = (byte) current_movedown_slow#24 Alias (byte*) current_piece#17 = (byte*) current_piece#8 Alias (byte) current_orientation#11 = (byte) current_orientation#25 Alias (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#21 @@ -6430,7 +6829,8 @@ Alias (byte) keyboard_modifiers#17 = (byte) keyboard_modifiers#9 Alias (byte) current_movedown_counter#13 = (byte) current_movedown_counter#6 Alias (word) lines_bcd#16 = (word) lines_bcd#7 Alias (dword) score_bcd#15 = (dword) score_bcd#7 -Alias (byte) level_bcd#17 = (byte) level_bcd#8 +Alias (byte) level#20 = (byte) level#9 +Alias (byte) level_bcd#10 = (byte) level_bcd#21 Successful SSA optimization Pass2AliasElimination Alias candidate removed (volatile)(byte) render_screen_showing#1 = (byte) render_screen_show#11 (byte) render_screen_show#10 (byte) render_screen_showing#6 (byte) render_screen_showing#2 Alias candidate removed (volatile)(byte) IRQ_RASTER_FIRST#0 = (byte) irq_raster_next#0 (byte) irq_raster_next#23 (byte) irq_raster_next#22 (byte) irq_raster_next#21 (byte) irq_raster_next#20 (byte) irq_raster_next#19 (byte) irq_raster_next#18 @@ -6442,19 +6842,19 @@ Alias (byte) keyboard_event_scan::row_scan#1 = (byte) keyboard_event_scan::row_s Alias (byte) keyboard_event_scan::row#10 = (byte) keyboard_event_scan::row#6 Alias (byte) keyboard_events_size#13 = (byte) keyboard_events_size#63 (byte) keyboard_events_size#55 (byte) keyboard_events_size#46 (byte) keyboard_events_size#23 Alias (dword) score_bcd#16 = (dword) score_bcd#8 -Alias (word) lines_bcd#17 = (word) lines_bcd#50 -Alias (byte) level_bcd#18 = (byte) level_bcd#67 +Alias (word) lines_bcd#17 = (word) lines_bcd#49 +Alias (byte) level_bcd#11 = (byte) level_bcd#75 Alias (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#7 -Alias (byte) render_current::xpos#2 = (byte) render_current::xpos#3 -Alias (byte) render_current::c#2 = (byte) render_current::c#3 -Alias (byte) render_current::ypos2#10 = (byte) render_current::ypos2#5 -Alias (byte) render_current::l#10 = (byte) render_current::l#3 +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*) current_piece_gfx#11 = (byte*) current_piece_gfx#23 -Alias (byte) render_current::i#10 = (byte) render_current::i#7 +Alias (byte) render_moving::i#10 = (byte) render_moving::i#7 Alias (byte) render_screen_render#38 = (byte) render_screen_render#43 Alias (byte) current_xpos#68 = (byte) current_xpos#82 Alias (byte) current_piece_char#17 = (byte) current_piece_char#39 -Alias (byte*) render_current::screen_line#1 = (byte*) render_current::screen_line#4 +Alias (byte*) render_moving::screen_line#1 = (byte*) render_moving::screen_line#4 Alias (byte) irq_cnt#12 = (byte) irq_cnt#4 Alias (byte) irq_raster_next#10 = (byte) irq_raster_next#4 Alias (byte) irq_sprite_ypos#11 = (byte) irq_sprite_ypos#6 @@ -6464,12 +6864,14 @@ Alias (byte) irq_raster_next#13 = (byte) irq_raster_next#3 Alias (byte) irq_sprite_ypos#10 = (byte) irq_sprite_ypos#13 Alias (byte) irq_sprite_ptr#13 = (byte) irq_sprite_ptr#3 Alias (byte) current_movedown_counter#1 = (byte) current_movedown_counter#15 (byte) current_movedown_counter#29 (byte) current_movedown_counter#18 +Alias (byte) current_movedown_slow#15 = (byte) current_movedown_slow#25 (byte) current_movedown_slow#55 (byte) current_movedown_slow#28 Alias (byte) current_ypos#10 = (byte) current_ypos#51 (byte) current_ypos#68 (byte) current_ypos#39 Alias (byte) current_xpos#13 = (byte) current_xpos#70 (byte) current_xpos#94 (byte) current_xpos#49 Alias (byte) current_orientation#12 = (byte) current_orientation#52 (byte) current_orientation#68 (byte) current_orientation#41 -Alias (word) lines_bcd#18 = (word) lines_bcd#53 (word) lines_bcd#69 (word) lines_bcd#41 -Alias (dword) score_bcd#18 = (dword) score_bcd#51 (dword) score_bcd#66 (dword) score_bcd#41 -Alias (byte) level_bcd#19 = (byte) level_bcd#52 (byte) level_bcd#70 (byte) level_bcd#41 +Alias (word) lines_bcd#18 = (word) lines_bcd#52 (word) lines_bcd#68 (word) lines_bcd#40 +Alias (dword) score_bcd#18 = (dword) score_bcd#50 (dword) score_bcd#65 (dword) score_bcd#40 +Alias (byte) level#22 = (byte) level#58 (byte) level#75 (byte) level#47 +Alias (byte) level_bcd#23 = (byte) level_bcd#60 (byte) level_bcd#78 (byte) level_bcd#49 Alias (byte*) current_piece#18 = (byte*) current_piece#54 (byte*) current_piece#67 (byte*) current_piece#43 Alias (byte*) current_piece_gfx#24 = (byte*) current_piece_gfx#71 (byte*) current_piece_gfx#87 (byte*) current_piece_gfx#56 Alias (byte) current_piece_char#18 = (byte) current_piece_char#55 (byte) current_piece_char#74 (byte) current_piece_char#40 @@ -6502,6 +6904,9 @@ Alias (byte) play_remove_lines::x#2 = (byte) play_remove_lines::x#3 Alias (byte) play_remove_lines::r#1 = (byte) play_remove_lines::r#4 (byte) play_remove_lines::r#5 Alias (byte) play_remove_lines::y#2 = (byte) play_remove_lines::y#3 (byte) play_remove_lines::y#6 Alias (byte) play_remove_lines::removed#10 = (byte) play_remove_lines::removed#2 +Alias (byte) level_bcd#16 = (byte) level_bcd#29 +Alias (byte) level#16 = (byte) level#28 (byte) level#17 +Alias (byte) current_movedown_slow#20 = (byte) current_movedown_slow#34 Successful SSA optimization Pass2AliasElimination Alias candidate removed (volatile)(byte) render_screen_showing#1 = (byte) render_screen_show#11 (byte) render_screen_show#10 (byte) render_screen_showing#6 (byte) render_screen_showing#2 Alias candidate removed (volatile)(byte) IRQ_RASTER_FIRST#0 = (byte) irq_raster_next#0 (byte) irq_raster_next#23 (byte) irq_raster_next#22 (byte) irq_raster_next#21 (byte) irq_raster_next#20 (byte) irq_raster_next#19 (byte) irq_raster_next#18 @@ -6522,10 +6927,10 @@ 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#11 -Self Phi Eliminated (byte) render_current::ypos2#10 -Self Phi Eliminated (byte) render_current::l#10 +Self Phi Eliminated (byte) render_moving::ypos2#10 +Self Phi Eliminated (byte) render_moving::l#10 Self Phi Eliminated (byte) current_piece_char#17 -Self Phi Eliminated (byte*) render_current::screen_line#1 +Self Phi Eliminated (byte*) render_moving::screen_line#1 Self Phi Eliminated (byte) render_screen_render#38 Self Phi Eliminated (byte) current_xpos#68 Self Phi Eliminated (byte) irq_sprite_ypos#11 @@ -6533,6 +6938,7 @@ Self Phi Eliminated (byte) irq_sprite_ptr#11 Self Phi Eliminated (byte) render_screen_showing#11 Self Phi Eliminated (byte) irq_cnt#12 Self Phi Eliminated (byte) irq_raster_next#10 +Self Phi Eliminated (byte) level#10 Self Phi Eliminated (byte*) play_collision::piece_gfx#1 Self Phi Eliminated (byte) play_collision::ypos2#10 Self Phi Eliminated (byte) play_collision::l#10 @@ -6553,9 +6959,11 @@ Self Phi Eliminated (byte) keyboard_events_size#26 Self Phi Eliminated (byte) keyboard_modifiers#23 Self Phi Eliminated (byte) current_movedown_counter#14 Self Phi Eliminated (byte) current_ypos#36 -Self Phi Eliminated (word) lines_bcd#26 -Self Phi Eliminated (dword) score_bcd#26 -Self Phi Eliminated (byte) level_bcd#26 +Self Phi Eliminated (word) lines_bcd#25 +Self Phi Eliminated (dword) score_bcd#25 +Self Phi Eliminated (byte) level#30 +Self Phi Eliminated (byte) current_movedown_slow#37 +Self Phi Eliminated (byte) level_bcd#32 Self Phi Eliminated (byte*) current_piece#27 Self Phi Eliminated (byte) current_orientation#37 Self Phi Eliminated (byte*) current_piece_gfx#32 @@ -6580,7 +6988,7 @@ Redundant Phi (byte) render_screen_show#12 (byte) render_screen_show#18 Redundant Phi (byte) render_screen_render#12 (byte) render_screen_render#19 Redundant Phi (dword) score_bcd#16 (dword) score_bcd#13 Redundant Phi (word) lines_bcd#17 (word) lines_bcd#14 -Redundant Phi (byte) level_bcd#18 (byte) level_bcd#15 +Redundant Phi (byte) level_bcd#11 (byte) level_bcd#19 Redundant Phi (byte) render_screen_original::SPACE#1 (byte) render_screen_original::SPACE#3 Redundant Phi (byte*) render_screen_original::oscr#3 (byte*) render_screen_original::oscr#4 Redundant Phi (byte*) render_screen_original::ocols#3 (byte*) render_screen_original::ocols#4 @@ -6594,10 +7002,10 @@ 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#11 (byte*) current_piece_gfx#22 -Redundant Phi (byte) render_current::ypos2#10 (byte) render_current::ypos2#2 -Redundant Phi (byte) render_current::l#10 (byte) render_current::l#4 +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#17 (byte) current_piece_char#38 -Redundant Phi (byte*) render_current::screen_line#1 (byte*) render_current::screen_line#0 +Redundant Phi (byte*) render_moving::screen_line#1 (byte*) render_moving::screen_line#0 Redundant Phi (byte) render_screen_render#38 (byte) render_screen_render#14 Redundant Phi (byte) current_xpos#68 (byte) current_xpos#12 Redundant Phi (byte) irq_raster_next#23 (byte) irq_raster_next#0 @@ -6619,20 +7027,26 @@ Redundant Phi (byte) sprites_irq::toSpritePtr2_return#2 (byte) sprites_irq::toSp Redundant Phi (byte) sprites_irq::toSpritePtr2_return#3 (byte) sprites_irq::toSpritePtr2_return#1 Redundant Phi (byte) irq_sprite_ptr#17 (byte) irq_sprite_ptr#0 Redundant Phi (byte) irq_raster_next#20 (byte) irq_raster_next#21 +Redundant Phi (byte) level#33 (byte) level#41 +Redundant Phi (byte) level#10 (byte) level#33 Redundant Phi (byte) current_movedown_counter#7 (byte) current_movedown_counter#14 Redundant Phi (byte) play_move_down::key_event#1 (byte) play_move_down::key_event#0 +Redundant Phi (byte) current_movedown_slow#15 (byte) current_movedown_slow#37 Redundant Phi (byte) current_ypos#10 (byte) current_ypos#36 Redundant Phi (byte) current_xpos#13 (byte) current_xpos#101 Redundant Phi (byte) current_orientation#12 (byte) current_orientation#37 -Redundant Phi (word) lines_bcd#18 (word) lines_bcd#26 -Redundant Phi (dword) score_bcd#18 (dword) score_bcd#26 -Redundant Phi (byte) level_bcd#19 (byte) level_bcd#26 +Redundant Phi (word) lines_bcd#18 (word) lines_bcd#25 +Redundant Phi (dword) score_bcd#18 (dword) score_bcd#25 +Redundant Phi (byte) level#22 (byte) level#30 +Redundant Phi (byte) level_bcd#23 (byte) level_bcd#32 Redundant Phi (byte*) current_piece#18 (byte*) current_piece#27 Redundant Phi (byte*) current_piece_gfx#24 (byte*) current_piece_gfx#32 Redundant Phi (byte) current_piece_char#18 (byte) current_piece_char#23 Redundant Phi (word) lines_bcd#1 (word) lines_bcd#13 Redundant Phi (dword) score_bcd#1 (dword) score_bcd#12 -Redundant Phi (byte) level_bcd#1 (byte) level_bcd#14 +Redundant Phi (byte) level#1 (byte) level#14 +Redundant Phi (byte) current_movedown_slow#16 (byte) current_movedown_slow#19 +Redundant Phi (byte) level_bcd#1 (byte) level_bcd#15 Redundant Phi (byte*) current_piece#1 (byte*) current_piece#13 Redundant Phi (byte) current_orientation#1 (byte) current_orientation#20 Redundant Phi (byte*) current_piece_gfx#0 (byte*) current_piece_gfx#16 @@ -6673,24 +7087,34 @@ Redundant Phi (byte) play_remove_lines::removed#3 (byte) play_remove_lines::remo Redundant Phi (byte) play_update_score::removed#1 (byte) play_update_score::removed#0 Redundant Phi (word) lines_bcd#12 (word) lines_bcd#18 Redundant Phi (dword) score_bcd#11 (dword) score_bcd#18 -Redundant Phi (byte) level_bcd#12 (byte) level_bcd#19 +Redundant Phi (byte) level#25 (byte) level#22 +Redundant Phi (byte) current_movedown_slow#31 (byte) current_movedown_slow#15 +Redundant Phi (byte) level_bcd#26 (byte) level_bcd#23 +Redundant Phi (byte) level#13 (byte) level#16 +Redundant Phi (byte) current_movedown_slow#18 (byte) current_movedown_slow#20 +Redundant Phi (byte) level_bcd#14 (byte) level_bcd#18 +Redundant Phi (byte) level#15 (byte) level#25 +Redundant Phi (byte) level_bcd#16 (byte) level_bcd#26 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#36 (byte) current_movedown_slow#0 Redundant Phi (byte*) current_piece#26 (byte*) current_piece#0 Redundant Phi (byte) current_orientation#36 (byte) current_orientation#0 Redundant Phi (byte*) current_piece_gfx#31 (byte*) current_piece_gfx#35 Redundant Phi (byte) current_xpos#43 (byte) current_xpos#102 Redundant Phi (byte) current_ypos#35 (byte) current_ypos#38 Redundant Phi (byte) current_piece_char#22 (byte) current_piece_char#25 +Redundant Phi (byte) level#41 (byte) level#0 Redundant Phi (byte) render_screen_showing#16 (byte) render_screen_showing#0 Redundant Phi (byte) keyboard_events_size#32 (byte) keyboard_events_size#0 Redundant Phi (byte) keyboard_modifiers#29 (byte) keyboard_modifiers#0 Redundant Phi (byte) current_movedown_counter#23 (byte) current_movedown_counter#0 -Redundant Phi (word) lines_bcd#35 (word) lines_bcd#0 -Redundant Phi (dword) score_bcd#35 (dword) score_bcd#0 -Redundant Phi (byte) level_bcd#35 (byte) level_bcd#0 +Redundant Phi (word) lines_bcd#34 (word) lines_bcd#0 +Redundant Phi (dword) score_bcd#34 (dword) score_bcd#0 +Redundant Phi (byte) level_bcd#43 (byte) level_bcd#0 Redundant Phi (byte) render_screen_show#14 (byte) render_screen_show#1 Redundant Phi (byte) render_screen_render#15 (byte) render_screen_render#1 +Redundant Phi (byte) current_movedown_slow#10 (byte) current_movedown_slow#1 Redundant Phi (byte*) current_piece#14 (byte*) current_piece#13 Redundant Phi (byte) current_orientation#21 (byte) current_orientation#20 Redundant Phi (byte*) current_piece_gfx#17 (byte*) current_piece_gfx#16 @@ -6703,9 +7127,11 @@ Redundant Phi (byte) keyboard_events_size#26 (byte) keyboard_events_size#19 Redundant Phi (byte) keyboard_modifiers#23 (byte) keyboard_modifiers#16 Redundant Phi (byte) current_movedown_counter#14 (byte) current_movedown_counter#12 Redundant Phi (byte) current_ypos#36 (byte) current_ypos#21 -Redundant Phi (word) lines_bcd#26 (word) lines_bcd#15 -Redundant Phi (dword) score_bcd#26 (dword) score_bcd#14 -Redundant Phi (byte) level_bcd#26 (byte) level_bcd#16 +Redundant Phi (word) lines_bcd#25 (word) lines_bcd#15 +Redundant Phi (dword) score_bcd#25 (dword) score_bcd#14 +Redundant Phi (byte) level#30 (byte) level#19 +Redundant Phi (byte) current_movedown_slow#37 (byte) current_movedown_slow#12 +Redundant Phi (byte) level_bcd#32 (byte) level_bcd#20 Redundant Phi (byte*) current_piece#27 (byte*) current_piece#16 Redundant Phi (byte) current_orientation#37 (byte) current_orientation#10 Redundant Phi (byte*) current_piece_gfx#32 (byte*) current_piece_gfx#20 @@ -6720,7 +7146,9 @@ Redundant Phi (byte) current_movedown_counter#11 (byte) current_movedown_counter Redundant Phi (byte) current_ypos#20 (byte) current_ypos#13 Redundant Phi (word) lines_bcd#14 (word) lines_bcd#11 Redundant Phi (dword) score_bcd#13 (dword) score_bcd#10 -Redundant Phi (byte) level_bcd#15 (byte) level_bcd#11 +Redundant Phi (byte) level#18 (byte) level#12 +Redundant Phi (byte) current_movedown_slow#11 (byte) current_movedown_slow#17 +Redundant Phi (byte) level_bcd#19 (byte) level_bcd#13 Redundant Phi (byte*) current_piece#15 (byte*) current_piece#10 Redundant Phi (byte) current_orientation#22 (byte) current_orientation#14 Redundant Phi (byte*) current_piece_gfx#18 (byte*) current_piece_gfx#1 @@ -6735,6 +7163,7 @@ Redundant Phi (byte) irq_sprite_ptr#15 (byte) irq_sprite_ptr#16 Redundant Phi (byte) irq_raster_next#18 (byte) irq_raster_next#19 Redundant Phi (byte) render_screen_show#17 (byte) render_screen_show#16 Redundant Phi (byte) render_screen_render#18 (byte) render_screen_render#17 +Redundant Phi (byte) current_movedown_slow#13 (byte) current_movedown_slow#12 Redundant Phi (byte*) current_piece#17 (byte*) current_piece#16 Redundant Phi (byte) current_orientation#11 (byte) current_orientation#10 Redundant Phi (byte*) current_piece_gfx#10 (byte*) current_piece_gfx#20 @@ -6747,11 +7176,12 @@ Redundant Phi (byte) keyboard_modifiers#17 (byte) keyboard_modifiers#16 Redundant Phi (byte) current_movedown_counter#13 (byte) current_movedown_counter#12 Redundant Phi (word) lines_bcd#16 (word) lines_bcd#15 Redundant Phi (dword) score_bcd#15 (dword) score_bcd#14 -Redundant Phi (byte) level_bcd#17 (byte) level_bcd#16 +Redundant Phi (byte) level#20 (byte) level#19 +Redundant Phi (byte) level_bcd#10 (byte) level_bcd#20 Successful SSA optimization Pass2RedundantPhiElimination Redundant Phi (byte) keyboard_event_scan::row#4 (byte) keyboard_event_scan::row#2 -Redundant Phi (byte) render_current::ypos2#4 (byte) render_current::ypos2#2 -Redundant Phi (byte) render_current::l#2 (byte) render_current::l#4 +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#48 (byte) current_xpos#12 Redundant Phi (byte*) current_piece_gfx#54 (byte*) current_piece_gfx#22 @@ -6778,10 +7208,10 @@ Simple Condition (bool~) render_screen_original::$6 if((byte) render_screen_orig Simple Condition (bool~) render_screen_original::$7 if((byte) render_screen_original::y#1!=rangelast(0,24)) goto render_screen_original::@1 Simple Condition (bool~) render_playfield::$5 if((byte) render_playfield::c#1!=rangelast(0,render_playfield::$4)) goto render_playfield::@2 Simple Condition (bool~) render_playfield::$6 if((byte) render_playfield::l#1!=rangelast(2,render_playfield::$1)) goto render_playfield::@1 -Simple Condition (bool~) render_current::$11 if((byte) render_current::l#1!=rangelast(0,3)) goto render_current::@1 -Simple Condition (bool~) render_current::$7 if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 -Simple Condition (bool~) render_current::$10 if((byte) render_current::c#1!=rangelast(0,3)) goto render_current::@4 -Simple Condition (bool~) render_current::$9 if((byte) render_current::xpos#2>=(byte) PLAYFIELD_COLS#0) goto render_current::@6 +Simple Condition (bool~) render_moving::$11 if((byte) render_moving::l#1!=rangelast(0,3)) goto render_moving::@1 +Simple Condition (bool~) render_moving::$7 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 if((byte) render_moving::c#1!=rangelast(0,3)) goto render_moving::@4 +Simple Condition (bool~) render_moving::$9 if((byte) render_moving::xpos#2>=(byte) PLAYFIELD_COLS#0) goto render_moving::@6 Simple Condition (bool~) sprites_init::$4 if((byte) sprites_init::s#1!=rangelast(0,3)) goto sprites_init::@1 Simple Condition (bool~) sprites_irq::$0 if(*((byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 Simple Condition (bool~) sprites_irq::$1 if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 @@ -6790,7 +7220,7 @@ Simple Condition (bool~) sprites_irq::$6 if((byte~) sprites_irq::$4!=(byte/signe Simple Condition (bool~) play_init::$2 if((byte) play_init::j#1!=rangelast(0,play_init::$0)) goto play_init::@1 Simple Condition (bool~) play_move_down::$1 if((byte) play_move_down::key_event#0!=(byte) KEY_SPACE#0) goto play_move_down::@1 Simple Condition (bool~) play_move_down::$4 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 if((byte) current_movedown_counter#1<(byte) current_movedown_slow#0) goto play_move_down::@4 +Simple Condition (bool~) play_move_down::$8 if((byte) current_movedown_counter#1<(byte) current_movedown_slow#12) goto play_move_down::@4 Simple Condition (bool~) play_move_down::$6 if((byte) current_movedown_counter#1<(byte) current_movedown_fast#0) goto play_move_down::@3 Simple Condition (bool~) play_move_down::$10 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 if((byte~) play_move_down::$12==(byte) COLLISION_NONE#0) goto play_move_down::@6 @@ -6819,11 +7249,12 @@ Simple Condition (bool~) play_remove_lines::$12 if((byte) play_remove_lines::y#1 Simple Condition (bool~) play_remove_lines::$13 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 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 if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@2 -Simple Condition (bool~) play_update_score::$11 if((byte~) play_update_score::$9!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_update_score::@3 +Simple Condition (bool~) play_increase_level::$0 if((byte) level#16>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@1 +Simple Condition (bool~) play_increase_level::$3 if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 Simple Condition (bool~) main::$8 if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 Simple Condition (bool~) main::$16 if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@7 Successful SSA optimization Pass2ConditionalJumpSimplification -Rewriting && if()-condition to two if()s (bool~) render_current::$4 ← (bool~) render_current::$1 && (bool~) render_current::$3 +Rewriting && if()-condition to two if()s (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 @@ -7008,7 +7439,8 @@ Constant (const byte) render_screen_render#0 = 64 Constant (const byte) render_screen_show#0 = 0 Constant (const dword) score_bcd#0 = 0 Constant (const word) lines_bcd#0 = 0 -Constant (const byte) level_bcd#0 = 1 +Constant (const byte) level_bcd#0 = 0 +Constant (const byte) level#0 = 0 Constant (const byte) PLAYFIELD_SCREEN_ORIGINAL_WIDTH#0 = 32 Constant (const byte/signed byte/word/signed word/dword/signed dword) render_init::$6 = 2*40 Constant (const byte/signed byte/word/signed word/dword/signed dword) render_init::$9 = 2*40 @@ -7034,9 +7466,9 @@ Constant (const byte) render_screen_original::y#0 = 0 Constant (const byte) render_screen_original::x#0 = 0 Constant (const byte) render_playfield::l#0 = 2 Constant (const byte) render_playfield::c#0 = 0 -Constant (const byte) render_current::i#0 = 0 -Constant (const byte) render_current::l#0 = 0 -Constant (const byte) render_current::c#0 = 0 +Constant (const byte) render_moving::i#0 = 0 +Constant (const byte) render_moving::l#0 = 0 +Constant (const byte) render_moving::c#0 = 0 Constant (const byte/signed byte/word/signed word/dword/signed dword) sprites_init::$0 = 15*8 Constant (const byte) sprites_init::s#0 = 0 Constant (const byte) IRQ_RASTER_FIRST#0 = 49 @@ -7060,10 +7492,11 @@ Constant (const byte[]) PIECES_START_X#0 = { 4, 4, 4, 4, 4, 4, 4 } Constant (const byte[]) PIECES_START_Y#0 = { 1, 1, 1, 1, 1, 0, 1 } Constant (const byte*) current_piece#0 = ((byte*))0 Constant (const byte) current_orientation#0 = 0 -Constant (const byte) current_movedown_slow#0 = 50 -Constant (const byte) current_movedown_fast#0 = 5 +Constant (const byte) current_movedown_slow#0 = 48 +Constant (const byte) current_movedown_fast#0 = 2 Constant (const byte) current_movedown_counter#0 = 0 Constant (const dword[]) score_add_bcd#0 = { 0, 64, 256, 768, 4608 } +Constant (const byte[]) MOVEDOWN_SLOW_SPEEDS#0 = { 48, 43, 38, 33, 28, 23, 18, 13, 8, 6, 5, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 } Constant (const byte) play_init::idx#0 = 0 Constant (const byte) play_init::j#0 = 0 Constant (const byte) play_move_down::movedown#0 = 0 @@ -7095,6 +7528,7 @@ Constant (const byte) play_remove_lines::y#0 = 0 Constant (const byte) play_remove_lines::full#0 = 1 Constant (const byte) play_remove_lines::x#0 = 0 Constant (const byte) play_remove_lines::full#1 = 0 +Constant (const byte) current_movedown_slow#7 = 1 Constant (const byte) main::render#0 = 0 Successful SSA optimization Pass2ConstantIdentification Constant (const byte[]) keyboard_char_keycodes#0 = { KEY_AT#0, KEY_A#0, KEY_B#0, KEY_C#0, KEY_D#0, KEY_E#0, KEY_F#0, KEY_G#0, KEY_H#0, KEY_I#0, KEY_J#0, KEY_K#0, KEY_L#0, KEY_M#0, KEY_N#0, KEY_O#0, KEY_P#0, KEY_Q#0, KEY_R#0, KEY_S#0, KEY_T#0, KEY_U#0, KEY_V#0, KEY_W#0, KEY_X#0, KEY_Y#0, KEY_Z#0, 63, KEY_POUND#0, 63, KEY_ARROW_UP#0, KEY_ARROW_LEFT#0, KEY_SPACE#0, 63, 63, 63, 63, 63, 63, 63, 63, 63, KEY_ASTERISK#0, KEY_PLUS#0, KEY_COMMA#0, KEY_MINUS#0, KEY_DOT#0, KEY_SLASH#0, KEY_0#0, KEY_1#0, KEY_2#0, KEY_3#0, KEY_4#0, KEY_5#0, KEY_6#0, KEY_7#0, KEY_8#0, KEY_9#0, KEY_COLON#0, KEY_SEMICOLON#0, 63, KEY_EQUALS#0, 63, 63 } @@ -7132,7 +7566,7 @@ 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_current::$2 = 2*PLAYFIELD_LINES#0 +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 word) toSpritePtr1_$0#0 = ((word))PLAYFIELD_SPRITES#0 Constant (const byte*) sprites_irq::toSpritePtr2_sprite#0 = PLAYFIELD_SPRITES#0 @@ -7238,6 +7672,7 @@ Consolidated array index constant in *(PLAYFIELD_SPRITE_PTRS_2#0+1) Consolidated array index constant in *(PLAYFIELD_SPRITE_PTRS_2#0+2) 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 if(true) goto main::@2 Successful SSA optimization Pass2ConstantIfs @@ -7259,10 +7694,10 @@ Resolved ranged next value render_playfield::c#1 ← ++ render_playfield::c#2 to Resolved ranged comparison value if(render_playfield::c#1!=rangelast(0,render_playfield::$4)) goto render_playfield::@2 to (const byte/signed word/word/dword/signed dword) render_playfield::$4+(byte/signed byte/word/signed word/dword/signed dword) 1 Resolved ranged next value render_playfield::l#1 ← ++ render_playfield::l#2 to ++ Resolved ranged comparison value if(render_playfield::l#1!=rangelast(2,render_playfield::$1)) goto render_playfield::@1 to (const byte/signed word/word/dword/signed dword) render_playfield::$1+(byte/signed byte/word/signed word/dword/signed dword) 1 -Resolved ranged next value render_current::l#1 ← ++ render_current::l#4 to ++ -Resolved ranged comparison value if(render_current::l#1!=rangelast(0,3)) goto render_current::@1 to (byte/signed byte/word/signed word/dword/signed dword) 4 -Resolved ranged next value render_current::c#1 ← ++ render_current::c#2 to ++ -Resolved ranged comparison value if(render_current::c#1!=rangelast(0,3)) goto render_current::@4 to (byte/signed byte/word/signed word/dword/signed dword) 4 +Resolved ranged next value render_moving::l#1 ← ++ render_moving::l#4 to ++ +Resolved ranged comparison value if(render_moving::l#1!=rangelast(0,3)) goto render_moving::@1 to (byte/signed byte/word/signed word/dword/signed dword) 4 +Resolved ranged next value render_moving::c#1 ← ++ render_moving::c#2 to ++ +Resolved ranged comparison value if(render_moving::c#1!=rangelast(0,3)) goto render_moving::@4 to (byte/signed byte/word/signed word/dword/signed dword) 4 Resolved ranged next value sprites_init::s#1 ← ++ sprites_init::s#2 to ++ Resolved ranged comparison value if(sprites_init::s#1!=rangelast(0,3)) goto sprites_init::@1 to (byte/signed byte/word/signed word/dword/signed dword) 4 Resolved ranged next value play_init::j#1 ← ++ play_init::j#2 to ++ @@ -7296,7 +7731,7 @@ 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_current::@6 +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 @@ -7319,13 +7754,15 @@ Culled Empty Block (label) play_collision::@18 Culled Empty Block (label) play_remove_lines::@7 Culled Empty Block (label) play_update_score::@1 Culled Empty Block (label) play_update_score::@2 -Culled Empty Block (label) play_update_score::@3 +Culled Empty Block (label) play_update_score::@5 +Culled Empty Block (label) play_increase_level::@1 +Culled Empty Block (label) play_increase_level::@3 Culled Empty Block (label) main::@22 Culled Empty Block (label) main::@2 Culled Empty Block (label) main::@5 Culled Empty Block (label) main::@7 Culled Empty Block (label) main::@32 -Culled Empty Block (label) @37 +Culled Empty Block (label) @38 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) render_screen_showing#1 = (byte) render_screen_showing#2 Successful SSA optimization Pass2AliasElimination @@ -7355,8 +7792,8 @@ Redundant Phi (byte) current_xpos#22 (byte) current_xpos#10 Redundant Phi (byte*) current_piece_gfx#29 (byte*) current_piece_gfx#20 Redundant Phi (byte) current_piece_char#30 (byte) current_piece_char#15 Successful SSA optimization Pass2RedundantPhiElimination -Simple Condition (bool~) render_current::$1 if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 -Simple Condition (bool~) render_current::$3 if((byte) render_current::ypos2#2<(const byte/signed word/word/dword/signed dword) render_current::$2) goto render_current::@2 +Simple Condition (bool~) render_moving::$1 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 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 Inlining constant with var siblings (const byte) keyboard_event_scan::keycode#0 Inlining constant with var siblings (const byte) keyboard_event_scan::row#0 @@ -7394,9 +7831,9 @@ Inlining constant with var siblings (const byte*) render_screen_original::cols#0 Inlining constant with var siblings (const byte) render_playfield::l#0 Inlining constant with var siblings (const byte) render_playfield::c#0 Inlining constant with var siblings (const byte) render_playfield::i#0 -Inlining constant with var siblings (const byte) render_current::i#0 -Inlining constant with var siblings (const byte) render_current::l#0 -Inlining constant with var siblings (const byte) render_current::c#0 +Inlining constant with var siblings (const byte) render_moving::i#0 +Inlining constant with var siblings (const byte) render_moving::l#0 +Inlining constant with var siblings (const byte) render_moving::c#0 Inlining constant with var siblings (const byte) sprites_init::s#0 Inlining constant with var siblings (const byte) sprites_init::xpos#0 Inlining constant with different constant siblings (const byte) sprites_irq::toSpritePtr2_return#1 @@ -7438,11 +7875,13 @@ Inlining constant with var siblings (const byte) keyboard_modifiers#1 Inlining constant with var siblings (const dword) score_bcd#0 Inlining constant with var siblings (const word) lines_bcd#0 Inlining constant with var siblings (const byte) level_bcd#0 +Inlining constant with var siblings (const byte) level#0 Inlining constant with var siblings (const byte) render_screen_show#1 Inlining constant with var siblings (const byte) render_screen_render#1 Inlining constant with var siblings (const byte) current_movedown_counter#0 Inlining constant with var siblings (const byte) current_movedown_counter#2 Inlining constant with var siblings (const byte) current_orientation#20 +Inlining constant with var siblings (const byte) current_movedown_slow#7 Inlining constant with var siblings (const byte) keyboard_modifiers#2 Inlining constant with different constant siblings (const byte) toSpritePtr1_return#1 Constant inlined play_remove_lines::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -7451,12 +7890,13 @@ Constant inlined play_move_rotate::return#2 = (byte/signed byte/word/signed word Constant inlined render_show::toD0181_$7#0 = >((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 Constant inlined play_init::pli#0 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 Constant inlined play_move_rotate::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined render_current::l#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined 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#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_screen_original::screen#1 = (const byte*) PLAYFIELD_SCREEN_2#0 Constant inlined render_screen_original::screen#0 = (const byte*) PLAYFIELD_SCREEN_1#0 +Constant inlined current_movedown_slow#7 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined render_screen_original::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_show::toD0182_$7#0 = >((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15 Constant inlined render_playfield::i#0 = (const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 @@ -7490,7 +7930,6 @@ Constant inlined $11 = (byte/signed byte/word/signed word/dword/signed dword) 4* Constant inlined render_init::$6 = (byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40 Constant inlined $12 = (byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4 Constant inlined keyboard_event_scan::col#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_current::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined lines_bcd#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_init::$3 = (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 Constant inlined $13 = (byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4 @@ -7505,6 +7944,7 @@ Constant inlined $18 = (byte/signed byte/word/signed word/dword/signed dword) 4* Constant inlined $19 = ((word))(const byte[4*4*4]) PIECE_T#0 Constant inlined render_show::toD0181_screen#0 = (const byte*) PLAYFIELD_SCREEN_1#0 Constant inlined render_playfield::l#0 = (byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined render_moving::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_show::toD0182_$6#0 = >((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined render_screen_original::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_bcd::only_low#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -7534,7 +7974,6 @@ Constant inlined sprites_irq::toSpritePtr2_$1#0 = ((word))(const byte*) PLAYFIEL Constant inlined play_collision::return#7 = (const byte) COLLISION_RIGHT#0 Constant inlined play_init::$3 = (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 Constant inlined play_collision::return#6 = (const byte) COLLISION_LEFT#0 -Constant inlined render_current::$2 = (byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0 Constant inlined play_collision::return#4 = (const byte) COLLISION_BOTTOM#0 Constant inlined play_move_down::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined play_move_down::return#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -7570,6 +8009,7 @@ Constant inlined play_remove_lines::full#1 = (byte/signed byte/word/signed word/ Constant inlined play_remove_lines::full#0 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined sprites_init::s#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_show::toD0182_$4#0 = ((word))(const byte*) PLAYFIELD_CHARSET#0 +Constant inlined render_moving::l#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_show::toD0182_$0#0 = ((word))(const byte*) PLAYFIELD_SCREEN_2#0 Constant inlined play_move_leftright::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -7583,7 +8023,6 @@ Constant inlined current_orientation#20 = (byte/signed byte/word/signed word/dwo Constant inlined render_init::li_2#0 = (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 Constant inlined play_move_down::movedown#1 = ++(byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_move_down::movedown#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_current::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_remove_lines::w#0 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined play_init::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_screen_original::ocols#0 = (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 @@ -7594,8 +8033,10 @@ Constant inlined keyboard_event_scan::row#0 = (byte/signed byte/word/signed word Constant inlined render_playfield::$1 = (const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined render_playfield::$4 = (const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined play_remove_lines::$5 = (const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined level_bcd#0 = (byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined level_bcd#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined level#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_init::idx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_moving::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_show::toD0182_$3#0 = >((word))(const byte*) PLAYFIELD_SCREEN_2#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined render_init::vicSelectGfxBank1_toDd001_$0#0 = ((word))(const byte*) PLAYFIELD_CHARSET#0 Constant inlined render_show::toD0182_screen#0 = (const byte*) PLAYFIELD_SCREEN_2#0 @@ -7619,13 +8060,14 @@ Simplifying constant plus zero render_score::score_bytes#0+0 Simplifying constant plus zero SPRITES_YPOS#0+0 Simplifying constant plus zero PLAYFIELD_SPRITE_PTRS_1#0+0 Simplifying constant plus zero PLAYFIELD_SPRITE_PTRS_2#0+0 +Simplifying constant plus zero MOVEDOWN_SLOW_SPEEDS#0+0 Simplifying constant integer increment ++0 Successful SSA optimization Pass2ConstantSimplification Added new block during phi lifting main::@33(between main::@28 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_current::@14(between render_current::@3 and render_current::@1) -Added new block during phi lifting render_current::@15(between render_current::@5 and render_current::@3) -Added new block during phi lifting render_current::@16(between render_current::@5 and render_current::@4) +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_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_move_rotate::@15(between play_move_rotate::@14 and play_move_rotate::@return) @@ -7645,9 +8087,9 @@ Added new block during phi lifting play_move_down::@24(between play_move_down::@ Added new block during phi lifting play_move_down::@25(between play_move_down::@2 and play_move_down::@4) Added new block during phi lifting play_move_down::@26(between play_move_down::@4 and play_move_down::@return) Fixing phi predecessor for play_move_down::return#2 to new block ( play_move_down::@4 -> play_move_down::@26 ) during phi lifting. -Added new block during phi lifting play_update_score::@7(between play_update_score and play_update_score::@return) -Added new block during phi lifting play_update_score::@8(between play_update_score::@4 and play_update_score::@return) -Added new block during phi lifting play_update_score::@9(between play_update_score::@5 and play_update_score::@return) +Added new block during phi lifting play_update_score::@6(between play_update_score and play_update_score::@return) +Added new block during phi lifting play_update_score::@7(between play_update_score::@3 and play_update_score::@return) +Added new block during phi lifting play_increase_level::@7(between play_increase_level::@2 and play_increase_level::@return) Added new block during phi lifting play_remove_lines::@16(between play_remove_lines::@4 and play_remove_lines::@1) Added new block during phi lifting play_remove_lines::@17(between play_remove_lines::@3 and play_remove_lines::@2) Added new block during phi lifting play_remove_lines::@18(between play_remove_lines::@2 and play_remove_lines::@3) @@ -7677,7 +8119,7 @@ Added new block during phi lifting render_screen_original::@14(between render_sc Added new block during phi lifting sprites_irq::@14(between sprites_irq::@5 and sprites_irq::@6) Adding NOP phi() at start of @begin Adding NOP phi() at start of toSpritePtr1 -Adding NOP phi() at start of @35 +Adding NOP phi() at start of @36 Adding NOP phi() at start of @end Adding NOP phi() at start of main Adding NOP phi() at start of main::@16 @@ -7697,6 +8139,7 @@ Adding NOP phi() at start of play_move_down::@19 Adding NOP phi() at start of play_move_down::@21 Adding NOP phi() at start of play_spawn_current Adding NOP phi() at start of play_spawn_current::@2 +Adding NOP phi() at start of play_update_score::@4 Adding NOP phi() at start of play_remove_lines Adding NOP phi() at start of play_remove_lines::@8 Adding NOP phi() at start of keyboard_event_scan::@20 @@ -7710,272 +8153,292 @@ Adding NOP phi() at start of render_init::@4 Adding NOP phi() at start of sprites_irq::toSpritePtr2 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_current:32 render_show:41 keyboard_event_scan:43 keyboard_event_get:45 play_move_down:49 play_move_leftright:54 play_move_rotate:59 render_playfield:65 render_current:71 render_score:73 render_screen_swap:75 -Calls in [render_score] to render_bcd:110 render_bcd:115 render_bcd:120 render_bcd:125 render_bcd:130 render_bcd:135 -Calls in [play_move_rotate] to play_collision:224 -Calls in [play_move_leftright] to play_collision:276 play_collision:293 -Calls in [play_move_down] to keyboard_event_pressed:304 play_collision:324 play_lock_current:329 play_remove_lines:331 play_update_score:335 play_spawn_current:337 -Calls in [play_spawn_current] to sid_rnd:391 -Calls in [keyboard_event_scan] to keyboard_matrix_read:509 keyboard_event_pressed:520 keyboard_event_pressed:526 keyboard_event_pressed:533 keyboard_event_pressed:540 -Calls in [render_init] to render_screen_original:639 render_screen_original:641 +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:42 keyboard_event_scan:44 keyboard_event_get:46 play_move_down:50 play_move_leftright:55 play_move_rotate:60 render_playfield:66 render_moving:72 render_score:74 render_screen_swap:76 +Calls in [render_score] to render_bcd:115 render_bcd:120 render_bcd:125 render_bcd:130 render_bcd:135 render_bcd:140 +Calls in [play_move_rotate] to play_collision:229 +Calls in [play_move_leftright] to play_collision:281 play_collision:298 +Calls in [play_move_down] to keyboard_event_pressed:309 play_collision:329 play_lock_current:334 play_remove_lines:336 play_update_score:340 play_spawn_current:342 +Calls in [play_spawn_current] to sid_rnd:404 +Calls in [play_update_score] to play_increase_level:424 +Calls in [keyboard_event_scan] to keyboard_matrix_read:536 keyboard_event_pressed:547 keyboard_event_pressed:553 keyboard_event_pressed:560 keyboard_event_pressed:567 +Calls in [render_init] to render_screen_original:667 render_screen_original:669 -Created 142 initial phi equivalence classes +Created 152 initial phi equivalence classes Not coalescing [28] current_ypos#86 ← current_ypos#18 Not coalescing [29] current_xpos#112 ← current_xpos#23 Not coalescing [30] current_piece_gfx#102 ← current_piece_gfx#16 Not coalescing [31] current_piece_char#90 ← current_piece_char#12 -Coalesced [34] current_piece_gfx#99 ← current_piece_gfx#16 -Coalesced [35] current_xpos#109 ← current_xpos#23 -Coalesced [36] current_ypos#83 ← current_ypos#18 -Coalesced [37] current_piece_char#87 ← current_piece_char#12 -Not coalescing [64] render_screen_render#65 ← render_screen_render#17 -Not coalescing [66] current_ypos#87 ← current_ypos#13 -Not coalescing [67] render_screen_render#64 ← render_screen_render#17 -Not coalescing [68] current_xpos#113 ← current_xpos#19 -Not coalescing [69] current_piece_gfx#103 ← current_piece_gfx#14 -Not coalescing [70] current_piece_char#91 ← current_piece_char#1 -Coalesced [76] render_screen_show#58 ← render_screen_show#13 -Coalesced [77] render_screen_render#63 ← render_screen_render#11 -Coalesced [78] current_piece#74 ← current_piece#10 -Coalesced [79] current_orientation#77 ← current_orientation#19 -Coalesced [80] current_piece_gfx#100 ← current_piece_gfx#14 -Coalesced [81] current_xpos#110 ← current_xpos#19 -Coalesced [82] current_ypos#84 ← current_ypos#13 -Coalesced [83] current_piece_char#88 ← current_piece_char#1 -Coalesced [84] keyboard_events_size#80 ← keyboard_events_size#16 -Coalesced [85] current_movedown_counter#49 ← current_movedown_counter#10 -Coalesced [86] lines_bcd#81 ← lines_bcd#11 -Coalesced [87] score_bcd#77 ← score_bcd#10 -Coalesced [88] level_bcd#83 ← level_bcd#11 -Coalesced (already) [89] current_piece#75 ← current_piece#10 -Coalesced (already) [90] current_orientation#78 ← current_orientation#19 -Coalesced (already) [91] current_piece_gfx#101 ← current_piece_gfx#14 -Coalesced (already) [92] current_xpos#111 ← current_xpos#19 -Coalesced (already) [93] current_ypos#85 ← current_ypos#13 -Coalesced (already) [94] current_piece_char#89 ← current_piece_char#1 -Coalesced (already) [95] keyboard_events_size#81 ← keyboard_events_size#16 -Coalesced (already) [96] current_movedown_counter#50 ← current_movedown_counter#10 -Coalesced (already) [97] lines_bcd#82 ← lines_bcd#11 -Coalesced (already) [98] score_bcd#78 ← score_bcd#10 -Coalesced (already) [99] level_bcd#84 ← level_bcd#11 -Coalesced [108] render_bcd::screen#7 ← render_bcd::screen#0 -Coalesced [109] render_bcd::bcd#9 ← render_bcd::bcd#0 -Coalesced [113] render_bcd::screen#8 ← render_bcd::screen#1 -Coalesced [114] render_bcd::bcd#10 ← render_bcd::bcd#1 -Coalesced [118] render_bcd::screen#9 ← render_bcd::screen#2 -Coalesced [119] render_bcd::bcd#11 ← render_bcd::bcd#2 -Coalesced [123] render_bcd::screen#10 ← render_bcd::screen#3 -Coalesced [124] render_bcd::bcd#12 ← render_bcd::bcd#3 -Coalesced [128] render_bcd::screen#11 ← render_bcd::screen#4 -Coalesced [129] render_bcd::bcd#13 ← render_bcd::bcd#4 -Coalesced [133] render_bcd::screen#12 ← render_bcd::screen#5 -Coalesced [134] render_bcd::bcd#14 ← render_bcd::bcd#5 -Coalesced [144] render_bcd::screen_pos#6 ← render_bcd::screen_pos#2 -Coalesced [151] render_bcd::screen_pos#5 ← render_bcd::screen_pos#0 -Coalesced [154] render_current::ypos2#11 ← render_current::ypos2#0 -Coalesced [158] render_current::i#14 ← render_current::i#1 -Coalesced [164] render_current::ypos2#12 ← render_current::ypos2#1 -Coalesced [165] render_current::i#12 ← render_current::i#8 -Coalesced [166] render_current::l#11 ← render_current::l#1 -Coalesced [171] render_current::i#15 ← render_current::i#3 -Coalesced [172] render_current::xpos#7 ← render_current::xpos#0 -Coalesced [182] render_current::i#13 ← render_current::i#10 -Coalesced (already) [183] render_current::i#16 ← render_current::i#10 -Coalesced [184] render_current::xpos#8 ← render_current::xpos#1 -Coalesced [185] render_current::c#7 ← render_current::c#1 -Coalesced [191] render_playfield::i#6 ← render_playfield::i#3 -Coalesced [192] render_playfield::screen_line#3 ← render_playfield::screen_line#0 -Coalesced [202] render_playfield::l#5 ← render_playfield::l#1 -Coalesced [203] render_playfield::i#5 ← render_playfield::i#1 -Coalesced (already) [204] render_playfield::i#7 ← render_playfield::i#1 -Coalesced [205] render_playfield::screen_line#4 ← render_playfield::screen_line#1 -Coalesced [206] render_playfield::c#3 ← render_playfield::c#1 -Coalesced [209] current_orientation#81 ← current_orientation#14 -Coalesced [210] current_piece_gfx#106 ← current_piece_gfx#1 -Coalesced [215] play_move_rotate::orientation#7 ← play_move_rotate::orientation#2 -Not coalescing [220] current_piece#79 ← current_piece#10 -Coalesced [221] play_collision::orientation#8 ← play_collision::orientation#3 -Coalesced [222] play_collision::ypos#8 ← play_collision::ypos#3 -Coalesced [223] play_collision::xpos#17 ← play_collision::xpos#3 -Coalesced [230] current_orientation#79 ← current_orientation#4 -Coalesced [231] current_piece_gfx#104 ← current_piece_gfx#3 -Coalesced (already) [232] current_orientation#80 ← current_orientation#14 -Coalesced (already) [233] current_piece_gfx#105 ← current_piece_gfx#1 -Coalesced [236] play_move_rotate::orientation#6 ← play_move_rotate::orientation#1 -Coalesced [240] play_collision::ypos2#11 ← play_collision::ypos2#0 -Coalesced [243] play_collision::i#12 ← play_collision::i#3 -Not coalescing [244] play_collision::col#9 ← play_collision::xpos#5 -Coalesced [261] play_collision::ypos2#12 ← play_collision::ypos2#1 -Not coalescing [262] play_collision::i#11 ← play_collision::i#1 -Coalesced [263] play_collision::l#11 ← play_collision::l#1 -Not coalescing [264] play_collision::i#13 ← play_collision::i#1 -Coalesced [265] play_collision::col#10 ← play_collision::col#1 -Coalesced [266] play_collision::c#9 ← play_collision::c#1 -Not coalescing [272] current_piece#78 ← current_piece#10 -Coalesced [273] play_collision::orientation#7 ← play_collision::orientation#2 -Coalesced [274] play_collision::ypos#7 ← play_collision::ypos#2 -Coalesced [275] play_collision::xpos#16 ← play_collision::xpos#2 -Coalesced [281] current_xpos#116 ← current_xpos#2 -Coalesced [284] current_xpos#115 ← current_xpos#1 -Coalesced (already) [285] current_xpos#118 ← current_xpos#1 -Not coalescing [289] current_piece#77 ← current_piece#10 -Coalesced [290] play_collision::orientation#6 ← play_collision::orientation#1 -Coalesced [291] play_collision::ypos#6 ← play_collision::ypos#1 -Coalesced [292] play_collision::xpos#15 ← play_collision::xpos#1 -Coalesced [298] current_xpos#114 ← current_xpos#4 -Coalesced (already) [299] current_xpos#117 ← current_xpos#1 -Coalesced [310] play_move_down::movedown#13 ← play_move_down::movedown#2 -Coalesced [314] play_move_down::movedown#16 ← play_move_down::movedown#3 -Not coalescing [320] current_piece#76 ← current_piece#16 -Coalesced [321] play_collision::orientation#5 ← play_collision::orientation#0 -Coalesced [322] play_collision::ypos#5 ← play_collision::ypos#0 -Coalesced [323] play_collision::xpos#14 ← play_collision::xpos#0 -Coalesced [338] current_ypos#88 ← current_ypos#18 -Coalesced [339] lines_bcd#83 ← lines_bcd#13 -Coalesced [340] score_bcd#79 ← score_bcd#12 -Coalesced [341] level_bcd#85 ← level_bcd#14 -Coalesced [343] current_piece_gfx#107 ← current_piece_gfx#16 -Coalesced [344] current_xpos#119 ← current_xpos#23 -Coalesced [345] current_piece_char#92 ← current_piece_char#12 -Coalesced (already) [347] current_ypos#91 ← current_ypos#29 -Coalesced [348] lines_bcd#86 ← lines_bcd#20 -Coalesced [349] score_bcd#82 ← score_bcd#20 -Coalesced [350] level_bcd#88 ← level_bcd#21 -Coalesced [351] current_piece#83 ← current_piece#20 -Coalesced [352] current_orientation#84 ← current_orientation#29 -Coalesced (already) [353] current_piece_gfx#110 ← current_piece_gfx#26 -Coalesced (already) [354] current_xpos#122 ← current_xpos#33 -Coalesced (already) [355] current_piece_char#95 ← current_piece_char#20 -Coalesced [359] current_ypos#89 ← current_ypos#0 -Coalesced (already) [360] lines_bcd#84 ← lines_bcd#15 -Coalesced (already) [361] score_bcd#80 ← score_bcd#14 -Coalesced (already) [362] level_bcd#86 ← level_bcd#16 -Coalesced (already) [363] current_piece#81 ← current_piece#16 -Coalesced (already) [364] current_orientation#82 ← current_orientation#10 -Coalesced (already) [365] current_piece_gfx#108 ← current_piece_gfx#20 -Coalesced (already) [366] current_xpos#120 ← current_xpos#10 -Coalesced (already) [367] current_piece_char#93 ← current_piece_char#15 -Coalesced [368] current_movedown_counter#51 ← current_movedown_counter#1 -Coalesced (already) [369] current_ypos#90 ← current_ypos#21 -Coalesced (already) [370] lines_bcd#85 ← lines_bcd#15 -Coalesced (already) [371] score_bcd#81 ← score_bcd#14 -Coalesced (already) [372] level_bcd#87 ← level_bcd#16 -Coalesced (already) [373] current_piece#82 ← current_piece#16 -Coalesced (already) [374] current_orientation#83 ← current_orientation#10 -Coalesced (already) [375] current_piece_gfx#109 ← current_piece_gfx#20 -Coalesced (already) [376] current_xpos#121 ← current_xpos#10 -Coalesced (already) [377] current_piece_char#94 ← current_piece_char#15 -Coalesced [378] play_move_down::movedown#17 ← play_move_down::movedown#7 -Coalesced [379] play_move_down::movedown#15 ← play_move_down::movedown#10 -Coalesced (already) [380] play_move_down::movedown#14 ← play_move_down::movedown#10 -Coalesced [395] play_spawn_current::piece_idx#4 ← play_spawn_current::piece_idx#1 -Coalesced [414] lines_bcd#90 ← lines_bcd#23 -Coalesced [415] score_bcd#86 ← score_bcd#23 -Coalesced [416] level_bcd#92 ← level_bcd#4 -Coalesced (already) [419] lines_bcd#89 ← lines_bcd#23 -Coalesced (already) [420] score_bcd#85 ← score_bcd#23 -Coalesced [421] level_bcd#91 ← level_bcd#13 -Coalesced (already) [422] lines_bcd#88 ← lines_bcd#23 -Coalesced (already) [423] score_bcd#84 ← score_bcd#23 -Coalesced (already) [424] level_bcd#90 ← level_bcd#16 -Coalesced (already) [425] lines_bcd#87 ← lines_bcd#15 -Coalesced (already) [426] score_bcd#83 ← score_bcd#14 -Coalesced (already) [427] level_bcd#89 ← level_bcd#16 -Coalesced [430] play_remove_lines::r#10 ← play_remove_lines::r#3 -Coalesced [431] play_remove_lines::w#14 ← play_remove_lines::w#12 -Coalesced [445] play_remove_lines::w#16 ← play_remove_lines::w#2 -Coalesced [446] play_remove_lines::removed#13 ← play_remove_lines::removed#1 -Coalesced [450] play_remove_lines::w#18 ← play_remove_lines::w#11 -Coalesced [456] play_remove_lines::w#19 ← play_remove_lines::w#3 -Coalesced [457] play_remove_lines::r#9 ← play_remove_lines::r#1 -Coalesced [458] play_remove_lines::w#13 ← play_remove_lines::w#11 -Coalesced [459] play_remove_lines::y#9 ← play_remove_lines::y#1 -Coalesced [460] play_remove_lines::removed#12 ← play_remove_lines::removed#7 -Coalesced [461] play_remove_lines::w#17 ← play_remove_lines::w#1 -Coalesced (already) [462] play_remove_lines::removed#14 ← play_remove_lines::removed#11 -Coalesced (already) [463] play_remove_lines::r#11 ← play_remove_lines::r#1 -Coalesced (already) [464] play_remove_lines::w#15 ← play_remove_lines::w#1 -Coalesced [465] play_remove_lines::x#5 ← play_remove_lines::x#1 -Coalesced [466] play_remove_lines::full#5 ← play_remove_lines::full#2 -Coalesced (already) [467] play_remove_lines::full#6 ← play_remove_lines::full#4 -Coalesced [469] play_lock_current::ypos2#7 ← play_lock_current::ypos2#0 -Coalesced [473] play_lock_current::i#8 ← play_lock_current::i#3 -Coalesced [474] play_lock_current::col#5 ← play_lock_current::col#0 -Coalesced [486] play_lock_current::ypos2#8 ← play_lock_current::ypos2#1 -Not coalescing [487] play_lock_current::i#7 ← play_lock_current::i#1 -Coalesced [488] play_lock_current::l#7 ← play_lock_current::l#1 -Not coalescing [489] play_lock_current::i#9 ← play_lock_current::i#1 -Coalesced [490] play_lock_current::col#6 ← play_lock_current::col#1 -Coalesced [491] play_lock_current::c#5 ← play_lock_current::c#1 -Coalesced [501] keyboard_event_get::return#6 ← keyboard_event_get::return#1 -Coalesced [502] keyboard_events_size#83 ← keyboard_events_size#4 -Coalesced [505] keyboard_events_size#82 ← keyboard_events_size#13 -Coalesced [506] keyboard_events_size#84 ← keyboard_events_size#19 -Coalesced [514] keyboard_event_scan::keycode#17 ← keyboard_event_scan::keycode#1 -Coalesced (already) [515] keyboard_events_size#86 ← keyboard_events_size#29 -Coalesced [531] keyboard_modifiers#61 ← keyboard_modifiers#3 -Coalesced [538] keyboard_modifiers#63 ← keyboard_modifiers#4 -Coalesced [546] keyboard_modifiers#64 ← keyboard_modifiers#12 -Coalesced [547] keyboard_modifiers#62 ← keyboard_modifiers#11 -Coalesced [548] keyboard_event_scan::row#15 ← keyboard_event_scan::row#1 -Coalesced [549] keyboard_event_scan::keycode#16 ← keyboard_event_scan::keycode#14 -Coalesced (already) [550] keyboard_events_size#85 ← keyboard_events_size#13 -Coalesced [551] keyboard_event_scan::keycode#19 ← keyboard_event_scan::keycode#11 -Coalesced [552] keyboard_events_size#88 ← keyboard_events_size#29 -Coalesced [562] keyboard_events_size#90 ← keyboard_events_size#2 -Coalesced [568] keyboard_event_scan::keycode#18 ← keyboard_event_scan::keycode#15 -Coalesced [569] keyboard_events_size#87 ← keyboard_events_size#30 -Coalesced [570] keyboard_event_scan::col#9 ← keyboard_event_scan::col#1 -Coalesced (already) [571] keyboard_event_scan::keycode#20 ← keyboard_event_scan::keycode#15 -Coalesced (already) [572] keyboard_events_size#89 ← keyboard_events_size#30 -Coalesced [576] keyboard_events_size#93 ← keyboard_events_size#1 -Coalesced (already) [577] keyboard_events_size#92 ← keyboard_events_size#10 -Coalesced (already) [578] keyboard_events_size#91 ← keyboard_events_size#10 -Coalesced [600] play_init::j#3 ← play_init::j#1 -Coalesced [601] play_init::pli#3 ← play_init::pli#1 -Coalesced [602] play_init::idx#3 ← play_init::idx#1 -Coalesced [627] sprites_init::s#3 ← sprites_init::s#1 -Coalesced [628] sprites_init::xpos#3 ← sprites_init::xpos#1 -Coalesced [652] render_init::i#3 ← render_init::i#1 -Coalesced [653] render_init::li_1#3 ← render_init::li_1#1 -Coalesced [654] render_init::li_2#3 ← render_init::li_2#1 -Coalesced [656] render_screen_original::screen#11 ← render_screen_original::screen#9 -Coalesced [658] render_screen_original::screen#13 ← render_screen_original::screen#8 -Coalesced [659] render_screen_original::cols#10 ← render_screen_original::cols#7 -Coalesced [667] render_screen_original::oscr#8 ← render_screen_original::oscr#4 -Coalesced [668] render_screen_original::screen#15 ← render_screen_original::screen#2 -Coalesced [669] render_screen_original::ocols#8 ← render_screen_original::ocols#4 -Coalesced [670] render_screen_original::cols#12 ← render_screen_original::cols#1 -Coalesced [671] render_screen_original::x#8 ← render_screen_original::x#1 -Coalesced [681] render_screen_original::screen#17 ← render_screen_original::screen#3 -Coalesced [682] render_screen_original::cols#14 ← render_screen_original::cols#2 -Coalesced [683] render_screen_original::x#10 ← render_screen_original::x#2 -Coalesced [694] render_screen_original::screen#12 ← render_screen_original::screen#10 -Coalesced [695] render_screen_original::cols#9 ← render_screen_original::cols#3 -Coalesced [696] render_screen_original::oscr#7 ← render_screen_original::oscr#1 -Coalesced [697] render_screen_original::ocols#7 ← render_screen_original::ocols#1 -Coalesced [698] render_screen_original::y#7 ← render_screen_original::y#1 -Coalesced [699] render_screen_original::screen#18 ← render_screen_original::screen#10 -Coalesced [700] render_screen_original::cols#15 ← render_screen_original::cols#3 -Coalesced [701] render_screen_original::x#11 ← render_screen_original::x#3 -Coalesced (already) [702] render_screen_original::oscr#9 ← render_screen_original::oscr#1 -Coalesced [703] render_screen_original::screen#16 ← render_screen_original::screen#3 -Coalesced (already) [704] render_screen_original::ocols#9 ← render_screen_original::ocols#1 -Coalesced [705] render_screen_original::cols#13 ← render_screen_original::cols#2 -Coalesced [706] render_screen_original::x#9 ← render_screen_original::x#2 -Coalesced (already) [707] render_screen_original::screen#14 ← render_screen_original::screen#2 -Coalesced (already) [708] render_screen_original::cols#11 ← render_screen_original::cols#1 -Coalesced [709] render_screen_original::x#7 ← render_screen_original::x#1 -Coalesced [733] irq_raster_next#24 ← irq_raster_next#2 -Coalesced [739] sprites_irq::raster_next#4 ← sprites_irq::raster_next#1 -Coalesced [744] sprites_irq::raster_next#5 ← sprites_irq::raster_next#0 -Coalesced [750] irq_raster_next#25 ← irq_raster_next#1 -Coalesced down to 86 phi equivalence classes +Coalesced [33] current_movedown_slow#77 ← current_movedown_slow#1 +Coalesced [35] current_piece_gfx#99 ← current_piece_gfx#16 +Coalesced [36] current_xpos#109 ← current_xpos#23 +Coalesced [37] current_ypos#83 ← current_ypos#18 +Coalesced [38] current_piece_char#87 ← current_piece_char#12 +Not coalescing [65] render_screen_render#65 ← render_screen_render#17 +Not coalescing [67] current_ypos#87 ← current_ypos#13 +Not coalescing [68] render_screen_render#64 ← render_screen_render#17 +Not coalescing [69] current_xpos#113 ← current_xpos#19 +Not coalescing [70] current_piece_gfx#103 ← current_piece_gfx#14 +Not coalescing [71] current_piece_char#91 ← current_piece_char#1 +Coalesced [77] render_screen_show#58 ← render_screen_show#13 +Coalesced [78] render_screen_render#63 ← render_screen_render#11 +Coalesced [79] current_movedown_slow#78 ← current_movedown_slow#17 +Coalesced [80] current_piece#74 ← current_piece#10 +Coalesced [81] current_orientation#77 ← current_orientation#19 +Coalesced [82] current_piece_gfx#100 ← current_piece_gfx#14 +Coalesced [83] current_xpos#110 ← current_xpos#19 +Coalesced [84] current_ypos#84 ← current_ypos#13 +Coalesced [85] current_piece_char#88 ← current_piece_char#1 +Coalesced [86] keyboard_events_size#80 ← keyboard_events_size#16 +Coalesced [87] current_movedown_counter#49 ← current_movedown_counter#10 +Coalesced [88] lines_bcd#80 ← lines_bcd#11 +Coalesced [89] score_bcd#76 ← score_bcd#10 +Coalesced [90] level#84 ← level#12 +Coalesced [91] level_bcd#91 ← level_bcd#13 +Coalesced (already) [92] current_movedown_slow#79 ← current_movedown_slow#17 +Coalesced (already) [93] current_piece#75 ← current_piece#10 +Coalesced (already) [94] current_orientation#78 ← current_orientation#19 +Coalesced (already) [95] current_piece_gfx#101 ← current_piece_gfx#14 +Coalesced (already) [96] current_xpos#111 ← current_xpos#19 +Coalesced (already) [97] current_ypos#85 ← current_ypos#13 +Coalesced (already) [98] current_piece_char#89 ← current_piece_char#1 +Coalesced (already) [99] keyboard_events_size#81 ← keyboard_events_size#16 +Coalesced (already) [100] current_movedown_counter#50 ← current_movedown_counter#10 +Coalesced (already) [101] lines_bcd#81 ← lines_bcd#11 +Coalesced (already) [102] score_bcd#77 ← score_bcd#10 +Coalesced (already) [103] level#85 ← level#12 +Coalesced (already) [104] level_bcd#92 ← level_bcd#13 +Coalesced [113] render_bcd::screen#7 ← render_bcd::screen#0 +Coalesced [114] render_bcd::bcd#9 ← render_bcd::bcd#0 +Coalesced [118] render_bcd::screen#8 ← render_bcd::screen#1 +Coalesced [119] render_bcd::bcd#10 ← render_bcd::bcd#1 +Coalesced [123] render_bcd::screen#9 ← render_bcd::screen#2 +Coalesced [124] render_bcd::bcd#11 ← render_bcd::bcd#2 +Coalesced [128] render_bcd::screen#10 ← render_bcd::screen#3 +Coalesced [129] render_bcd::bcd#12 ← render_bcd::bcd#3 +Coalesced [133] render_bcd::screen#11 ← render_bcd::screen#4 +Coalesced [134] render_bcd::bcd#13 ← render_bcd::bcd#4 +Coalesced [138] render_bcd::screen#12 ← render_bcd::screen#5 +Coalesced [139] render_bcd::bcd#14 ← render_bcd::bcd#5 +Coalesced [149] render_bcd::screen_pos#6 ← render_bcd::screen_pos#2 +Coalesced [156] render_bcd::screen_pos#5 ← render_bcd::screen_pos#0 +Coalesced [159] render_moving::ypos2#11 ← render_moving::ypos2#0 +Coalesced [163] render_moving::i#14 ← render_moving::i#1 +Coalesced [169] render_moving::ypos2#12 ← render_moving::ypos2#1 +Coalesced [170] render_moving::i#12 ← render_moving::i#8 +Coalesced [171] render_moving::l#11 ← render_moving::l#1 +Coalesced [176] render_moving::i#15 ← render_moving::i#3 +Coalesced [177] render_moving::xpos#7 ← render_moving::xpos#0 +Coalesced [187] render_moving::i#13 ← render_moving::i#10 +Coalesced (already) [188] render_moving::i#16 ← render_moving::i#10 +Coalesced [189] render_moving::xpos#8 ← render_moving::xpos#1 +Coalesced [190] render_moving::c#7 ← render_moving::c#1 +Coalesced [196] render_playfield::i#6 ← render_playfield::i#3 +Coalesced [197] render_playfield::screen_line#3 ← render_playfield::screen_line#0 +Coalesced [207] render_playfield::l#5 ← render_playfield::l#1 +Coalesced [208] render_playfield::i#5 ← render_playfield::i#1 +Coalesced (already) [209] render_playfield::i#7 ← render_playfield::i#1 +Coalesced [210] render_playfield::screen_line#4 ← render_playfield::screen_line#1 +Coalesced [211] render_playfield::c#3 ← render_playfield::c#1 +Coalesced [214] current_orientation#81 ← current_orientation#14 +Coalesced [215] current_piece_gfx#106 ← current_piece_gfx#1 +Coalesced [220] play_move_rotate::orientation#7 ← play_move_rotate::orientation#2 +Not coalescing [225] current_piece#79 ← current_piece#10 +Coalesced [226] play_collision::orientation#8 ← play_collision::orientation#3 +Coalesced [227] play_collision::ypos#8 ← play_collision::ypos#3 +Coalesced [228] play_collision::xpos#17 ← play_collision::xpos#3 +Coalesced [235] current_orientation#79 ← current_orientation#4 +Coalesced [236] current_piece_gfx#104 ← current_piece_gfx#3 +Coalesced (already) [237] current_orientation#80 ← current_orientation#14 +Coalesced (already) [238] current_piece_gfx#105 ← current_piece_gfx#1 +Coalesced [241] play_move_rotate::orientation#6 ← play_move_rotate::orientation#1 +Coalesced [245] play_collision::ypos2#11 ← play_collision::ypos2#0 +Coalesced [248] play_collision::i#12 ← play_collision::i#3 +Not coalescing [249] play_collision::col#9 ← play_collision::xpos#5 +Coalesced [266] play_collision::ypos2#12 ← play_collision::ypos2#1 +Not coalescing [267] play_collision::i#11 ← play_collision::i#1 +Coalesced [268] play_collision::l#11 ← play_collision::l#1 +Not coalescing [269] play_collision::i#13 ← play_collision::i#1 +Coalesced [270] play_collision::col#10 ← play_collision::col#1 +Coalesced [271] play_collision::c#9 ← play_collision::c#1 +Not coalescing [277] current_piece#78 ← current_piece#10 +Coalesced [278] play_collision::orientation#7 ← play_collision::orientation#2 +Coalesced [279] play_collision::ypos#7 ← play_collision::ypos#2 +Coalesced [280] play_collision::xpos#16 ← play_collision::xpos#2 +Coalesced [286] current_xpos#116 ← current_xpos#2 +Coalesced [289] current_xpos#115 ← current_xpos#1 +Coalesced (already) [290] current_xpos#118 ← current_xpos#1 +Not coalescing [294] current_piece#77 ← current_piece#10 +Coalesced [295] play_collision::orientation#6 ← play_collision::orientation#1 +Coalesced [296] play_collision::ypos#6 ← play_collision::ypos#1 +Coalesced [297] play_collision::xpos#15 ← play_collision::xpos#1 +Coalesced [303] current_xpos#114 ← current_xpos#4 +Coalesced (already) [304] current_xpos#117 ← current_xpos#1 +Coalesced [315] play_move_down::movedown#13 ← play_move_down::movedown#2 +Coalesced [319] play_move_down::movedown#16 ← play_move_down::movedown#3 +Not coalescing [325] current_piece#76 ← current_piece#16 +Coalesced [326] play_collision::orientation#5 ← play_collision::orientation#0 +Coalesced [327] play_collision::ypos#5 ← play_collision::ypos#0 +Coalesced [328] play_collision::xpos#14 ← play_collision::xpos#0 +Coalesced [343] current_ypos#88 ← current_ypos#18 +Coalesced [344] lines_bcd#82 ← lines_bcd#13 +Coalesced [345] score_bcd#78 ← score_bcd#12 +Coalesced [346] level#86 ← level#14 +Coalesced [347] current_movedown_slow#80 ← current_movedown_slow#19 +Coalesced [348] level_bcd#93 ← level_bcd#15 +Coalesced [350] current_piece_gfx#107 ← current_piece_gfx#16 +Coalesced [351] current_xpos#119 ← current_xpos#23 +Coalesced [352] current_piece_char#92 ← current_piece_char#12 +Coalesced (already) [354] current_ypos#91 ← current_ypos#29 +Coalesced [355] lines_bcd#85 ← lines_bcd#20 +Coalesced [356] score_bcd#81 ← score_bcd#20 +Coalesced [357] level#89 ← level#24 +Coalesced [358] current_movedown_slow#83 ← current_movedown_slow#30 +Coalesced [359] level_bcd#96 ← level_bcd#25 +Coalesced [360] current_piece#83 ← current_piece#20 +Coalesced [361] current_orientation#84 ← current_orientation#29 +Coalesced (already) [362] current_piece_gfx#110 ← current_piece_gfx#26 +Coalesced (already) [363] current_xpos#122 ← current_xpos#33 +Coalesced (already) [364] current_piece_char#95 ← current_piece_char#20 +Coalesced [368] current_ypos#89 ← current_ypos#0 +Coalesced (already) [369] lines_bcd#83 ← lines_bcd#15 +Coalesced (already) [370] score_bcd#79 ← score_bcd#14 +Coalesced (already) [371] level#87 ← level#19 +Coalesced (already) [372] current_movedown_slow#81 ← current_movedown_slow#12 +Coalesced (already) [373] level_bcd#94 ← level_bcd#20 +Coalesced (already) [374] current_piece#81 ← current_piece#16 +Coalesced (already) [375] current_orientation#82 ← current_orientation#10 +Coalesced (already) [376] current_piece_gfx#108 ← current_piece_gfx#20 +Coalesced (already) [377] current_xpos#120 ← current_xpos#10 +Coalesced (already) [378] current_piece_char#93 ← current_piece_char#15 +Coalesced [379] current_movedown_counter#51 ← current_movedown_counter#1 +Coalesced (already) [380] current_ypos#90 ← current_ypos#21 +Coalesced (already) [381] lines_bcd#84 ← lines_bcd#15 +Coalesced (already) [382] score_bcd#80 ← score_bcd#14 +Coalesced (already) [383] level#88 ← level#19 +Coalesced (already) [384] current_movedown_slow#82 ← current_movedown_slow#12 +Coalesced (already) [385] level_bcd#95 ← level_bcd#20 +Coalesced (already) [386] current_piece#82 ← current_piece#16 +Coalesced (already) [387] current_orientation#83 ← current_orientation#10 +Coalesced (already) [388] current_piece_gfx#109 ← current_piece_gfx#20 +Coalesced (already) [389] current_xpos#121 ← current_xpos#10 +Coalesced (already) [390] current_piece_char#94 ← current_piece_char#15 +Coalesced [391] play_move_down::movedown#17 ← play_move_down::movedown#7 +Coalesced [392] play_move_down::movedown#15 ← play_move_down::movedown#10 +Coalesced (already) [393] play_move_down::movedown#14 ← play_move_down::movedown#10 +Coalesced [408] play_spawn_current::piece_idx#4 ← play_spawn_current::piece_idx#1 +Coalesced [425] lines_bcd#88 ← lines_bcd#23 +Coalesced [426] score_bcd#84 ← score_bcd#23 +Coalesced [427] level#92 ← level#16 +Coalesced [428] current_movedown_slow#86 ← current_movedown_slow#20 +Coalesced [429] level_bcd#99 ← level_bcd#18 +Coalesced (already) [432] lines_bcd#87 ← lines_bcd#23 +Coalesced (already) [433] score_bcd#83 ← score_bcd#23 +Coalesced (already) [434] level#91 ← level#19 +Coalesced (already) [435] current_movedown_slow#85 ← current_movedown_slow#12 +Coalesced (already) [436] level_bcd#98 ← level_bcd#20 +Coalesced (already) [437] lines_bcd#86 ← lines_bcd#15 +Coalesced (already) [438] score_bcd#82 ← score_bcd#14 +Coalesced (already) [439] level#90 ← level#19 +Coalesced (already) [440] current_movedown_slow#84 ← current_movedown_slow#12 +Coalesced (already) [441] level_bcd#97 ← level_bcd#20 +Coalesced [445] current_movedown_slow#87 ← current_movedown_slow#8 +Coalesced [451] level_bcd#101 ← level_bcd#6 +Coalesced [454] level_bcd#100 ← level_bcd#17 +Coalesced [457] play_remove_lines::r#10 ← play_remove_lines::r#3 +Coalesced [458] play_remove_lines::w#14 ← play_remove_lines::w#12 +Coalesced [472] play_remove_lines::w#16 ← play_remove_lines::w#2 +Coalesced [473] play_remove_lines::removed#13 ← play_remove_lines::removed#1 +Coalesced [477] play_remove_lines::w#18 ← play_remove_lines::w#11 +Coalesced [483] play_remove_lines::w#19 ← play_remove_lines::w#3 +Coalesced [484] play_remove_lines::r#9 ← play_remove_lines::r#1 +Coalesced [485] play_remove_lines::w#13 ← play_remove_lines::w#11 +Coalesced [486] play_remove_lines::y#9 ← play_remove_lines::y#1 +Coalesced [487] play_remove_lines::removed#12 ← play_remove_lines::removed#7 +Coalesced [488] play_remove_lines::w#17 ← play_remove_lines::w#1 +Coalesced (already) [489] play_remove_lines::removed#14 ← play_remove_lines::removed#11 +Coalesced (already) [490] play_remove_lines::r#11 ← play_remove_lines::r#1 +Coalesced (already) [491] play_remove_lines::w#15 ← play_remove_lines::w#1 +Coalesced [492] play_remove_lines::x#5 ← play_remove_lines::x#1 +Coalesced [493] play_remove_lines::full#5 ← play_remove_lines::full#2 +Coalesced (already) [494] play_remove_lines::full#6 ← play_remove_lines::full#4 +Coalesced [496] play_lock_current::ypos2#7 ← play_lock_current::ypos2#0 +Coalesced [500] play_lock_current::i#8 ← play_lock_current::i#3 +Coalesced [501] play_lock_current::col#5 ← play_lock_current::col#0 +Coalesced [513] play_lock_current::ypos2#8 ← play_lock_current::ypos2#1 +Not coalescing [514] play_lock_current::i#7 ← play_lock_current::i#1 +Coalesced [515] play_lock_current::l#7 ← play_lock_current::l#1 +Not coalescing [516] play_lock_current::i#9 ← play_lock_current::i#1 +Coalesced [517] play_lock_current::col#6 ← play_lock_current::col#1 +Coalesced [518] play_lock_current::c#5 ← play_lock_current::c#1 +Coalesced [528] keyboard_event_get::return#6 ← keyboard_event_get::return#1 +Coalesced [529] keyboard_events_size#83 ← keyboard_events_size#4 +Coalesced [532] keyboard_events_size#82 ← keyboard_events_size#13 +Coalesced [533] keyboard_events_size#84 ← keyboard_events_size#19 +Coalesced [541] keyboard_event_scan::keycode#17 ← keyboard_event_scan::keycode#1 +Coalesced (already) [542] keyboard_events_size#86 ← keyboard_events_size#29 +Coalesced [558] keyboard_modifiers#61 ← keyboard_modifiers#3 +Coalesced [565] keyboard_modifiers#63 ← keyboard_modifiers#4 +Coalesced [573] keyboard_modifiers#64 ← keyboard_modifiers#12 +Coalesced [574] keyboard_modifiers#62 ← keyboard_modifiers#11 +Coalesced [575] keyboard_event_scan::row#15 ← keyboard_event_scan::row#1 +Coalesced [576] keyboard_event_scan::keycode#16 ← keyboard_event_scan::keycode#14 +Coalesced (already) [577] keyboard_events_size#85 ← keyboard_events_size#13 +Coalesced [578] keyboard_event_scan::keycode#19 ← keyboard_event_scan::keycode#11 +Coalesced [579] keyboard_events_size#88 ← keyboard_events_size#29 +Coalesced [589] keyboard_events_size#90 ← keyboard_events_size#2 +Coalesced [595] keyboard_event_scan::keycode#18 ← keyboard_event_scan::keycode#15 +Coalesced [596] keyboard_events_size#87 ← keyboard_events_size#30 +Coalesced [597] keyboard_event_scan::col#9 ← keyboard_event_scan::col#1 +Coalesced (already) [598] keyboard_event_scan::keycode#20 ← keyboard_event_scan::keycode#15 +Coalesced (already) [599] keyboard_events_size#89 ← keyboard_events_size#30 +Coalesced [603] keyboard_events_size#93 ← keyboard_events_size#1 +Coalesced (already) [604] keyboard_events_size#92 ← keyboard_events_size#10 +Coalesced (already) [605] keyboard_events_size#91 ← keyboard_events_size#10 +Coalesced [628] play_init::j#3 ← play_init::j#1 +Coalesced [629] play_init::pli#3 ← play_init::pli#1 +Coalesced [630] play_init::idx#3 ← play_init::idx#1 +Coalesced [655] sprites_init::s#3 ← sprites_init::s#1 +Coalesced [656] sprites_init::xpos#3 ← sprites_init::xpos#1 +Coalesced [680] render_init::i#3 ← render_init::i#1 +Coalesced [681] render_init::li_1#3 ← render_init::li_1#1 +Coalesced [682] render_init::li_2#3 ← render_init::li_2#1 +Coalesced [684] render_screen_original::screen#11 ← render_screen_original::screen#9 +Coalesced [686] render_screen_original::screen#13 ← render_screen_original::screen#8 +Coalesced [687] render_screen_original::cols#10 ← render_screen_original::cols#7 +Coalesced [695] render_screen_original::oscr#8 ← render_screen_original::oscr#4 +Coalesced [696] render_screen_original::screen#15 ← render_screen_original::screen#2 +Coalesced [697] render_screen_original::ocols#8 ← render_screen_original::ocols#4 +Coalesced [698] render_screen_original::cols#12 ← render_screen_original::cols#1 +Coalesced [699] render_screen_original::x#8 ← render_screen_original::x#1 +Coalesced [709] render_screen_original::screen#17 ← render_screen_original::screen#3 +Coalesced [710] render_screen_original::cols#14 ← render_screen_original::cols#2 +Coalesced [711] render_screen_original::x#10 ← render_screen_original::x#2 +Coalesced [722] render_screen_original::screen#12 ← render_screen_original::screen#10 +Coalesced [723] render_screen_original::cols#9 ← render_screen_original::cols#3 +Coalesced [724] render_screen_original::oscr#7 ← render_screen_original::oscr#1 +Coalesced [725] render_screen_original::ocols#7 ← render_screen_original::ocols#1 +Coalesced [726] render_screen_original::y#7 ← render_screen_original::y#1 +Coalesced [727] render_screen_original::screen#18 ← render_screen_original::screen#10 +Coalesced [728] render_screen_original::cols#15 ← render_screen_original::cols#3 +Coalesced [729] render_screen_original::x#11 ← render_screen_original::x#3 +Coalesced (already) [730] render_screen_original::oscr#9 ← render_screen_original::oscr#1 +Coalesced [731] render_screen_original::screen#16 ← render_screen_original::screen#3 +Coalesced (already) [732] render_screen_original::ocols#9 ← render_screen_original::ocols#1 +Coalesced [733] render_screen_original::cols#13 ← render_screen_original::cols#2 +Coalesced [734] render_screen_original::x#9 ← render_screen_original::x#2 +Coalesced (already) [735] render_screen_original::screen#14 ← render_screen_original::screen#2 +Coalesced (already) [736] render_screen_original::cols#11 ← render_screen_original::cols#1 +Coalesced [737] render_screen_original::x#7 ← render_screen_original::x#1 +Coalesced [761] irq_raster_next#24 ← irq_raster_next#2 +Coalesced [767] sprites_irq::raster_next#4 ← sprites_irq::raster_next#1 +Coalesced [772] sprites_irq::raster_next#5 ← sprites_irq::raster_next#0 +Coalesced [778] irq_raster_next#25 ← irq_raster_next#1 +Coalesced down to 88 phi equivalence classes Culled Empty Block (label) main::@33 Culled Empty Block (label) render_bcd::@3 -Culled Empty Block (label) render_current::@14 -Culled Empty Block (label) render_current::@15 -Culled Empty Block (label) render_current::@16 +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_playfield::@5 Culled Empty Block (label) render_playfield::@6 Culled Empty Block (label) play_move_rotate::@16 @@ -7987,9 +8450,9 @@ Culled Empty Block (label) play_move_down::@26 Culled Empty Block (label) play_move_down::@25 Culled Empty Block (label) play_move_down::@24 Culled Empty Block (label) play_move_down::@23 -Culled Empty Block (label) play_update_score::@9 -Culled Empty Block (label) play_update_score::@8 Culled Empty Block (label) play_update_score::@7 +Culled Empty Block (label) play_update_score::@6 +Culled Empty Block (label) play_increase_level::@7 Culled Empty Block (label) play_remove_lines::@8 Culled Empty Block (label) play_remove_lines::@20 Culled Empty Block (label) play_remove_lines::@16 @@ -8015,7 +8478,7 @@ Culled Empty Block (label) render_screen_original::@10 Culled Empty Block (label) sprites_irq::@14 Adding NOP phi() at start of @begin Adding NOP phi() at start of toSpritePtr1 -Adding NOP phi() at start of @35 +Adding NOP phi() at start of @36 Adding NOP phi() at start of @end Adding NOP phi() at start of main Adding NOP phi() at start of main::@16 @@ -8035,6 +8498,7 @@ Adding NOP phi() at start of play_move_down::@19 Adding NOP phi() at start of play_move_down::@21 Adding NOP phi() at start of play_spawn_current Adding NOP phi() at start of play_spawn_current::@2 +Adding NOP phi() at start of play_update_score::@4 Adding NOP phi() at start of play_remove_lines Adding NOP phi() at start of play_remove_lines::@18 Adding NOP phi() at start of keyboard_event_scan @@ -8089,18 +8553,18 @@ FINAL CONTROL FLOW GRAPH to:toSpritePtr1 toSpritePtr1: scope:[] from @23 [8] phi() - to:@36 -@36: scope:[] from toSpritePtr1 + to:@37 +@37: scope:[] from toSpritePtr1 [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 [10] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - to:@35 -@35: scope:[] from @36 + to:@36 +@36: scope:[] from @37 [11] phi() [12] call main to:@end -@end: scope:[] from @35 +@end: scope:[] from @36 [13] phi() -main: scope:[main] from @35 +main: scope:[main] from @36 [14] phi() [15] call sid_rnd_init to:main::@15 @@ -8133,11 +8597,12 @@ main::@21: scope:[main] from main::@20 [29] (byte~) current_xpos#112 ← (byte) current_xpos#23 [30] (byte*~) current_piece_gfx#102 ← (byte*) current_piece_gfx#16 [31] (byte~) current_piece_char#90 ← (byte) current_piece_char#12 - [32] call render_current + [32] call render_moving [33] (byte*~) current_piece#73 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) to:main::@1 main::@1: scope:[main] from main::@21 main::@28 main::@31 - [34] (byte) level_bcd#16 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 1 main::@31/(byte) level_bcd#11 main::@28/(byte) level_bcd#11 ) + [34] (byte) level_bcd#20 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@31/(byte) level_bcd#13 main::@28/(byte) level_bcd#13 ) + [34] (byte) level#19 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@31/(byte) level#12 main::@28/(byte) level#12 ) [34] (dword) score_bcd#14 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@31/(dword) score_bcd#10 main::@28/(dword) score_bcd#10 ) [34] (word) lines_bcd#15 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@31/(word) lines_bcd#11 main::@28/(word) lines_bcd#11 ) [34] (byte) current_movedown_counter#12 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@31/(byte) current_movedown_counter#10 main::@28/(byte) current_movedown_counter#10 ) @@ -8148,6 +8613,7 @@ main::@1: scope:[main] from main::@21 main::@28 main::@31 [34] (byte*) current_piece_gfx#20 ← phi( main::@21/(byte*) current_piece_gfx#16 main::@31/(byte*) current_piece_gfx#14 main::@28/(byte*) current_piece_gfx#14 ) [34] (byte) current_orientation#10 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@31/(byte) current_orientation#19 main::@28/(byte) current_orientation#19 ) [34] (byte*) current_piece#16 ← phi( main::@21/(byte*~) current_piece#73 main::@31/(byte*) current_piece#10 main::@28/(byte*) current_piece#10 ) + [34] (byte) current_movedown_slow#12 ← phi( main::@21/(byte) current_movedown_slow#1 main::@31/(byte) current_movedown_slow#17 main::@28/(byte) current_movedown_slow#17 ) [34] (byte) render_screen_render#17 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@31/(byte) render_screen_render#11 ) [34] (byte) render_screen_show#16 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@31/(byte) render_screen_show#13 ) to:main::@4 @@ -8202,7 +8668,7 @@ main::@29: scope:[main] from main::@13 [64] (byte~) current_xpos#113 ← (byte) current_xpos#19 [65] (byte*~) current_piece_gfx#103 ← (byte*) current_piece_gfx#14 [66] (byte~) current_piece_char#91 ← (byte) current_piece_char#1 - [67] call render_current + [67] call render_moving to:main::@30 main::@30: scope:[main] from main::@29 [68] phi() @@ -8253,7 +8719,7 @@ render_score::@8: scope:[render_score] from render_score::@7 to:render_score::@9 render_score::@9: scope:[render_score] from render_score::@8 [93] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#2 - [94] (byte) render_bcd::bcd#5 ← (byte) level_bcd#11 + [94] (byte) render_bcd::bcd#5 ← (byte) level_bcd#13 [95] call render_bcd to:render_score::@return render_score::@return: scope:[render_score] from render_score::@9 @@ -8283,59 +8749,59 @@ render_bcd::@1: scope:[render_bcd] from render_bcd render_bcd::@2 render_bcd::@return: scope:[render_bcd] from render_bcd::@1 [109] return to:@return -render_current: scope:[render_current] from main::@21 main::@29 +render_moving: scope:[render_moving] from main::@21 main::@29 [110] (byte) current_piece_char#64 ← phi( main::@21/(byte~) current_piece_char#90 main::@29/(byte~) current_piece_char#91 ) [110] (byte*) current_piece_gfx#53 ← phi( main::@21/(byte*~) current_piece_gfx#102 main::@29/(byte*~) current_piece_gfx#103 ) [110] (byte) current_xpos#47 ← phi( main::@21/(byte~) current_xpos#112 main::@29/(byte~) current_xpos#113 ) [110] (byte) render_screen_render#30 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@29/(byte~) render_screen_render#64 ) [110] (byte) current_ypos#9 ← phi( main::@21/(byte~) current_ypos#86 main::@29/(byte~) current_ypos#87 ) - [111] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 - to:render_current::@1 -render_current::@1: scope:[render_current] from render_current render_current::@3 - [112] (byte) render_current::l#4 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@3/(byte) render_current::l#1 ) - [112] (byte) render_current::i#3 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@3/(byte) render_current::i#8 ) - [112] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@3/(byte) render_current::ypos2#1 ) - [113] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 - to:render_current::@7 -render_current::@7: scope:[render_current] from render_current::@1 render_current::@13 - [114] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 - to:render_current::@3 -render_current::@3: scope:[render_current] from render_current::@5 render_current::@7 - [115] (byte) render_current::i#8 ← phi( render_current::@5/(byte) render_current::i#10 render_current::@7/(byte) render_current::i#1 ) - [116] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [117] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 - [118] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 - to:render_current::@return -render_current::@return: scope:[render_current] from render_current::@3 + [111] (byte) render_moving::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 + to:render_moving::@1 +render_moving::@1: scope:[render_moving] from render_moving render_moving::@3 + [112] (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 ) + [112] (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 ) + [112] (byte) render_moving::ypos2#2 ← phi( render_moving/(byte) render_moving::ypos2#0 render_moving::@3/(byte) render_moving::ypos2#1 ) + [113] 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 + [114] (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 + [115] (byte) render_moving::i#8 ← phi( render_moving::@5/(byte) render_moving::i#10 render_moving::@7/(byte) render_moving::i#1 ) + [116] (byte) render_moving::ypos2#1 ← (byte) render_moving::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [117] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 + [118] if((byte) render_moving::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@1 + to:render_moving::@return +render_moving::@return: scope:[render_moving] from render_moving::@3 [119] return to:@return -render_current::@13: scope:[render_current] from render_current::@1 - [120] if((byte) render_current::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 - to:render_current::@7 -render_current::@2: scope:[render_current] from render_current::@13 - [121] (byte~) render_current::$5 ← (byte) render_screen_render#30 + (byte) render_current::ypos2#2 - [122] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) - [123] (byte) render_current::xpos#0 ← (byte) current_xpos#47 - to:render_current::@4 -render_current::@4: scope:[render_current] from render_current::@2 render_current::@5 - [124] (byte) render_current::c#2 ← phi( render_current::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@5/(byte) render_current::c#1 ) - [124] (byte) render_current::xpos#2 ← phi( render_current::@2/(byte) render_current::xpos#0 render_current::@5/(byte) render_current::xpos#1 ) - [124] (byte) render_current::i#4 ← phi( render_current::@2/(byte) render_current::i#3 render_current::@5/(byte) render_current::i#10 ) - [125] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) - [126] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 - [127] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 - to:render_current::@9 -render_current::@9: scope:[render_current] from render_current::@4 - [128] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 - to:render_current::@10 -render_current::@10: scope:[render_current] from render_current::@9 - [129] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#64 - to:render_current::@5 -render_current::@5: scope:[render_current] from render_current::@10 render_current::@4 render_current::@9 - [130] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 - [131] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 - [132] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@4 - to:render_current::@3 +render_moving::@13: scope:[render_moving] from render_moving::@1 + [120] 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 + [121] (byte~) render_moving::$5 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 + [122] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$5) + [123] (byte) render_moving::xpos#0 ← (byte) current_xpos#47 + to:render_moving::@4 +render_moving::@4: scope:[render_moving] from render_moving::@2 render_moving::@5 + [124] (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 ) + [124] (byte) render_moving::xpos#2 ← phi( render_moving::@2/(byte) render_moving::xpos#0 render_moving::@5/(byte) render_moving::xpos#1 ) + [124] (byte) render_moving::i#4 ← phi( render_moving::@2/(byte) render_moving::i#3 render_moving::@5/(byte) render_moving::i#10 ) + [125] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_moving::i#4) + [126] (byte) render_moving::i#10 ← ++ (byte) render_moving::i#4 + [127] 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 + [128] 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 + [129] *((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 + [130] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 + [131] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 + [132] 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::@13 main::@20 [133] (byte) render_screen_render#21 ← phi( main::@13/(byte~) render_screen_render#65 main::@20/(byte/signed byte/word/signed word/dword/signed dword) 64 ) to:render_playfield::@1 @@ -8520,7 +8986,7 @@ play_move_down::@10: scope:[play_move_down] from play_move_down::@9 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 [222] (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 ) - [223] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 + [223] if((byte) current_movedown_counter#1<(byte) current_movedown_slow#12) goto play_move_down::@4 to:play_move_down::@11 play_move_down::@11: scope:[play_move_down] from play_move_down::@2 [224] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 @@ -8566,7 +9032,9 @@ play_move_down::@7: scope:[play_move_down] from play_move_down::@21 play_move_d [246] (byte*) current_piece_gfx#26 ← phi( play_move_down::@21/(byte*) current_piece_gfx#16 play_move_down::@6/(byte*) current_piece_gfx#20 ) [246] (byte) current_orientation#29 ← phi( play_move_down::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#10 ) [246] (byte*) current_piece#20 ← phi( play_move_down::@21/(byte*~) current_piece#80 play_move_down::@6/(byte*) current_piece#16 ) - [246] (byte) level_bcd#21 ← phi( play_move_down::@21/(byte) level_bcd#14 play_move_down::@6/(byte) level_bcd#16 ) + [246] (byte) level_bcd#25 ← phi( play_move_down::@21/(byte) level_bcd#15 play_move_down::@6/(byte) level_bcd#20 ) + [246] (byte) current_movedown_slow#30 ← phi( play_move_down::@21/(byte) current_movedown_slow#19 play_move_down::@6/(byte) current_movedown_slow#12 ) + [246] (byte) level#24 ← phi( play_move_down::@21/(byte) level#14 play_move_down::@6/(byte) level#19 ) [246] (dword) score_bcd#20 ← phi( play_move_down::@21/(dword) score_bcd#12 play_move_down::@6/(dword) score_bcd#14 ) [246] (word) lines_bcd#20 ← phi( play_move_down::@21/(word) lines_bcd#13 play_move_down::@6/(word) lines_bcd#15 ) [246] (byte) current_ypos#29 ← phi( play_move_down::@21/(byte) current_ypos#18 play_move_down::@6/(byte) current_ypos#0 ) @@ -8577,7 +9045,9 @@ play_move_down::@return: scope:[play_move_down] from play_move_down::@4 play_mo [247] (byte*) current_piece_gfx#1 ← phi( play_move_down::@4/(byte*) current_piece_gfx#20 play_move_down::@7/(byte*) current_piece_gfx#26 ) [247] (byte) current_orientation#14 ← phi( play_move_down::@4/(byte) current_orientation#10 play_move_down::@7/(byte) current_orientation#29 ) [247] (byte*) current_piece#10 ← phi( play_move_down::@4/(byte*) current_piece#16 play_move_down::@7/(byte*) current_piece#20 ) - [247] (byte) level_bcd#11 ← phi( play_move_down::@4/(byte) level_bcd#16 play_move_down::@7/(byte) level_bcd#21 ) + [247] (byte) level_bcd#13 ← phi( play_move_down::@4/(byte) level_bcd#20 play_move_down::@7/(byte) level_bcd#25 ) + [247] (byte) current_movedown_slow#17 ← phi( play_move_down::@4/(byte) current_movedown_slow#12 play_move_down::@7/(byte) current_movedown_slow#30 ) + [247] (byte) level#12 ← phi( play_move_down::@4/(byte) level#19 play_move_down::@7/(byte) level#24 ) [247] (dword) score_bcd#10 ← phi( play_move_down::@4/(dword) score_bcd#14 play_move_down::@7/(dword) score_bcd#20 ) [247] (word) lines_bcd#11 ← phi( play_move_down::@4/(word) lines_bcd#15 play_move_down::@7/(word) lines_bcd#20 ) [247] (byte) current_ypos#13 ← phi( play_move_down::@4/(byte) current_ypos#21 play_move_down::@7/(byte) current_ypos#29 ) @@ -8622,8 +9092,8 @@ sid_rnd::@return: scope:[sid_rnd] from sid_rnd to:@return play_update_score: scope:[play_update_score] from play_move_down::@20 [266] 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::@4 -play_update_score::@4: scope:[play_update_score] from play_update_score + to:play_update_score::@3 +play_update_score::@3: scope:[play_update_score] from play_update_score [267] (byte~) play_update_score::$2 ← < (word) lines_bcd#15 [268] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 [269] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -8635,491 +9105,510 @@ play_update_score::@4: scope:[play_update_score] from play_update_score [275] (byte~) play_update_score::$5 ← < (word) lines_bcd#23 [276] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 [277] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return - to:play_update_score::@5 -play_update_score::@5: scope:[play_update_score] from play_update_score::@4 - [278] (byte) level_bcd#13 ← ++ (byte) level_bcd#16 - [279] (byte~) play_update_score::$9 ← (byte) level_bcd#13 & (byte/signed byte/word/signed word/dword/signed dword) 15 - [280] if((byte~) play_update_score::$9!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_update_score::@return - to:play_update_score::@6 -play_update_score::@6: scope:[play_update_score] from play_update_score::@5 - [281] (byte) level_bcd#4 ← (byte) level_bcd#13 + (byte/signed byte/word/signed word/dword/signed dword) 6 + to:play_update_score::@4 +play_update_score::@4: scope:[play_update_score] from play_update_score::@3 + [278] phi() + [279] call play_increase_level to:play_update_score::@return -play_update_score::@return: scope:[play_update_score] from play_update_score play_update_score::@4 play_update_score::@5 play_update_score::@6 - [282] (byte) level_bcd#14 ← phi( play_update_score/(byte) level_bcd#16 play_update_score::@4/(byte) level_bcd#16 play_update_score::@5/(byte) level_bcd#13 play_update_score::@6/(byte) level_bcd#4 ) - [282] (dword) score_bcd#12 ← phi( play_update_score/(dword) score_bcd#14 play_update_score::@4/(dword) score_bcd#23 play_update_score::@5/(dword) score_bcd#23 play_update_score::@6/(dword) score_bcd#23 ) - [282] (word) lines_bcd#13 ← phi( play_update_score/(word) lines_bcd#15 play_update_score::@4/(word) lines_bcd#23 play_update_score::@5/(word) lines_bcd#23 play_update_score::@6/(word) lines_bcd#23 ) - [283] return +play_update_score::@return: scope:[play_update_score] from play_update_score play_update_score::@3 play_update_score::@4 + [280] (byte) level_bcd#15 ← phi( play_update_score/(byte) level_bcd#20 play_update_score::@3/(byte) level_bcd#20 play_update_score::@4/(byte) level_bcd#18 ) + [280] (byte) current_movedown_slow#19 ← phi( play_update_score/(byte) current_movedown_slow#12 play_update_score::@3/(byte) current_movedown_slow#12 play_update_score::@4/(byte) current_movedown_slow#20 ) + [280] (byte) level#14 ← phi( play_update_score/(byte) level#19 play_update_score::@3/(byte) level#19 play_update_score::@4/(byte) level#16 ) + [280] (dword) score_bcd#12 ← phi( play_update_score/(dword) score_bcd#14 play_update_score::@3/(dword) score_bcd#23 play_update_score::@4/(dword) score_bcd#23 ) + [280] (word) lines_bcd#13 ← phi( play_update_score/(word) lines_bcd#15 play_update_score::@3/(word) lines_bcd#23 play_update_score::@4/(word) lines_bcd#23 ) + [281] return + to:@return +play_increase_level: scope:[play_increase_level] from play_update_score::@4 + [282] (byte) level#16 ← ++ (byte) level#19 + [283] if((byte) level#16>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 + to:play_increase_level::@4 +play_increase_level::@4: scope:[play_increase_level] from play_increase_level + [284] (byte) current_movedown_slow#8 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#16) + to:play_increase_level::@2 +play_increase_level::@2: scope:[play_increase_level] from play_increase_level play_increase_level::@4 + [285] (byte) current_movedown_slow#20 ← phi( play_increase_level/(byte/signed byte/word/signed word/dword/signed dword) 1 play_increase_level::@4/(byte) current_movedown_slow#8 ) + [286] (byte) level_bcd#17 ← ++ (byte) level_bcd#20 + [287] (byte~) play_increase_level::$1 ← (byte) level_bcd#17 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [288] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@return + to:play_increase_level::@6 +play_increase_level::@6: scope:[play_increase_level] from play_increase_level::@2 + [289] (byte) level_bcd#6 ← (byte) level_bcd#17 + (byte/signed byte/word/signed word/dword/signed dword) 6 + to:play_increase_level::@return +play_increase_level::@return: scope:[play_increase_level] from play_increase_level::@2 play_increase_level::@6 + [290] (byte) level_bcd#18 ← phi( play_increase_level::@2/(byte) level_bcd#17 play_increase_level::@6/(byte) level_bcd#6 ) + [291] return to:@return play_remove_lines: scope:[play_remove_lines] from play_move_down::@19 - [284] phi() + [292] phi() to:play_remove_lines::@1 play_remove_lines::@1: scope:[play_remove_lines] from play_remove_lines play_remove_lines::@4 - [285] (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 ) - [285] (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 ) - [285] (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 ) - [285] (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 ) + [293] (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 ) + [293] (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 ) + [293] (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 ) + [293] (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 - [286] (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 ) - [286] (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 ) - [286] (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 ) - [286] (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 ) - [287] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) - [288] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 - [289] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@18 + [294] (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 ) + [294] (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 ) + [294] (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 ) + [294] (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 ) + [295] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) + [296] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 + [297] 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 - [290] (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 ) - [291] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 - [292] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 - [293] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 - [294] 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 + [298] (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 ) + [299] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 + [300] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 + [301] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 + [302] 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 - [295] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 + [303] 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 - [296] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 - [297] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 + [304] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 + [305] (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 - [298] (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 ) - [298] (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 ) - [299] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 - [300] 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 + [306] (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 ) + [306] (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 ) + [307] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 + [308] 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 - [301] (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 ) - [302] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 + [309] (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 ) + [310] 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 - [303] return + [311] return to:@return play_remove_lines::@6: scope:[play_remove_lines] from play_remove_lines::@5 - [304] *((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 - [305] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 + [312] *((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 + [313] (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 - [306] phi() + [314] phi() to:play_remove_lines::@3 play_lock_current: scope:[play_lock_current] from play_move_down::@13 - [307] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [315] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_lock_current::@1 play_lock_current::@1: scope:[play_lock_current] from play_lock_current play_lock_current::@7 - [308] (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 ) - [308] (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 ) - [308] (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 ) - [309] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) - [310] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 + [316] (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 ) + [316] (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 ) + [316] (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 ) + [317] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) + [318] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 to:play_lock_current::@2 play_lock_current::@2: scope:[play_lock_current] from play_lock_current::@1 play_lock_current::@8 - [311] (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 ) - [311] (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 ) - [311] (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 ) - [312] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 - [313] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 + [319] (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 ) + [319] (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 ) + [319] (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 ) + [320] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 + [321] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 to:play_lock_current::@4 play_lock_current::@4: scope:[play_lock_current] from play_lock_current::@2 - [314] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 + [322] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 to:play_lock_current::@3 play_lock_current::@3: scope:[play_lock_current] from play_lock_current::@2 play_lock_current::@4 - [315] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 - [316] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 - [317] if((byte) play_lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@8 + [323] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 + [324] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 + [325] 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 - [318] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [319] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 - [320] if((byte) play_lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@7 + [326] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [327] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 + [328] 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 - [321] return - to:@return -play_lock_current::@7: scope:[play_lock_current] from play_lock_current::@5 - [322] (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 - [323] (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 - [324] (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 ) - [325] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 - [326] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) - [327] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 - [328] (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 [329] return to:@return +play_lock_current::@7: scope:[play_lock_current] from play_lock_current::@5 + [330] (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 + [331] (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 + [332] (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 ) + [333] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 + [334] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) + [335] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [336] (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 + [337] return + to:@return keyboard_event_get: scope:[keyboard_event_get] from main::@24 - [330] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return + [338] 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 - [331] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 - [332] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) + [339] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 + [340] (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 - [333] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) - [333] (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 ) - [334] return + [341] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) + [341] (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 ) + [342] return to:@return keyboard_event_scan: scope:[keyboard_event_scan] from main::@23 - [335] phi() + [343] phi() to:keyboard_event_scan::@1 keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@3 - [336] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) - [336] (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 ) - [336] (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 ) - [337] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 - [338] call keyboard_matrix_read - [339] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + [344] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) + [344] (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 ) + [344] (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 ) + [345] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 + [346] call keyboard_matrix_read + [347] (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 - [340] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 - [341] 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 + [348] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 + [349] 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 - [342] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 + [350] (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 - [343] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) - [343] (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 ) - [344] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 - [345] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 + [351] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) + [351] (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 ) + [352] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 + [353] 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 - [346] phi() - [347] call keyboard_event_pressed - [348] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + [354] phi() + [355] call keyboard_event_pressed + [356] (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 - [349] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 - [350] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 + [357] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + [358] 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 - [351] phi() + [359] phi() to:keyboard_event_scan::@9 keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@21 keyboard_event_scan::@26 - [352] (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 ) - [353] call keyboard_event_pressed - [354] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + [360] (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 ) + [361] call keyboard_event_pressed + [362] (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 - [355] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 - [356] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 + [363] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + [364] 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 - [357] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 + [365] (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 - [358] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) - [359] call keyboard_event_pressed - [360] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + [366] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) + [367] call keyboard_event_pressed + [368] (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 - [361] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 - [362] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 + [369] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + [370] 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 - [363] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 + [371] (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 - [364] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) - [365] call keyboard_event_pressed - [366] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + [372] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) + [373] call keyboard_event_pressed + [374] (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 - [367] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 - [368] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return + [375] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + [376] 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 - [369] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 + [377] (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 - [370] return + [378] return to:@return keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@25 keyboard_event_scan::@5 - [371] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) - [371] (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 ) - [371] (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 ) - [372] (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) - [373] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) - [374] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 + [379] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) + [379] (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 ) + [379] (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 ) + [380] (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) + [381] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) + [382] 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 - [375] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 + [383] 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 - [376] (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) - [377] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 + [384] (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) + [385] 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 - [378] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 - [379] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 + [386] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 + [387] (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 - [380] (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 ) - [381] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 - [382] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 - [383] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 + [388] (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 ) + [389] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 + [390] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 + [391] 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 - [384] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 + [392] *((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 - [385] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 - [386] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 - [387] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 + [393] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 + [394] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 + [395] (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 - [388] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) - [389] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) + [396] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) + [397] (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 - [390] return + [398] return to:@return render_show: scope:[render_show] from main::@6 - [391] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 + [399] 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 - [392] phi() + [400] phi() to:render_show::@2 render_show::@2: scope:[render_show] from render_show::toD0181 render_show::toD0182 - [393] (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 ) - [394] *((const byte*) D018#0) ← (byte) render_show::d018val#3 - [395] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 + [401] (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 ) + [402] *((const byte*) D018#0) ← (byte) render_show::d018val#3 + [403] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 to:render_show::@return render_show::@return: scope:[render_show] from render_show::@2 - [396] return + [404] return to:@return render_show::toD0181: scope:[render_show] from render_show - [397] phi() + [405] phi() to:render_show::@2 play_init: scope:[play_init] from main::@18 - [398] phi() + [406] phi() to:play_init::@1 play_init::@1: scope:[play_init] from play_init play_init::@1 - [399] (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 ) - [399] (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 ) - [399] (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 ) - [400] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [401] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 - [402] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 - [403] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 - [404] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 - [405] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 - [406] 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 + [407] (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 ) + [407] (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 ) + [407] (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 ) + [408] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [409] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 + [410] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 + [411] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 + [412] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 + [413] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 + [414] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_init::@1 to:play_init::@2 play_init::@2: scope:[play_init] from play_init::@1 - [407] *((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 + [415] *((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 + [416] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0) to:play_init::@return play_init::@return: scope:[play_init] from play_init::@2 - [408] return + [417] return to:@return sprites_irq_init: scope:[sprites_irq_init] from main::@17 asm { sei } - [410] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 + [419] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 asm { ldaCIA1_INTERRUPT } - [412] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 - [413] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 - [414] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [415] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 - [416] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 - [417] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 - [418] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() + [421] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 + [422] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 + [423] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 + [424] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 + [425] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 + [426] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 + [427] *((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 - [420] return + [429] return to:@return sprites_init: scope:[sprites_init] from main::@16 - [421] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 - [422] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [423] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) - [424] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) + [430] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + [431] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [432] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) + [433] *((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 - [425] (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 ) - [425] (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 ) - [426] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [427] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 - [428] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 - [429] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 - [430] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 - [431] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 + [434] (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 ) + [434] (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 ) + [435] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [436] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 + [437] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 + [438] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 + [439] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 + [440] 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 - [432] return + [441] return to:@return render_init: scope:[render_init] from main::@15 - [433] phi() + [442] phi() to:render_init::vicSelectGfxBank1 render_init::vicSelectGfxBank1: scope:[render_init] from render_init - [434] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [443] *((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 - [435] phi() + [444] phi() to:render_init::vicSelectGfxBank1_@1 render_init::vicSelectGfxBank1_@1: scope:[render_init] from render_init::vicSelectGfxBank1_toDd001 - [436] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 + [445] *((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 - [437] *((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 - [438] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 - [439] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 - [440] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 - [441] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 - [442] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 - [443] call render_screen_original + [446] *((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 + [447] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 + [448] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 + [449] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 + [450] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 + [451] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 + [452] call render_screen_original to:render_init::@4 render_init::@4: scope:[render_init] from render_init::@3 - [444] phi() - [445] call render_screen_original + [453] phi() + [454] call render_screen_original to:render_init::@1 render_init::@1: scope:[render_init] from render_init::@1 render_init::@4 - [446] (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 ) - [446] (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 ) - [446] (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 ) - [447] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [448] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 - [449] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [450] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 - [451] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [452] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [453] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 - [454] 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 + [455] (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 ) + [455] (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 ) + [455] (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 ) + [456] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [457] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 + [458] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [459] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 + [460] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [461] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [462] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 + [463] 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 - [455] return + [464] return to:@return render_screen_original: scope:[render_screen_original] from render_init::@3 render_init::@4 - [456] (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 ) + [465] (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 - [457] (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 ) - [457] (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 ) - [457] (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 ) - [457] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS#0 render_screen_original::@7/(byte*) render_screen_original::cols#3 ) - [457] (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 ) + [466] (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 ) + [466] (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 ) + [466] (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 ) + [466] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS#0 render_screen_original::@7/(byte*) render_screen_original::cols#3 ) + [466] (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 - [458] (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 ) - [458] (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 ) - [458] (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 ) - [459] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 - [460] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 - [461] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 - [462] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 - [463] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 - [464] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 + [467] (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 ) + [467] (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 ) + [467] (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 ) + [468] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 + [469] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 + [470] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 + [471] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 + [472] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 + [473] 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 - [465] (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 ) - [465] (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 ) - [465] (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 ) - [465] (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 ) - [465] (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 ) - [466] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) - [467] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 - [468] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 - [469] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) - [470] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 - [471] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 - [472] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 - [473] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 + [474] (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 ) + [474] (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 ) + [474] (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 ) + [474] (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 ) + [474] (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 ) + [475] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) + [476] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 + [477] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 + [478] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) + [479] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 + [480] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 + [481] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 + [482] 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 - [474] (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 ) - [474] (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 ) - [474] (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 ) - [475] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 - [476] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 - [477] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 - [478] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 - [479] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 - [480] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 + [483] (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 ) + [483] (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 ) + [483] (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 ) + [484] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 + [485] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 + [486] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 + [487] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 + [488] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 + [489] 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 - [481] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 - [482] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 + [490] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 + [491] 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 - [483] return + [492] return to:@return sid_rnd_init: scope:[sid_rnd_init] from main - [484] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 - [485] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 + [493] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 + [494] *((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 - [486] return + [495] return to:@return sprites_irq: scope:[sprites_irq] from asm { cld } - [488] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 - [489] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 - [490] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 - [491] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 - [492] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 + [497] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 + [498] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 + [499] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 + [500] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 + [501] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 to:sprites_irq::@1 sprites_irq::@1: scope:[sprites_irq] from sprites_irq sprites_irq::@1 - [493] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 + [502] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 to:sprites_irq::@7 sprites_irq::@7: scope:[sprites_irq] from sprites_irq::@1 - [494] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 - [495] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 + [503] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 + [504] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 to:sprites_irq::@8 sprites_irq::@8: scope:[sprites_irq] from sprites_irq::@7 - [496] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 - [497] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 - [498] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 - [499] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 - [500] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 - [501] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 + [505] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 + [506] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 + [507] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 + [508] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 + [509] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 + [510] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 to:sprites_irq::@3 sprites_irq::@3: scope:[sprites_irq] from sprites_irq::@2 sprites_irq::@8 - [502] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 - [503] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 + [511] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 + [512] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 to:sprites_irq::@10 sprites_irq::@10: scope:[sprites_irq] from sprites_irq::@3 - [504] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [505] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [506] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 + [513] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [514] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [515] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:sprites_irq::@5 sprites_irq::@5: scope:[sprites_irq] from sprites_irq::@10 sprites_irq::@13 - [507] (byte) irq_raster_next#13 ← phi( sprites_irq::@10/(byte) irq_raster_next#2 sprites_irq::@13/(byte) irq_raster_next#1 ) - [508] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 - [509] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 - [510] if((byte~) sprites_irq::$4!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto sprites_irq::@6 + [516] (byte) irq_raster_next#13 ← phi( sprites_irq::@10/(byte) irq_raster_next#2 sprites_irq::@13/(byte) irq_raster_next#1 ) + [517] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 + [518] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [519] if((byte~) sprites_irq::$4!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto sprites_irq::@6 to:sprites_irq::@12 sprites_irq::@12: scope:[sprites_irq] from sprites_irq::@5 - [511] (byte) sprites_irq::raster_next#1 ← (byte) sprites_irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [520] (byte) sprites_irq::raster_next#1 ← (byte) sprites_irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 to:sprites_irq::@6 sprites_irq::@6: scope:[sprites_irq] from sprites_irq::@12 sprites_irq::@5 - [512] (byte) sprites_irq::raster_next#2 ← phi( sprites_irq::@12/(byte) sprites_irq::raster_next#1 sprites_irq::@5/(byte) sprites_irq::raster_next#0 ) - [513] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 - [514] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 + [521] (byte) sprites_irq::raster_next#2 ← phi( sprites_irq::@12/(byte) sprites_irq::raster_next#1 sprites_irq::@5/(byte) sprites_irq::raster_next#0 ) + [522] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 + [523] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 to:sprites_irq::@return sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@6 - [515] return + [524] return to:@return sprites_irq::@4: scope:[sprites_irq] from sprites_irq::@3 - [516] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [517] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 - [518] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 + [525] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [526] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 + [527] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 to:sprites_irq::toSpritePtr2 sprites_irq::toSpritePtr2: scope:[sprites_irq] from sprites_irq::@4 - [519] phi() + [528] phi() to:sprites_irq::@13 sprites_irq::@13: scope:[sprites_irq] from sprites_irq::toSpritePtr2 - [520] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 + [529] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 to:sprites_irq::@5 sprites_irq::@2: scope:[sprites_irq] from sprites_irq::@7 - [521] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 - [522] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 - [523] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 - [524] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 - [525] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 - [526] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 + [530] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 + [531] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 + [532] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 + [533] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 + [534] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 + [535] *((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 @@ -9241,6 +9730,7 @@ VARIABLE REGISTER WEIGHTS (byte) LIGHT_BLUE (byte) LIGHT_GREEN (byte) LIGHT_GREY +(byte[]) MOVEDOWN_SLOW_SPEEDS (byte) ORANGE (word[]) PIECES (byte[]) PIECES_CHARS @@ -9319,6 +9809,13 @@ VARIABLE REGISTER WEIGHTS (byte) current_movedown_counter#12 10.363636363636363 (byte) current_movedown_fast (byte) current_movedown_slow +(byte) current_movedown_slow#1 0.3076923076923077 +(byte) current_movedown_slow#12 2.296296296296297 +(byte) current_movedown_slow#17 4.0 +(byte) current_movedown_slow#19 1.3333333333333333 +(byte) current_movedown_slow#20 0.5 +(byte) current_movedown_slow#30 6.0 +(byte) current_movedown_slow#8 4.0 (byte) current_orientation (byte) current_orientation#10 3.371428571428571 (byte) current_orientation#14 0.32653061224489793 @@ -9463,16 +9960,23 @@ VARIABLE REGISTER WEIGHTS (byte) keyboard_modifiers#4 4.0 (byte) keyboard_modifiers#5 20.0 (byte[8]) keyboard_scan_values +(byte) level +(byte) level#12 4.0 +(byte) level#14 1.3333333333333333 +(byte) level#16 0.7272727272727273 +(byte) level#19 2.2181818181818174 +(byte) level#24 6.0 (byte) level_bcd -(byte) level_bcd#11 2.313725490196078 -(byte) level_bcd#13 2.6666666666666665 -(byte) level_bcd#14 1.6666666666666665 -(byte) level_bcd#16 2.25925925925926 -(byte) level_bcd#21 6.0 -(byte) level_bcd#4 4.0 +(byte) level_bcd#13 2.313725490196078 +(byte) level_bcd#15 1.3333333333333333 +(byte) level_bcd#17 2.6666666666666665 +(byte) level_bcd#18 2.0 +(byte) level_bcd#20 2.0677966101694913 +(byte) level_bcd#25 6.0 +(byte) level_bcd#6 4.0 (word) lines_bcd (word) lines_bcd#11 2.352941176470588 -(word) lines_bcd#13 1.6666666666666665 +(word) lines_bcd#13 1.3333333333333333 (word) lines_bcd#15 2.5416666666666656 (word) lines_bcd#20 6.0 (word) lines_bcd#23 1.0 @@ -9536,6 +10040,8 @@ VARIABLE REGISTER WEIGHTS (byte) play_collision::ypos2#0 4.0 (byte) play_collision::ypos2#1 500.5 (byte) play_collision::ypos2#2 867.0666666666667 +(void()) play_increase_level() +(byte~) play_increase_level::$1 4.0 (void()) play_init() (byte~) play_init::$1 22.0 (byte) play_init::idx @@ -9647,7 +10153,6 @@ VARIABLE REGISTER WEIGHTS (byte~) play_update_score::$2 4.0 (byte~) play_update_score::$4 4.0 (byte~) play_update_score::$5 4.0 -(byte~) play_update_score::$9 4.0 (dword) play_update_score::add_bcd (dword) play_update_score::add_bcd#0 1.3333333333333333 (byte) play_update_score::lines_after @@ -9690,32 +10195,6 @@ VARIABLE REGISTER WEIGHTS (byte*) render_bcd::screen_pos#1 20.0 (byte*) render_bcd::screen_pos#2 4.0 (byte*) render_bcd::screen_pos#3 2.0 -(void()) render_current() -(byte~) render_current::$5 202.0 -(byte) render_current::c -(byte) render_current::c#1 1501.5 -(byte) render_current::c#2 286.0 -(byte) render_current::current_cell -(byte) render_current::current_cell#0 1001.0 -(byte) render_current::i -(byte) render_current::i#1 202.0 -(byte) render_current::i#10 429.0 -(byte) render_current::i#3 50.5 -(byte) render_current::i#4 1552.0 -(byte) render_current::i#8 300.75 -(byte) render_current::l -(byte) render_current::l#1 151.5 -(byte) render_current::l#4 11.222222222222221 -(byte*) render_current::screen_line -(byte*) render_current::screen_line#0 100.18181818181819 -(byte) render_current::xpos -(byte) render_current::xpos#0 202.0 -(byte) render_current::xpos#1 667.3333333333334 -(byte) render_current::xpos#2 684.1666666666667 -(byte) render_current::ypos2 -(byte) render_current::ypos2#0 4.0 -(byte) render_current::ypos2#1 67.33333333333333 -(byte) render_current::ypos2#2 29.823529411764707 (void()) render_init() (byte~) render_init::$13 22.0 (byte~) render_init::$14 22.0 @@ -9736,6 +10215,32 @@ VARIABLE REGISTER WEIGHTS (byte/word/dword~) render_init::vicSelectGfxBank1_toDd001_$3 (byte*) render_init::vicSelectGfxBank1_toDd001_gfx (byte) render_init::vicSelectGfxBank1_toDd001_return +(void()) render_moving() +(byte~) render_moving::$5 202.0 +(byte) render_moving::c +(byte) render_moving::c#1 1501.5 +(byte) render_moving::c#2 286.0 +(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#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::screen_line +(byte*) render_moving::screen_line#0 100.18181818181819 +(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::ypos2 +(byte) render_moving::ypos2#0 4.0 +(byte) render_moving::ypos2#1 67.33333333333333 +(byte) render_moving::ypos2#2 29.823529411764707 (void()) render_playfield() (byte~) render_playfield::$2 202.0 (byte~) render_playfield::$3 202.0 @@ -9841,10 +10346,10 @@ VARIABLE REGISTER WEIGHTS (dword[]) score_add_bcd (dword) score_bcd (dword) score_bcd#10 4.0 -(dword) score_bcd#12 1.6666666666666665 +(dword) score_bcd#12 1.3333333333333333 (dword) score_bcd#14 2.4489795918367347 (dword) score_bcd#20 6.0 -(dword) score_bcd#23 0.8888888888888888 +(dword) score_bcd#23 0.8571428571428571 (byte*[PLAYFIELD_LINES#0]) screen_lines_1 (byte*[PLAYFIELD_LINES#0]) screen_lines_2 (byte()) sid_rnd() @@ -9902,11 +10407,11 @@ Initial phi equivalence classes [ current_xpos#47 current_xpos#112 current_xpos#113 ] [ current_piece_gfx#53 current_piece_gfx#102 current_piece_gfx#103 ] [ current_piece_char#64 current_piece_char#90 current_piece_char#91 ] -[ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] -[ render_current::l#4 render_current::l#1 ] -[ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] -[ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] -[ render_current::c#2 render_current::c#1 ] +[ 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::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#65 ] [ render_playfield::l#2 render_playfield::l#1 ] [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] @@ -9929,7 +10434,9 @@ Initial phi equivalence classes [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] [ lines_bcd#20 lines_bcd#13 lines_bcd#15 lines_bcd#11 lines_bcd#23 ] [ score_bcd#20 score_bcd#12 score_bcd#14 score_bcd#10 score_bcd#23 ] -[ level_bcd#21 level_bcd#14 level_bcd#16 level_bcd#11 level_bcd#13 level_bcd#4 ] +[ level#24 level#14 level#19 level#12 level#16 ] +[ current_movedown_slow#30 current_movedown_slow#19 current_movedown_slow#12 current_movedown_slow#1 current_movedown_slow#17 current_movedown_slow#20 current_movedown_slow#8 ] +[ level_bcd#25 level_bcd#15 level_bcd#20 level_bcd#13 level_bcd#18 level_bcd#17 level_bcd#6 ] [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 ] [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 ] @@ -9996,9 +10503,9 @@ 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_current::$5 to zero page equivalence class [ render_current::$5 ] -Added variable render_current::screen_line#0 to zero page equivalence class [ render_current::screen_line#0 ] -Added variable render_current::current_cell#0 to zero page equivalence class [ render_current::current_cell#0 ] +Added variable render_moving::$5 to zero page equivalence class [ render_moving::$5 ] +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 ] Added variable render_playfield::$3 to zero page equivalence class [ render_playfield::$3 ] Added variable play_move_rotate::$2 to zero page equivalence class [ play_move_rotate::$2 ] @@ -10030,7 +10537,7 @@ Added variable play_update_score::$4 to zero page equivalence class [ play_updat Added variable play_update_score::add_bcd#0 to zero page equivalence class [ play_update_score::add_bcd#0 ] Added variable play_update_score::$5 to zero page equivalence class [ play_update_score::$5 ] Added variable play_update_score::lines_after#0 to zero page equivalence class [ play_update_score::lines_after#0 ] -Added variable play_update_score::$9 to zero page equivalence class [ play_update_score::$9 ] +Added variable play_increase_level::$1 to zero page equivalence class [ play_increase_level::$1 ] Added variable play_remove_lines::c#0 to zero page equivalence class [ play_remove_lines::c#0 ] Added variable play_lock_current::playfield_line#0 to zero page equivalence class [ play_lock_current::playfield_line#0 ] Added variable play_lock_current::i#1 to zero page equivalence class [ play_lock_current::i#1 ] @@ -10088,11 +10595,11 @@ Complete equivalence classes [ current_xpos#47 current_xpos#112 current_xpos#113 ] [ current_piece_gfx#53 current_piece_gfx#102 current_piece_gfx#103 ] [ current_piece_char#64 current_piece_char#90 current_piece_char#91 ] -[ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] -[ render_current::l#4 render_current::l#1 ] -[ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] -[ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] -[ render_current::c#2 render_current::c#1 ] +[ 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::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#65 ] [ render_playfield::l#2 render_playfield::l#1 ] [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] @@ -10115,7 +10622,9 @@ Complete equivalence classes [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] [ lines_bcd#20 lines_bcd#13 lines_bcd#15 lines_bcd#11 lines_bcd#23 ] [ score_bcd#20 score_bcd#12 score_bcd#14 score_bcd#10 score_bcd#23 ] -[ level_bcd#21 level_bcd#14 level_bcd#16 level_bcd#11 level_bcd#13 level_bcd#4 ] +[ level#24 level#14 level#19 level#12 level#16 ] +[ current_movedown_slow#30 current_movedown_slow#19 current_movedown_slow#12 current_movedown_slow#1 current_movedown_slow#17 current_movedown_slow#20 current_movedown_slow#8 ] +[ level_bcd#25 level_bcd#15 level_bcd#20 level_bcd#13 level_bcd#18 level_bcd#17 level_bcd#6 ] [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 ] [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 ] @@ -10182,9 +10691,9 @@ Complete equivalence classes [ render_bcd::$5 ] [ render_bcd::$6 ] [ render_bcd::screen_pos#1 ] -[ render_current::$5 ] -[ render_current::screen_line#0 ] -[ render_current::current_cell#0 ] +[ render_moving::$5 ] +[ render_moving::screen_line#0 ] +[ render_moving::current_cell#0 ] [ render_playfield::$2 ] [ render_playfield::$3 ] [ play_move_rotate::$2 ] @@ -10216,7 +10725,7 @@ Complete equivalence classes [ play_update_score::add_bcd#0 ] [ play_update_score::$5 ] [ play_update_score::lines_after#0 ] -[ play_update_score::$9 ] +[ play_increase_level::$1 ] [ play_remove_lines::c#0 ] [ play_lock_current::playfield_line#0 ] [ play_lock_current::i#1 ] @@ -10273,11 +10782,11 @@ Allocated zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 ] Allocated zp ZP_BYTE:17 [ current_xpos#47 current_xpos#112 current_xpos#113 ] Allocated zp ZP_WORD:18 [ current_piece_gfx#53 current_piece_gfx#102 current_piece_gfx#103 ] Allocated zp ZP_BYTE:20 [ current_piece_char#64 current_piece_char#90 current_piece_char#91 ] -Allocated zp ZP_BYTE:21 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] -Allocated zp ZP_BYTE:22 [ render_current::l#4 render_current::l#1 ] -Allocated zp ZP_BYTE:23 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] -Allocated zp ZP_BYTE:24 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] -Allocated zp ZP_BYTE:25 [ render_current::c#2 render_current::c#1 ] +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: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#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 ] @@ -10300,150 +10809,152 @@ Allocated zp ZP_BYTE:46 [ play_move_down::movedown#6 play_move_down::movedown#3 Allocated zp ZP_BYTE:47 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] Allocated zp ZP_WORD:48 [ lines_bcd#20 lines_bcd#13 lines_bcd#15 lines_bcd#11 lines_bcd#23 ] Allocated zp ZP_DWORD:50 [ score_bcd#20 score_bcd#12 score_bcd#14 score_bcd#10 score_bcd#23 ] -Allocated zp ZP_BYTE:54 [ level_bcd#21 level_bcd#14 level_bcd#16 level_bcd#11 level_bcd#13 level_bcd#4 ] -Allocated zp ZP_WORD:55 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 ] -Allocated zp ZP_BYTE:57 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -Allocated zp ZP_WORD:58 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 ] -Allocated zp ZP_BYTE:60 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] -Allocated zp ZP_BYTE:61 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] -Allocated zp ZP_BYTE:62 [ play_move_down::return#2 ] -Allocated zp ZP_BYTE:63 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] -Allocated zp ZP_BYTE:64 [ play_remove_lines::y#8 play_remove_lines::y#1 ] -Allocated zp ZP_BYTE:65 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] -Allocated zp ZP_BYTE:66 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] -Allocated zp ZP_BYTE:67 [ play_remove_lines::x#2 play_remove_lines::x#1 ] -Allocated zp ZP_BYTE:68 [ play_remove_lines::full#4 play_remove_lines::full#2 ] -Allocated zp ZP_BYTE:69 [ 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 ] -Allocated zp ZP_BYTE:70 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -Allocated zp ZP_BYTE:71 [ play_lock_current::l#6 play_lock_current::l#1 ] -Allocated zp ZP_BYTE:72 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] -Allocated zp ZP_BYTE:73 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] -Allocated zp ZP_BYTE:74 [ play_lock_current::c#2 play_lock_current::c#1 ] -Allocated zp ZP_BYTE:75 [ keyboard_event_pressed::keycode#5 ] -Allocated zp ZP_BYTE:76 [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] -Allocated zp ZP_BYTE:77 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Allocated zp ZP_BYTE:78 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] -Allocated zp ZP_BYTE:79 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] -Allocated zp ZP_BYTE:80 [ 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 ] -Allocated zp ZP_BYTE:81 [ 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 zp ZP_BYTE:82 [ render_show::d018val#3 ] -Allocated zp ZP_BYTE:83 [ play_init::j#2 play_init::j#1 ] -Allocated zp ZP_WORD:84 [ play_init::pli#2 play_init::pli#1 ] -Allocated zp ZP_BYTE:86 [ play_init::idx#2 play_init::idx#1 ] -Allocated zp ZP_BYTE:87 [ sprites_init::s#2 sprites_init::s#1 ] -Allocated zp ZP_BYTE:88 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Allocated zp ZP_BYTE:89 [ render_init::i#2 render_init::i#1 ] -Allocated zp ZP_WORD:90 [ render_init::li_1#2 render_init::li_1#1 ] -Allocated zp ZP_WORD:92 [ render_init::li_2#2 render_init::li_2#1 ] -Allocated zp ZP_BYTE:94 [ render_screen_original::y#6 render_screen_original::y#1 ] -Allocated zp ZP_WORD:95 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] -Allocated zp ZP_WORD:97 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] -Allocated zp ZP_WORD:99 [ render_screen_original::screen#7 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#9 render_screen_original::screen#10 render_screen_original::screen#2 render_screen_original::screen#3 ] -Allocated zp ZP_WORD:101 [ render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 ] -Allocated zp ZP_BYTE:103 [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] -Allocated zp ZP_BYTE:104 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] -Allocated zp ZP_BYTE:105 [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] -Allocated zp ZP_BYTE:106 [ render_screen_showing#0 ] -Allocated zp ZP_BYTE:107 [ irq_raster_next#0 ] -Allocated zp ZP_BYTE:108 [ irq_sprite_ypos#0 ] -Allocated zp ZP_BYTE:109 [ irq_sprite_ptr#0 ] -Allocated zp ZP_BYTE:110 [ irq_cnt#0 ] -Allocated zp ZP_BYTE:111 [ keyboard_event_get::return#3 ] -Allocated zp ZP_BYTE:112 [ main::key_event#0 ] -Allocated zp ZP_BYTE:113 [ play_move_down::key_event#0 ] -Allocated zp ZP_BYTE:114 [ play_move_down::return#3 ] -Allocated zp ZP_BYTE:115 [ main::$12 ] -Allocated zp ZP_BYTE:116 [ main::render#1 ] -Allocated zp ZP_BYTE:117 [ play_move_leftright::key_event#0 ] -Allocated zp ZP_BYTE:118 [ play_move_leftright::return#4 ] -Allocated zp ZP_BYTE:119 [ main::$13 ] -Allocated zp ZP_BYTE:120 [ main::render#2 ] -Allocated zp ZP_BYTE:121 [ play_move_rotate::key_event#0 ] -Allocated zp ZP_BYTE:122 [ play_move_rotate::return#4 ] -Allocated zp ZP_BYTE:123 [ main::$14 ] -Allocated zp ZP_BYTE:124 [ main::render#3 ] -Allocated zp ZP_BYTE:125 [ render_bcd::$3 ] -Allocated zp ZP_BYTE:126 [ render_bcd::$4 ] -Allocated zp ZP_BYTE:127 [ render_bcd::$5 ] -Allocated zp ZP_BYTE:128 [ render_bcd::$6 ] -Allocated zp ZP_WORD:129 [ render_bcd::screen_pos#1 ] -Allocated zp ZP_BYTE:131 [ render_current::$5 ] -Allocated zp ZP_WORD:132 [ render_current::screen_line#0 ] -Allocated zp ZP_BYTE:134 [ render_current::current_cell#0 ] -Allocated zp ZP_BYTE:135 [ render_playfield::$2 ] -Allocated zp ZP_BYTE:136 [ render_playfield::$3 ] -Allocated zp ZP_BYTE:137 [ play_move_rotate::$2 ] -Allocated zp ZP_BYTE:138 [ play_collision::return#13 ] -Allocated zp ZP_BYTE:139 [ play_move_rotate::$6 ] -Allocated zp ZP_BYTE:140 [ play_move_rotate::$4 ] -Allocated zp ZP_WORD:141 [ play_collision::piece_gfx#0 ] -Allocated zp ZP_WORD:143 [ play_collision::playfield_line#0 ] -Allocated zp ZP_BYTE:145 [ play_collision::i#1 ] -Allocated zp ZP_BYTE:146 [ play_collision::$7 ] -Allocated zp ZP_BYTE:147 [ play_collision::return#12 ] -Allocated zp ZP_BYTE:148 [ play_move_leftright::$4 ] -Allocated zp ZP_BYTE:149 [ play_collision::return#1 ] -Allocated zp ZP_BYTE:150 [ play_move_leftright::$8 ] -Allocated zp ZP_BYTE:151 [ keyboard_event_pressed::return#12 ] -Allocated zp ZP_BYTE:152 [ play_move_down::$2 ] -Allocated zp ZP_BYTE:153 [ play_collision::return#0 ] -Allocated zp ZP_BYTE:154 [ play_move_down::$12 ] -Allocated zp ZP_BYTE:155 [ play_remove_lines::return#0 ] -Allocated zp ZP_BYTE:156 [ play_move_down::removed#0 ] -Allocated zp ZP_BYTE:157 [ play_update_score::removed#0 ] -Allocated zp ZP_BYTE:158 [ play_spawn_current::$3 ] -Allocated zp ZP_BYTE:159 [ sid_rnd::return#2 ] -Allocated zp ZP_BYTE:160 [ play_spawn_current::$1 ] -Allocated zp ZP_BYTE:161 [ sid_rnd::return#0 ] -Allocated zp ZP_BYTE:162 [ play_update_score::$2 ] -Allocated zp ZP_BYTE:163 [ play_update_score::lines_before#0 ] -Allocated zp ZP_BYTE:164 [ play_update_score::$4 ] -Allocated zp ZP_DWORD:165 [ play_update_score::add_bcd#0 ] -Allocated zp ZP_BYTE:169 [ play_update_score::$5 ] -Allocated zp ZP_BYTE:170 [ play_update_score::lines_after#0 ] -Allocated zp ZP_BYTE:171 [ play_update_score::$9 ] -Allocated zp ZP_BYTE:172 [ play_remove_lines::c#0 ] -Allocated zp ZP_WORD:173 [ play_lock_current::playfield_line#0 ] -Allocated zp ZP_BYTE:175 [ play_lock_current::i#1 ] -Allocated zp ZP_BYTE:176 [ keyboard_event_pressed::$0 ] -Allocated zp ZP_BYTE:177 [ keyboard_event_pressed::row_bits#0 ] -Allocated zp ZP_BYTE:178 [ keyboard_event_pressed::$1 ] -Allocated zp ZP_BYTE:179 [ keyboard_event_pressed::return#11 ] -Allocated zp ZP_BYTE:180 [ keyboard_matrix_read::rowid#0 ] -Allocated zp ZP_BYTE:181 [ keyboard_matrix_read::return#2 ] -Allocated zp ZP_BYTE:182 [ keyboard_event_scan::row_scan#0 ] -Allocated zp ZP_BYTE:183 [ keyboard_event_pressed::return#0 ] -Allocated zp ZP_BYTE:184 [ keyboard_event_scan::$14 ] -Allocated zp ZP_BYTE:185 [ keyboard_event_pressed::return#1 ] -Allocated zp ZP_BYTE:186 [ keyboard_event_scan::$18 ] -Allocated zp ZP_BYTE:187 [ keyboard_event_pressed::return#2 ] -Allocated zp ZP_BYTE:188 [ keyboard_event_scan::$22 ] -Allocated zp ZP_BYTE:189 [ keyboard_event_pressed::return#10 ] -Allocated zp ZP_BYTE:190 [ keyboard_event_scan::$26 ] -Allocated zp ZP_BYTE:191 [ keyboard_modifiers#5 ] -Allocated zp ZP_BYTE:192 [ keyboard_event_scan::$3 ] -Allocated zp ZP_BYTE:193 [ keyboard_event_scan::$4 ] -Allocated zp ZP_BYTE:194 [ keyboard_event_scan::event_type#0 ] -Allocated zp ZP_BYTE:195 [ keyboard_event_scan::$11 ] -Allocated zp ZP_BYTE:196 [ keyboard_matrix_read::return#0 ] -Allocated zp ZP_BYTE:197 [ render_screen_showing#1 ] -Allocated zp ZP_BYTE:198 [ play_init::$1 ] -Allocated zp ZP_BYTE:199 [ sprites_init::s2#0 ] -Allocated zp ZP_BYTE:200 [ render_init::$13 ] -Allocated zp ZP_BYTE:201 [ render_init::$14 ] -Allocated zp ZP_BYTE:202 [ sprites_irq::ypos#0 ] -Allocated zp ZP_BYTE:203 [ sprites_irq::ptr#0 ] -Allocated zp ZP_BYTE:204 [ sprites_irq::ptr#3 ] -Allocated zp ZP_BYTE:205 [ sprites_irq::ptr#4 ] -Allocated zp ZP_BYTE:206 [ irq_cnt#1 ] -Allocated zp ZP_BYTE:207 [ irq_sprite_ypos#2 ] -Allocated zp ZP_BYTE:208 [ irq_sprite_ptr#2 ] -Allocated zp ZP_BYTE:209 [ sprites_irq::$4 ] -Allocated zp ZP_BYTE:210 [ irq_cnt#14 ] -Allocated zp ZP_BYTE:211 [ irq_sprite_ypos#1 ] -Allocated zp ZP_BYTE:212 [ irq_sprite_ptr#1 ] -Allocated zp ZP_BYTE:213 [ sprites_irq::ptr#1 ] -Allocated zp ZP_BYTE:214 [ sprites_irq::ptr#2 ] +Allocated zp ZP_BYTE:54 [ level#24 level#14 level#19 level#12 level#16 ] +Allocated zp ZP_BYTE:55 [ current_movedown_slow#30 current_movedown_slow#19 current_movedown_slow#12 current_movedown_slow#1 current_movedown_slow#17 current_movedown_slow#20 current_movedown_slow#8 ] +Allocated zp ZP_BYTE:56 [ level_bcd#25 level_bcd#15 level_bcd#20 level_bcd#13 level_bcd#18 level_bcd#17 level_bcd#6 ] +Allocated zp ZP_WORD:57 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 ] +Allocated zp ZP_BYTE:59 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] +Allocated zp ZP_WORD:60 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 ] +Allocated zp ZP_BYTE:62 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] +Allocated zp ZP_BYTE:63 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] +Allocated zp ZP_BYTE:64 [ play_move_down::return#2 ] +Allocated zp ZP_BYTE:65 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] +Allocated zp ZP_BYTE:66 [ play_remove_lines::y#8 play_remove_lines::y#1 ] +Allocated zp ZP_BYTE:67 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] +Allocated zp ZP_BYTE:68 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] +Allocated zp ZP_BYTE:69 [ play_remove_lines::x#2 play_remove_lines::x#1 ] +Allocated zp ZP_BYTE:70 [ play_remove_lines::full#4 play_remove_lines::full#2 ] +Allocated zp ZP_BYTE:71 [ 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 ] +Allocated zp ZP_BYTE:72 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] +Allocated zp ZP_BYTE:73 [ play_lock_current::l#6 play_lock_current::l#1 ] +Allocated zp ZP_BYTE:74 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] +Allocated zp ZP_BYTE:75 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] +Allocated zp ZP_BYTE:76 [ play_lock_current::c#2 play_lock_current::c#1 ] +Allocated zp ZP_BYTE:77 [ keyboard_event_pressed::keycode#5 ] +Allocated zp ZP_BYTE:78 [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] +Allocated zp ZP_BYTE:79 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Allocated zp ZP_BYTE:80 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] +Allocated zp ZP_BYTE:81 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +Allocated zp ZP_BYTE:82 [ 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 ] +Allocated zp ZP_BYTE:83 [ 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 zp ZP_BYTE:84 [ render_show::d018val#3 ] +Allocated zp ZP_BYTE:85 [ play_init::j#2 play_init::j#1 ] +Allocated zp ZP_WORD:86 [ play_init::pli#2 play_init::pli#1 ] +Allocated zp ZP_BYTE:88 [ play_init::idx#2 play_init::idx#1 ] +Allocated zp ZP_BYTE:89 [ sprites_init::s#2 sprites_init::s#1 ] +Allocated zp ZP_BYTE:90 [ sprites_init::xpos#2 sprites_init::xpos#1 ] +Allocated zp ZP_BYTE:91 [ render_init::i#2 render_init::i#1 ] +Allocated zp ZP_WORD:92 [ render_init::li_1#2 render_init::li_1#1 ] +Allocated zp ZP_WORD:94 [ render_init::li_2#2 render_init::li_2#1 ] +Allocated zp ZP_BYTE:96 [ render_screen_original::y#6 render_screen_original::y#1 ] +Allocated zp ZP_WORD:97 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] +Allocated zp ZP_WORD:99 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] +Allocated zp ZP_WORD:101 [ render_screen_original::screen#7 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#9 render_screen_original::screen#10 render_screen_original::screen#2 render_screen_original::screen#3 ] +Allocated zp ZP_WORD:103 [ render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 ] +Allocated zp ZP_BYTE:105 [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] +Allocated zp ZP_BYTE:106 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] +Allocated zp ZP_BYTE:107 [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] +Allocated zp ZP_BYTE:108 [ render_screen_showing#0 ] +Allocated zp ZP_BYTE:109 [ irq_raster_next#0 ] +Allocated zp ZP_BYTE:110 [ irq_sprite_ypos#0 ] +Allocated zp ZP_BYTE:111 [ irq_sprite_ptr#0 ] +Allocated zp ZP_BYTE:112 [ irq_cnt#0 ] +Allocated zp ZP_BYTE:113 [ keyboard_event_get::return#3 ] +Allocated zp ZP_BYTE:114 [ main::key_event#0 ] +Allocated zp ZP_BYTE:115 [ play_move_down::key_event#0 ] +Allocated zp ZP_BYTE:116 [ play_move_down::return#3 ] +Allocated zp ZP_BYTE:117 [ main::$12 ] +Allocated zp ZP_BYTE:118 [ main::render#1 ] +Allocated zp ZP_BYTE:119 [ play_move_leftright::key_event#0 ] +Allocated zp ZP_BYTE:120 [ play_move_leftright::return#4 ] +Allocated zp ZP_BYTE:121 [ main::$13 ] +Allocated zp ZP_BYTE:122 [ main::render#2 ] +Allocated zp ZP_BYTE:123 [ play_move_rotate::key_event#0 ] +Allocated zp ZP_BYTE:124 [ play_move_rotate::return#4 ] +Allocated zp ZP_BYTE:125 [ main::$14 ] +Allocated zp ZP_BYTE:126 [ main::render#3 ] +Allocated zp ZP_BYTE:127 [ render_bcd::$3 ] +Allocated zp ZP_BYTE:128 [ render_bcd::$4 ] +Allocated zp ZP_BYTE:129 [ render_bcd::$5 ] +Allocated zp ZP_BYTE:130 [ render_bcd::$6 ] +Allocated zp ZP_WORD:131 [ render_bcd::screen_pos#1 ] +Allocated zp ZP_BYTE:133 [ render_moving::$5 ] +Allocated zp ZP_WORD:134 [ render_moving::screen_line#0 ] +Allocated zp ZP_BYTE:136 [ render_moving::current_cell#0 ] +Allocated zp ZP_BYTE:137 [ render_playfield::$2 ] +Allocated zp ZP_BYTE:138 [ render_playfield::$3 ] +Allocated zp ZP_BYTE:139 [ play_move_rotate::$2 ] +Allocated zp ZP_BYTE:140 [ play_collision::return#13 ] +Allocated zp ZP_BYTE:141 [ play_move_rotate::$6 ] +Allocated zp ZP_BYTE:142 [ play_move_rotate::$4 ] +Allocated zp ZP_WORD:143 [ play_collision::piece_gfx#0 ] +Allocated zp ZP_WORD:145 [ play_collision::playfield_line#0 ] +Allocated zp ZP_BYTE:147 [ play_collision::i#1 ] +Allocated zp ZP_BYTE:148 [ play_collision::$7 ] +Allocated zp ZP_BYTE:149 [ play_collision::return#12 ] +Allocated zp ZP_BYTE:150 [ play_move_leftright::$4 ] +Allocated zp ZP_BYTE:151 [ play_collision::return#1 ] +Allocated zp ZP_BYTE:152 [ play_move_leftright::$8 ] +Allocated zp ZP_BYTE:153 [ keyboard_event_pressed::return#12 ] +Allocated zp ZP_BYTE:154 [ play_move_down::$2 ] +Allocated zp ZP_BYTE:155 [ play_collision::return#0 ] +Allocated zp ZP_BYTE:156 [ play_move_down::$12 ] +Allocated zp ZP_BYTE:157 [ play_remove_lines::return#0 ] +Allocated zp ZP_BYTE:158 [ play_move_down::removed#0 ] +Allocated zp ZP_BYTE:159 [ play_update_score::removed#0 ] +Allocated zp ZP_BYTE:160 [ play_spawn_current::$3 ] +Allocated zp ZP_BYTE:161 [ sid_rnd::return#2 ] +Allocated zp ZP_BYTE:162 [ play_spawn_current::$1 ] +Allocated zp ZP_BYTE:163 [ sid_rnd::return#0 ] +Allocated zp ZP_BYTE:164 [ play_update_score::$2 ] +Allocated zp ZP_BYTE:165 [ play_update_score::lines_before#0 ] +Allocated zp ZP_BYTE:166 [ play_update_score::$4 ] +Allocated zp ZP_DWORD:167 [ play_update_score::add_bcd#0 ] +Allocated zp ZP_BYTE:171 [ play_update_score::$5 ] +Allocated zp ZP_BYTE:172 [ play_update_score::lines_after#0 ] +Allocated zp ZP_BYTE:173 [ play_increase_level::$1 ] +Allocated zp ZP_BYTE:174 [ play_remove_lines::c#0 ] +Allocated zp ZP_WORD:175 [ play_lock_current::playfield_line#0 ] +Allocated zp ZP_BYTE:177 [ play_lock_current::i#1 ] +Allocated zp ZP_BYTE:178 [ keyboard_event_pressed::$0 ] +Allocated zp ZP_BYTE:179 [ keyboard_event_pressed::row_bits#0 ] +Allocated zp ZP_BYTE:180 [ keyboard_event_pressed::$1 ] +Allocated zp ZP_BYTE:181 [ keyboard_event_pressed::return#11 ] +Allocated zp ZP_BYTE:182 [ keyboard_matrix_read::rowid#0 ] +Allocated zp ZP_BYTE:183 [ keyboard_matrix_read::return#2 ] +Allocated zp ZP_BYTE:184 [ keyboard_event_scan::row_scan#0 ] +Allocated zp ZP_BYTE:185 [ keyboard_event_pressed::return#0 ] +Allocated zp ZP_BYTE:186 [ keyboard_event_scan::$14 ] +Allocated zp ZP_BYTE:187 [ keyboard_event_pressed::return#1 ] +Allocated zp ZP_BYTE:188 [ keyboard_event_scan::$18 ] +Allocated zp ZP_BYTE:189 [ keyboard_event_pressed::return#2 ] +Allocated zp ZP_BYTE:190 [ keyboard_event_scan::$22 ] +Allocated zp ZP_BYTE:191 [ keyboard_event_pressed::return#10 ] +Allocated zp ZP_BYTE:192 [ keyboard_event_scan::$26 ] +Allocated zp ZP_BYTE:193 [ keyboard_modifiers#5 ] +Allocated zp ZP_BYTE:194 [ keyboard_event_scan::$3 ] +Allocated zp ZP_BYTE:195 [ keyboard_event_scan::$4 ] +Allocated zp ZP_BYTE:196 [ keyboard_event_scan::event_type#0 ] +Allocated zp ZP_BYTE:197 [ keyboard_event_scan::$11 ] +Allocated zp ZP_BYTE:198 [ keyboard_matrix_read::return#0 ] +Allocated zp ZP_BYTE:199 [ render_screen_showing#1 ] +Allocated zp ZP_BYTE:200 [ play_init::$1 ] +Allocated zp ZP_BYTE:201 [ sprites_init::s2#0 ] +Allocated zp ZP_BYTE:202 [ render_init::$13 ] +Allocated zp ZP_BYTE:203 [ render_init::$14 ] +Allocated zp ZP_BYTE:204 [ sprites_irq::ypos#0 ] +Allocated zp ZP_BYTE:205 [ sprites_irq::ptr#0 ] +Allocated zp ZP_BYTE:206 [ sprites_irq::ptr#3 ] +Allocated zp ZP_BYTE:207 [ sprites_irq::ptr#4 ] +Allocated zp ZP_BYTE:208 [ irq_cnt#1 ] +Allocated zp ZP_BYTE:209 [ irq_sprite_ypos#2 ] +Allocated zp ZP_BYTE:210 [ irq_sprite_ptr#2 ] +Allocated zp ZP_BYTE:211 [ sprites_irq::$4 ] +Allocated zp ZP_BYTE:212 [ irq_cnt#14 ] +Allocated zp ZP_BYTE:213 [ irq_sprite_ypos#1 ] +Allocated zp ZP_BYTE:214 [ irq_sprite_ptr#1 ] +Allocated zp ZP_BYTE:215 [ sprites_irq::ptr#1 ] +Allocated zp ZP_BYTE:216 [ sprites_irq::ptr#2 ] INITIAL ASM //SEG0 Basic Upstart @@ -10516,8 +11027,7 @@ INITIAL ASM .const PLAYFIELD_LINES = $16 .const PLAYFIELD_COLS = $a .const IRQ_RASTER_FIRST = $31 - .const current_movedown_slow = $32 - .const current_movedown_fast = 5 + .const current_movedown_fast = 2 .const COLLISION_NONE = 0 .const COLLISION_PLAYFIELD = 1 .const COLLISION_BOTTOM = 2 @@ -10526,42 +11036,44 @@ INITIAL ASM .label PLAYFIELD_SPRITE_PTRS_1 = PLAYFIELD_SCREEN_1+SPRITE_PTRS .label PLAYFIELD_SPRITE_PTRS_2 = PLAYFIELD_SCREEN_2+SPRITE_PTRS .const toSpritePtr1_return = PLAYFIELD_SPRITES>>6 - .label keyboard_events_size = $51 - .label keyboard_modifiers = $4e - .label keyboard_modifiers_5 = $bf - .label render_screen_showing = $6a - .label render_screen_showing_1 = $c5 - .label irq_raster_next = $6b - .label irq_sprite_ypos = $6c - .label irq_sprite_ptr = $6d - .label irq_cnt = $6e - .label irq_cnt_1 = $ce - .label irq_raster_next_1 = $68 - .label irq_sprite_ypos_1 = $d3 - .label irq_sprite_ptr_1 = $d4 - .label irq_raster_next_2 = $68 - .label irq_sprite_ypos_2 = $cf - .label irq_sprite_ptr_2 = $d0 + .label keyboard_events_size = $53 + .label keyboard_modifiers = $50 + .label keyboard_modifiers_5 = $c1 + .label render_screen_showing = $6c + .label render_screen_showing_1 = $c7 + .label irq_raster_next = $6d + .label irq_sprite_ypos = $6e + .label irq_sprite_ptr = $6f + .label irq_cnt = $70 + .label irq_cnt_1 = $d0 + .label irq_raster_next_1 = $6a + .label irq_sprite_ypos_1 = $d5 + .label irq_sprite_ptr_1 = $d6 + .label irq_raster_next_2 = $6a + .label irq_sprite_ypos_2 = $d1 + .label irq_sprite_ptr_2 = $d2 + .label current_movedown_slow = $37 .label current_movedown_counter = 4 .label current_ypos = $2f - .label current_piece_gfx = $3a - .label current_xpos = $3c - .label current_piece_char = $3d - .label current_orientation = $39 - .label level_bcd = $36 + .label current_piece_gfx = $3c + .label current_xpos = $3e + .label current_piece_char = $3f + .label current_orientation = $3b + .label level_bcd = $38 .label render_screen_render = 3 .label render_screen_show = 2 .label current_ypos_9 = $f .label lines_bcd = $30 .label score_bcd = $32 - .label current_piece = $37 + .label level = $36 + .label current_piece = $39 .label current_piece_12 = $22 .label render_screen_render_21 = $1a .label render_screen_render_30 = $10 .label current_xpos_47 = $11 - .label irq_raster_next_13 = $68 + .label irq_raster_next_13 = $6a .label current_piece_gfx_53 = $12 - .label irq_cnt_14 = $d2 + .label irq_cnt_14 = $d4 .label current_piece_char_64 = $14 .label current_ypos_86 = $f .label current_ypos_87 = $f @@ -10606,38 +11118,38 @@ toSpritePtr1_from_b23: jmp toSpritePtr1 //SEG14 toSpritePtr1 toSpritePtr1: - jmp b36 -//SEG15 @36 -b36: + jmp b37 +//SEG15 @37 +b37: //SEG16 [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 -- vbuz1=vbuc1 lda #toSpritePtr1_return sta irq_sprite_ptr //SEG17 [10] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 lda #0 sta irq_cnt -//SEG18 [11] phi from @36 to @35 [phi:@36->@35] -b35_from_b36: - jmp b35 -//SEG19 @35 -b35: +//SEG18 [11] phi from @37 to @36 [phi:@37->@36] +b36_from_b37: + jmp b36 +//SEG19 @36 +b36: //SEG20 [12] call main -//SEG21 [14] phi from @35 to main [phi:@35->main] -main_from_b35: +//SEG21 [14] phi from @36 to main [phi:@36->main] +main_from_b36: jsr main -//SEG22 [13] phi from @35 to @end [phi:@35->@end] -bend_from_b35: +//SEG22 [13] phi from @36 to @end [phi:@36->@end] +bend_from_b36: jmp bend //SEG23 @end bend: //SEG24 main main: { - .label _12 = $73 - .label _13 = $77 - .label _14 = $7b - .label key_event = $70 - .label render = $74 - .label render_2 = $78 - .label render_3 = $7c + .label _12 = $75 + .label _13 = $79 + .label _14 = $7d + .label key_event = $72 + .label render = $76 + .label render_2 = $7a + .label render_3 = $7e //SEG25 [15] call sid_rnd_init jsr sid_rnd_init jmp b15 @@ -10646,7 +11158,7 @@ main: { //SEG27 asm { sei } sei //SEG28 [17] call render_init - //SEG29 [433] phi from main::@15 to render_init [phi:main::@15->render_init] + //SEG29 [442] phi from main::@15 to render_init [phi:main::@15->render_init] render_init_from_b15: jsr render_init //SEG30 [18] phi from main::@15 to main::@16 [phi:main::@15->main::@16] @@ -10669,7 +11181,7 @@ main: { //SEG37 main::@18 b18: //SEG38 [23] call play_init - //SEG39 [398] phi from main::@18 to play_init [phi:main::@18->play_init] + //SEG39 [406] phi from main::@18 to play_init [phi:main::@18->play_init] play_init_from_b18: jsr play_init //SEG40 [24] phi from main::@18 to main::@19 [phi:main::@18->main::@19] @@ -10710,17 +11222,17 @@ main: { //SEG53 [31] (byte~) current_piece_char#90 ← (byte) current_piece_char#12 -- vbuz1=vbuz2 lda current_piece_char sta current_piece_char_90 - //SEG54 [32] call render_current - //SEG55 [110] phi from main::@21 to render_current [phi:main::@21->render_current] - render_current_from_b21: - //SEG56 [110] phi (byte) current_piece_char#64 = (byte~) current_piece_char#90 [phi:main::@21->render_current#0] -- register_copy - //SEG57 [110] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#102 [phi:main::@21->render_current#1] -- register_copy - //SEG58 [110] phi (byte) current_xpos#47 = (byte~) current_xpos#112 [phi:main::@21->render_current#2] -- register_copy - //SEG59 [110] phi (byte) render_screen_render#30 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->render_current#3] -- vbuz1=vbuc1 + //SEG54 [32] call render_moving + //SEG55 [110] phi from main::@21 to render_moving [phi:main::@21->render_moving] + render_moving_from_b21: + //SEG56 [110] phi (byte) current_piece_char#64 = (byte~) current_piece_char#90 [phi:main::@21->render_moving#0] -- register_copy + //SEG57 [110] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#102 [phi:main::@21->render_moving#1] -- register_copy + //SEG58 [110] phi (byte) current_xpos#47 = (byte~) current_xpos#112 [phi:main::@21->render_moving#2] -- register_copy + //SEG59 [110] phi (byte) render_screen_render#30 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->render_moving#3] -- vbuz1=vbuc1 lda #$40 sta render_screen_render_30 - //SEG60 [110] phi (byte) current_ypos#9 = (byte~) current_ypos#86 [phi:main::@21->render_current#4] -- register_copy - jsr render_current + //SEG60 [110] phi (byte) current_ypos#9 = (byte~) current_ypos#86 [phi:main::@21->render_moving#4] -- register_copy + jsr render_moving //SEG61 [33] (byte*~) current_piece#73 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy play_spawn_current._3 lda PIECES,y @@ -10729,446 +11241,454 @@ main: { sta current_piece+1 //SEG62 [34] phi from main::@21 to main::@1 [phi:main::@21->main::@1] b1_from_b21: - //SEG63 [34] phi (byte) level_bcd#16 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:main::@21->main::@1#0] -- vbuz1=vbuc1 - lda #1 + //SEG63 [34] phi (byte) level_bcd#20 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#0] -- vbuz1=vbuc1 + lda #0 sta level_bcd - //SEG64 [34] phi (dword) score_bcd#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#1] -- vduz1=vbuc1 + //SEG64 [34] phi (byte) level#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#1] -- vbuz1=vbuc1 + lda #0 + sta level + //SEG65 [34] phi (dword) score_bcd#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#2] -- vduz1=vbuc1 lda #0 sta score_bcd lda #0 sta score_bcd+1 sta score_bcd+2 sta score_bcd+3 - //SEG65 [34] phi (word) lines_bcd#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#2] -- vwuz1=vbuc1 + //SEG66 [34] phi (word) lines_bcd#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#3] -- vwuz1=vbuc1 lda #<0 sta lines_bcd lda #>0 sta lines_bcd+1 - //SEG66 [34] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#3] -- vbuz1=vbuc1 + //SEG67 [34] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#4] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG67 [34] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#4] -- vbuz1=vbuc1 + //SEG68 [34] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#5] -- vbuz1=vbuc1 lda #0 sta keyboard_events_size - //SEG68 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#12 [phi:main::@21->main::@1#5] -- register_copy - //SEG69 [34] phi (byte) current_ypos#21 = (byte) current_ypos#18 [phi:main::@21->main::@1#6] -- register_copy - //SEG70 [34] phi (byte) current_xpos#10 = (byte) current_xpos#23 [phi:main::@21->main::@1#7] -- register_copy - //SEG71 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#16 [phi:main::@21->main::@1#8] -- register_copy - //SEG72 [34] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#9] -- vbuz1=vbuc1 + //SEG69 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#12 [phi:main::@21->main::@1#6] -- register_copy + //SEG70 [34] phi (byte) current_ypos#21 = (byte) current_ypos#18 [phi:main::@21->main::@1#7] -- register_copy + //SEG71 [34] phi (byte) current_xpos#10 = (byte) current_xpos#23 [phi:main::@21->main::@1#8] -- register_copy + //SEG72 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#16 [phi:main::@21->main::@1#9] -- register_copy + //SEG73 [34] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#10] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG73 [34] phi (byte*) current_piece#16 = (byte*~) current_piece#73 [phi:main::@21->main::@1#10] -- register_copy - //SEG74 [34] phi (byte) render_screen_render#17 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->main::@1#11] -- vbuz1=vbuc1 + //SEG74 [34] phi (byte*) current_piece#16 = (byte*~) current_piece#73 [phi:main::@21->main::@1#11] -- register_copy + //SEG75 [34] phi (byte) current_movedown_slow#12 = (byte) current_movedown_slow#1 [phi:main::@21->main::@1#12] -- register_copy + //SEG76 [34] phi (byte) render_screen_render#17 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->main::@1#13] -- vbuz1=vbuc1 lda #$40 sta render_screen_render - //SEG75 [34] phi (byte) render_screen_show#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#12] -- vbuz1=vbuc1 + //SEG77 [34] phi (byte) render_screen_show#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#14] -- vbuz1=vbuc1 lda #0 sta render_screen_show jmp b1 - //SEG76 [34] phi from main::@28 to main::@1 [phi:main::@28->main::@1] + //SEG78 [34] phi from main::@28 to main::@1 [phi:main::@28->main::@1] b1_from_b28: - //SEG77 [34] phi (byte) level_bcd#16 = (byte) level_bcd#11 [phi:main::@28->main::@1#0] -- register_copy - //SEG78 [34] phi (dword) score_bcd#14 = (dword) score_bcd#10 [phi:main::@28->main::@1#1] -- register_copy - //SEG79 [34] phi (word) lines_bcd#15 = (word) lines_bcd#11 [phi:main::@28->main::@1#2] -- register_copy - //SEG80 [34] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@28->main::@1#3] -- register_copy - //SEG81 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@28->main::@1#4] -- register_copy - //SEG82 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@28->main::@1#5] -- register_copy - //SEG83 [34] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@28->main::@1#6] -- register_copy - //SEG84 [34] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@28->main::@1#7] -- register_copy - //SEG85 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@28->main::@1#8] -- register_copy - //SEG86 [34] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@28->main::@1#9] -- register_copy - //SEG87 [34] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@28->main::@1#10] -- register_copy + //SEG79 [34] phi (byte) level_bcd#20 = (byte) level_bcd#13 [phi:main::@28->main::@1#0] -- register_copy + //SEG80 [34] phi (byte) level#19 = (byte) level#12 [phi:main::@28->main::@1#1] -- register_copy + //SEG81 [34] phi (dword) score_bcd#14 = (dword) score_bcd#10 [phi:main::@28->main::@1#2] -- register_copy + //SEG82 [34] phi (word) lines_bcd#15 = (word) lines_bcd#11 [phi:main::@28->main::@1#3] -- register_copy + //SEG83 [34] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@28->main::@1#4] -- register_copy + //SEG84 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@28->main::@1#5] -- register_copy + //SEG85 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@28->main::@1#6] -- register_copy + //SEG86 [34] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@28->main::@1#7] -- register_copy + //SEG87 [34] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@28->main::@1#8] -- register_copy + //SEG88 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@28->main::@1#9] -- register_copy + //SEG89 [34] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@28->main::@1#10] -- register_copy + //SEG90 [34] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@28->main::@1#11] -- register_copy + //SEG91 [34] phi (byte) current_movedown_slow#12 = (byte) current_movedown_slow#17 [phi:main::@28->main::@1#12] -- register_copy jmp b1 - //SEG88 main::@1 + //SEG92 main::@1 b1: jmp b4 - //SEG89 main::@4 + //SEG93 main::@4 b4: - //SEG90 [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG94 [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 - //SEG91 [36] phi from main::@4 to main::@6 [phi:main::@4->main::@6] + //SEG95 [36] phi from main::@4 to main::@6 [phi:main::@4->main::@6] b6_from_b4: jmp b6 - //SEG92 main::@6 + //SEG96 main::@6 b6: - //SEG93 [37] call render_show + //SEG97 [37] call render_show jsr render_show - //SEG94 [38] phi from main::@6 to main::@23 [phi:main::@6->main::@23] + //SEG98 [38] phi from main::@6 to main::@23 [phi:main::@6->main::@23] b23_from_b6: jmp b23 - //SEG95 main::@23 + //SEG99 main::@23 b23: - //SEG96 [39] call keyboard_event_scan - //SEG97 [335] phi from main::@23 to keyboard_event_scan [phi:main::@23->keyboard_event_scan] + //SEG100 [39] call keyboard_event_scan + //SEG101 [343] phi from main::@23 to keyboard_event_scan [phi:main::@23->keyboard_event_scan] keyboard_event_scan_from_b23: jsr keyboard_event_scan - //SEG98 [40] phi from main::@23 to main::@24 [phi:main::@23->main::@24] + //SEG102 [40] phi from main::@23 to main::@24 [phi:main::@23->main::@24] b24_from_b23: jmp b24 - //SEG99 main::@24 + //SEG103 main::@24 b24: - //SEG100 [41] call keyboard_event_get + //SEG104 [41] call keyboard_event_get jsr keyboard_event_get - //SEG101 [42] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 -- vbuz1=vbuz2 + //SEG105 [42] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 -- vbuz1=vbuz2 lda keyboard_event_get.return sta keyboard_event_get.return_3 jmp b25 - //SEG102 main::@25 + //SEG106 main::@25 b25: - //SEG103 [43] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuz2 + //SEG107 [43] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuz2 lda keyboard_event_get.return_3 sta key_event - //SEG104 [44] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 + //SEG108 [44] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_down.key_event - //SEG105 [45] call play_move_down + //SEG109 [45] call play_move_down jsr play_move_down - //SEG106 [46] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuz1=vbuz2 + //SEG110 [46] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuz1=vbuz2 lda play_move_down.return sta play_move_down.return_3 jmp b26 - //SEG107 main::@26 + //SEG111 main::@26 b26: - //SEG108 [47] (byte~) main::$12 ← (byte) play_move_down::return#3 -- vbuz1=vbuz2 + //SEG112 [47] (byte~) main::$12 ← (byte) play_move_down::return#3 -- vbuz1=vbuz2 lda play_move_down.return_3 sta _12 - //SEG109 [48] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 -- vbuz1=vbuc1_plus_vbuz2 + //SEG113 [48] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 -- vbuz1=vbuc1_plus_vbuz2 lda #0 clc adc _12 sta render - //SEG110 [49] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 + //SEG114 [49] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_leftright.key_event - //SEG111 [50] call play_move_leftright + //SEG115 [50] call play_move_leftright jsr play_move_leftright - //SEG112 [51] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 -- vbuz1=vbuz2 + //SEG116 [51] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 -- vbuz1=vbuz2 lda play_move_leftright.return sta play_move_leftright.return_4 jmp b27 - //SEG113 main::@27 + //SEG117 main::@27 b27: - //SEG114 [52] (byte~) main::$13 ← (byte) play_move_leftright::return#4 -- vbuz1=vbuz2 + //SEG118 [52] (byte~) main::$13 ← (byte) play_move_leftright::return#4 -- vbuz1=vbuz2 lda play_move_leftright.return_4 sta _13 - //SEG115 [53] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 -- vbuz1=vbuz2_plus_vbuz3 + //SEG119 [53] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 -- vbuz1=vbuz2_plus_vbuz3 lda render clc adc _13 sta render_2 - //SEG116 [54] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 + //SEG120 [54] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_rotate.key_event - //SEG117 [55] call play_move_rotate + //SEG121 [55] call play_move_rotate jsr play_move_rotate - //SEG118 [56] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 -- vbuz1=vbuz2 + //SEG122 [56] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 -- vbuz1=vbuz2 lda play_move_rotate.return sta play_move_rotate.return_4 jmp b28 - //SEG119 main::@28 + //SEG123 main::@28 b28: - //SEG120 [57] (byte~) main::$14 ← (byte) play_move_rotate::return#4 -- vbuz1=vbuz2 + //SEG124 [57] (byte~) main::$14 ← (byte) play_move_rotate::return#4 -- vbuz1=vbuz2 lda play_move_rotate.return_4 sta _14 - //SEG121 [58] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 -- vbuz1=vbuz2_plus_vbuz3 + //SEG125 [58] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 -- vbuz1=vbuz2_plus_vbuz3 lda render_2 clc adc _14 sta render_3 - //SEG122 [59] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 -- vbuz1_eq_0_then_la1 + //SEG126 [59] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 -- vbuz1_eq_0_then_la1 lda render_3 cmp #0 beq b1_from_b28 jmp b13 - //SEG123 main::@13 + //SEG127 main::@13 b13: - //SEG124 [60] (byte~) render_screen_render#65 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 + //SEG128 [60] (byte~) render_screen_render#65 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 lda render_screen_render sta render_screen_render_65 - //SEG125 [61] call render_playfield - //SEG126 [133] phi from main::@13 to render_playfield [phi:main::@13->render_playfield] + //SEG129 [61] call render_playfield + //SEG130 [133] phi from main::@13 to render_playfield [phi:main::@13->render_playfield] render_playfield_from_b13: - //SEG127 [133] phi (byte) render_screen_render#21 = (byte~) render_screen_render#65 [phi:main::@13->render_playfield#0] -- register_copy + //SEG131 [133] phi (byte) render_screen_render#21 = (byte~) render_screen_render#65 [phi:main::@13->render_playfield#0] -- register_copy jsr render_playfield jmp b29 - //SEG128 main::@29 + //SEG132 main::@29 b29: - //SEG129 [62] (byte~) current_ypos#87 ← (byte) current_ypos#13 -- vbuz1=vbuz2 + //SEG133 [62] (byte~) current_ypos#87 ← (byte) current_ypos#13 -- vbuz1=vbuz2 lda current_ypos sta current_ypos_87 - //SEG130 [63] (byte~) render_screen_render#64 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 + //SEG134 [63] (byte~) render_screen_render#64 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 lda render_screen_render sta render_screen_render_64 - //SEG131 [64] (byte~) current_xpos#113 ← (byte) current_xpos#19 -- vbuz1=vbuz2 + //SEG135 [64] (byte~) current_xpos#113 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda current_xpos sta current_xpos_113 - //SEG132 [65] (byte*~) current_piece_gfx#103 ← (byte*) current_piece_gfx#14 -- pbuz1=pbuz2 + //SEG136 [65] (byte*~) current_piece_gfx#103 ← (byte*) current_piece_gfx#14 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_103 lda current_piece_gfx+1 sta current_piece_gfx_103+1 - //SEG133 [66] (byte~) current_piece_char#91 ← (byte) current_piece_char#1 -- vbuz1=vbuz2 + //SEG137 [66] (byte~) current_piece_char#91 ← (byte) current_piece_char#1 -- vbuz1=vbuz2 lda current_piece_char sta current_piece_char_91 - //SEG134 [67] call render_current - //SEG135 [110] phi from main::@29 to render_current [phi:main::@29->render_current] - render_current_from_b29: - //SEG136 [110] phi (byte) current_piece_char#64 = (byte~) current_piece_char#91 [phi:main::@29->render_current#0] -- register_copy - //SEG137 [110] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#103 [phi:main::@29->render_current#1] -- register_copy - //SEG138 [110] phi (byte) current_xpos#47 = (byte~) current_xpos#113 [phi:main::@29->render_current#2] -- register_copy - //SEG139 [110] phi (byte) render_screen_render#30 = (byte~) render_screen_render#64 [phi:main::@29->render_current#3] -- register_copy - //SEG140 [110] phi (byte) current_ypos#9 = (byte~) current_ypos#87 [phi:main::@29->render_current#4] -- register_copy - jsr render_current - //SEG141 [68] phi from main::@29 to main::@30 [phi:main::@29->main::@30] + //SEG138 [67] call render_moving + //SEG139 [110] phi from main::@29 to render_moving [phi:main::@29->render_moving] + render_moving_from_b29: + //SEG140 [110] phi (byte) current_piece_char#64 = (byte~) current_piece_char#91 [phi:main::@29->render_moving#0] -- register_copy + //SEG141 [110] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#103 [phi:main::@29->render_moving#1] -- register_copy + //SEG142 [110] phi (byte) current_xpos#47 = (byte~) current_xpos#113 [phi:main::@29->render_moving#2] -- register_copy + //SEG143 [110] phi (byte) render_screen_render#30 = (byte~) render_screen_render#64 [phi:main::@29->render_moving#3] -- register_copy + //SEG144 [110] phi (byte) current_ypos#9 = (byte~) current_ypos#87 [phi:main::@29->render_moving#4] -- register_copy + jsr render_moving + //SEG145 [68] phi from main::@29 to main::@30 [phi:main::@29->main::@30] b30_from_b29: jmp b30 - //SEG142 main::@30 + //SEG146 main::@30 b30: - //SEG143 [69] call render_score + //SEG147 [69] call render_score jsr render_score - //SEG144 [70] phi from main::@30 to main::@31 [phi:main::@30->main::@31] + //SEG148 [70] phi from main::@30 to main::@31 [phi:main::@30->main::@31] b31_from_b30: jmp b31 - //SEG145 main::@31 + //SEG149 main::@31 b31: - //SEG146 [71] call render_screen_swap + //SEG150 [71] call render_screen_swap jsr render_screen_swap - //SEG147 [34] phi from main::@31 to main::@1 [phi:main::@31->main::@1] + //SEG151 [34] phi from main::@31 to main::@1 [phi:main::@31->main::@1] b1_from_b31: - //SEG148 [34] phi (byte) level_bcd#16 = (byte) level_bcd#11 [phi:main::@31->main::@1#0] -- register_copy - //SEG149 [34] phi (dword) score_bcd#14 = (dword) score_bcd#10 [phi:main::@31->main::@1#1] -- register_copy - //SEG150 [34] phi (word) lines_bcd#15 = (word) lines_bcd#11 [phi:main::@31->main::@1#2] -- register_copy - //SEG151 [34] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@31->main::@1#3] -- register_copy - //SEG152 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@31->main::@1#4] -- register_copy - //SEG153 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@31->main::@1#5] -- register_copy - //SEG154 [34] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@31->main::@1#6] -- register_copy - //SEG155 [34] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@31->main::@1#7] -- register_copy - //SEG156 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@31->main::@1#8] -- register_copy - //SEG157 [34] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@31->main::@1#9] -- register_copy - //SEG158 [34] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@31->main::@1#10] -- register_copy - //SEG159 [34] phi (byte) render_screen_render#17 = (byte) render_screen_render#11 [phi:main::@31->main::@1#11] -- register_copy - //SEG160 [34] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@31->main::@1#12] -- register_copy + //SEG152 [34] phi (byte) level_bcd#20 = (byte) level_bcd#13 [phi:main::@31->main::@1#0] -- register_copy + //SEG153 [34] phi (byte) level#19 = (byte) level#12 [phi:main::@31->main::@1#1] -- register_copy + //SEG154 [34] phi (dword) score_bcd#14 = (dword) score_bcd#10 [phi:main::@31->main::@1#2] -- register_copy + //SEG155 [34] phi (word) lines_bcd#15 = (word) lines_bcd#11 [phi:main::@31->main::@1#3] -- register_copy + //SEG156 [34] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@31->main::@1#4] -- register_copy + //SEG157 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@31->main::@1#5] -- register_copy + //SEG158 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@31->main::@1#6] -- register_copy + //SEG159 [34] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@31->main::@1#7] -- register_copy + //SEG160 [34] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@31->main::@1#8] -- register_copy + //SEG161 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@31->main::@1#9] -- register_copy + //SEG162 [34] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@31->main::@1#10] -- register_copy + //SEG163 [34] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@31->main::@1#11] -- register_copy + //SEG164 [34] phi (byte) current_movedown_slow#12 = (byte) current_movedown_slow#17 [phi:main::@31->main::@1#12] -- register_copy + //SEG165 [34] phi (byte) render_screen_render#17 = (byte) render_screen_render#11 [phi:main::@31->main::@1#13] -- register_copy + //SEG166 [34] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@31->main::@1#14] -- register_copy jmp b1 } -//SEG161 render_screen_swap +//SEG167 render_screen_swap render_screen_swap: { - //SEG162 [72] (byte) render_screen_render#11 ← (byte) render_screen_render#17 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 + //SEG168 [72] (byte) render_screen_render#11 ← (byte) render_screen_render#17 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 lda render_screen_render eor #$40 sta render_screen_render - //SEG163 [73] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 + //SEG169 [73] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 lda render_screen_show eor #$40 sta render_screen_show jmp breturn - //SEG164 render_screen_swap::@return + //SEG170 render_screen_swap::@return breturn: - //SEG165 [74] return + //SEG171 [74] return rts } -//SEG166 render_score +//SEG172 render_score render_score: { .label score_bytes = score_bcd .const score_offset = $28*5+$1c .const lines_offset = $28*1+$16 .const level_offset = $28*$13+$1f .label screen = 5 - //SEG167 [75] if((byte) render_screen_render#17==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_score::@2 -- vbuz1_eq_0_then_la1 + //SEG173 [75] if((byte) render_screen_render#17==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_score::@2 -- vbuz1_eq_0_then_la1 lda render_screen_render cmp #0 beq b2_from_render_score - //SEG168 [76] phi from render_score to render_score::@3 [phi:render_score->render_score::@3] + //SEG174 [76] phi from render_score to render_score::@3 [phi:render_score->render_score::@3] b3_from_render_score: jmp b3 - //SEG169 render_score::@3 + //SEG175 render_score::@3 b3: - //SEG170 [77] phi from render_score::@3 to render_score::@2 [phi:render_score::@3->render_score::@2] + //SEG176 [77] phi from render_score::@3 to render_score::@2 [phi:render_score::@3->render_score::@2] b2_from_b3: - //SEG171 [77] phi (byte*) render_score::screen#2 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_score::@3->render_score::@2#0] -- pbuz1=pbuc1 + //SEG177 [77] phi (byte*) render_score::screen#2 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_score::@3->render_score::@2#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2 sta screen+1 jmp b2 - //SEG172 [77] phi from render_score to render_score::@2 [phi:render_score->render_score::@2] + //SEG178 [77] phi from render_score to render_score::@2 [phi:render_score->render_score::@2] b2_from_render_score: - //SEG173 [77] phi (byte*) render_score::screen#2 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_score->render_score::@2#0] -- pbuz1=pbuc1 + //SEG179 [77] phi (byte*) render_score::screen#2 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_score->render_score::@2#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1 sta screen+1 jmp b2 - //SEG174 render_score::@2 + //SEG180 render_score::@2 b2: - //SEG175 [78] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 -- pbuz1=pbuz2 + //SEG181 [78] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 -- pbuz1=pbuz2 lda screen sta render_bcd.screen lda screen+1 sta render_bcd.screen+1 - //SEG176 [79] (byte) render_bcd::bcd#0 ← *((const byte*) render_score::score_bytes#0+(byte/signed byte/word/signed word/dword/signed dword) 2) -- vbuz1=_deref_pbuc1 + //SEG182 [79] (byte) render_bcd::bcd#0 ← *((const byte*) render_score::score_bytes#0+(byte/signed byte/word/signed word/dword/signed dword) 2) -- vbuz1=_deref_pbuc1 lda score_bytes+2 sta render_bcd.bcd - //SEG177 [80] call render_bcd - //SEG178 [97] phi from render_score::@2 to render_bcd [phi:render_score::@2->render_bcd] + //SEG183 [80] call render_bcd + //SEG184 [97] phi from render_score::@2 to render_bcd [phi:render_score::@2->render_bcd] render_bcd_from_b2: - //SEG179 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#0 [phi:render_score::@2->render_bcd#0] -- register_copy - //SEG180 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@2->render_bcd#1] -- vbuz1=vbuc1 + //SEG185 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#0 [phi:render_score::@2->render_bcd#0] -- register_copy + //SEG186 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@2->render_bcd#1] -- vbuz1=vbuc1 lda #0 sta render_bcd.only_low - //SEG181 [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset#0 [phi:render_score::@2->render_bcd#2] -- vwuz1=vwuc1 + //SEG187 [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset#0 [phi:render_score::@2->render_bcd#2] -- vwuz1=vwuc1 lda #score_offset sta render_bcd.offset+1 - //SEG182 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#0 [phi:render_score::@2->render_bcd#3] -- register_copy + //SEG188 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#0 [phi:render_score::@2->render_bcd#3] -- register_copy jsr render_bcd jmp b5 - //SEG183 render_score::@5 + //SEG189 render_score::@5 b5: - //SEG184 [81] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#2 -- pbuz1=pbuz2 + //SEG190 [81] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#2 -- pbuz1=pbuz2 lda screen sta render_bcd.screen lda screen+1 sta render_bcd.screen+1 - //SEG185 [82] (byte) render_bcd::bcd#1 ← *((const byte*) render_score::score_bytes#0+(byte/signed byte/word/signed word/dword/signed dword) 1) -- vbuz1=_deref_pbuc1 + //SEG191 [82] (byte) render_bcd::bcd#1 ← *((const byte*) render_score::score_bytes#0+(byte/signed byte/word/signed word/dword/signed dword) 1) -- vbuz1=_deref_pbuc1 lda score_bytes+1 sta render_bcd.bcd - //SEG186 [83] call render_bcd - //SEG187 [97] phi from render_score::@5 to render_bcd [phi:render_score::@5->render_bcd] + //SEG192 [83] call render_bcd + //SEG193 [97] phi from render_score::@5 to render_bcd [phi:render_score::@5->render_bcd] render_bcd_from_b5: - //SEG188 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#1 [phi:render_score::@5->render_bcd#0] -- register_copy - //SEG189 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@5->render_bcd#1] -- vbuz1=vbuc1 + //SEG194 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#1 [phi:render_score::@5->render_bcd#0] -- register_copy + //SEG195 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@5->render_bcd#1] -- vbuz1=vbuc1 lda #0 sta render_bcd.only_low - //SEG190 [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_score::@5->render_bcd#2] -- vwuz1=vbuc1 + //SEG196 [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_score::@5->render_bcd#2] -- vwuz1=vbuc1 lda #score_offset+2 sta render_bcd.offset+1 - //SEG191 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#1 [phi:render_score::@5->render_bcd#3] -- register_copy + //SEG197 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#1 [phi:render_score::@5->render_bcd#3] -- register_copy jsr render_bcd jmp b6 - //SEG192 render_score::@6 + //SEG198 render_score::@6 b6: - //SEG193 [84] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#2 -- pbuz1=pbuz2 + //SEG199 [84] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#2 -- pbuz1=pbuz2 lda screen sta render_bcd.screen lda screen+1 sta render_bcd.screen+1 - //SEG194 [85] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes#0) -- vbuz1=_deref_pbuc1 + //SEG200 [85] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes#0) -- vbuz1=_deref_pbuc1 lda score_bytes sta render_bcd.bcd - //SEG195 [86] call render_bcd - //SEG196 [97] phi from render_score::@6 to render_bcd [phi:render_score::@6->render_bcd] + //SEG201 [86] call render_bcd + //SEG202 [97] phi from render_score::@6 to render_bcd [phi:render_score::@6->render_bcd] render_bcd_from_b6: - //SEG197 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#2 [phi:render_score::@6->render_bcd#0] -- register_copy - //SEG198 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@6->render_bcd#1] -- vbuz1=vbuc1 + //SEG203 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#2 [phi:render_score::@6->render_bcd#0] -- register_copy + //SEG204 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@6->render_bcd#1] -- vbuz1=vbuc1 lda #0 sta render_bcd.only_low - //SEG199 [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 4 [phi:render_score::@6->render_bcd#2] -- vwuz1=vbuc1 + //SEG205 [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 4 [phi:render_score::@6->render_bcd#2] -- vwuz1=vbuc1 lda #score_offset+4 sta render_bcd.offset+1 - //SEG200 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#2 [phi:render_score::@6->render_bcd#3] -- register_copy + //SEG206 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#2 [phi:render_score::@6->render_bcd#3] -- register_copy jsr render_bcd jmp b7 - //SEG201 render_score::@7 + //SEG207 render_score::@7 b7: - //SEG202 [87] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#11 -- vbuz1=_hi_vwuz2 + //SEG208 [87] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#11 -- vbuz1=_hi_vwuz2 lda lines_bcd+1 sta render_bcd.bcd - //SEG203 [88] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#2 -- pbuz1=pbuz2 + //SEG209 [88] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#2 -- pbuz1=pbuz2 lda screen sta render_bcd.screen lda screen+1 sta render_bcd.screen+1 - //SEG204 [89] call render_bcd - //SEG205 [97] phi from render_score::@7 to render_bcd [phi:render_score::@7->render_bcd] + //SEG210 [89] call render_bcd + //SEG211 [97] phi from render_score::@7 to render_bcd [phi:render_score::@7->render_bcd] render_bcd_from_b7: - //SEG206 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#3 [phi:render_score::@7->render_bcd#0] -- register_copy - //SEG207 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:render_score::@7->render_bcd#1] -- vbuz1=vbuc1 + //SEG212 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#3 [phi:render_score::@7->render_bcd#0] -- register_copy + //SEG213 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:render_score::@7->render_bcd#1] -- vbuz1=vbuc1 lda #1 sta render_bcd.only_low - //SEG208 [97] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset#0 [phi:render_score::@7->render_bcd#2] -- vwuz1=vwuc1 + //SEG214 [97] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset#0 [phi:render_score::@7->render_bcd#2] -- vwuz1=vwuc1 lda #lines_offset sta render_bcd.offset+1 - //SEG209 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#3 [phi:render_score::@7->render_bcd#3] -- register_copy + //SEG215 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#3 [phi:render_score::@7->render_bcd#3] -- register_copy jsr render_bcd jmp b8 - //SEG210 render_score::@8 + //SEG216 render_score::@8 b8: - //SEG211 [90] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#11 -- vbuz1=_lo_vwuz2 + //SEG217 [90] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#11 -- vbuz1=_lo_vwuz2 lda lines_bcd sta render_bcd.bcd - //SEG212 [91] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#2 -- pbuz1=pbuz2 + //SEG218 [91] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#2 -- pbuz1=pbuz2 lda screen sta render_bcd.screen lda screen+1 sta render_bcd.screen+1 - //SEG213 [92] call render_bcd - //SEG214 [97] phi from render_score::@8 to render_bcd [phi:render_score::@8->render_bcd] + //SEG219 [92] call render_bcd + //SEG220 [97] phi from render_score::@8 to render_bcd [phi:render_score::@8->render_bcd] render_bcd_from_b8: - //SEG215 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#4 [phi:render_score::@8->render_bcd#0] -- register_copy - //SEG216 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@8->render_bcd#1] -- vbuz1=vbuc1 + //SEG221 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#4 [phi:render_score::@8->render_bcd#0] -- register_copy + //SEG222 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@8->render_bcd#1] -- vbuz1=vbuc1 lda #0 sta render_bcd.only_low - //SEG217 [97] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:render_score::@8->render_bcd#2] -- vwuz1=vbuc1 + //SEG223 [97] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:render_score::@8->render_bcd#2] -- vwuz1=vbuc1 lda #lines_offset+1 sta render_bcd.offset+1 - //SEG218 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#4 [phi:render_score::@8->render_bcd#3] -- register_copy + //SEG224 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#4 [phi:render_score::@8->render_bcd#3] -- register_copy jsr render_bcd jmp b9 - //SEG219 render_score::@9 + //SEG225 render_score::@9 b9: - //SEG220 [93] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#2 -- pbuz1=pbuz2 + //SEG226 [93] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#2 -- pbuz1=pbuz2 lda screen sta render_bcd.screen lda screen+1 sta render_bcd.screen+1 - //SEG221 [94] (byte) render_bcd::bcd#5 ← (byte) level_bcd#11 -- vbuz1=vbuz2 + //SEG227 [94] (byte) render_bcd::bcd#5 ← (byte) level_bcd#13 -- vbuz1=vbuz2 lda level_bcd sta render_bcd.bcd - //SEG222 [95] call render_bcd - //SEG223 [97] phi from render_score::@9 to render_bcd [phi:render_score::@9->render_bcd] + //SEG228 [95] call render_bcd + //SEG229 [97] phi from render_score::@9 to render_bcd [phi:render_score::@9->render_bcd] render_bcd_from_b9: - //SEG224 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#5 [phi:render_score::@9->render_bcd#0] -- register_copy - //SEG225 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@9->render_bcd#1] -- vbuz1=vbuc1 + //SEG230 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#5 [phi:render_score::@9->render_bcd#0] -- register_copy + //SEG231 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@9->render_bcd#1] -- vbuz1=vbuc1 lda #0 sta render_bcd.only_low - //SEG226 [97] phi (word) render_bcd::offset#6 = (const word) render_score::level_offset#0 [phi:render_score::@9->render_bcd#2] -- vwuz1=vwuc1 + //SEG232 [97] phi (word) render_bcd::offset#6 = (const word) render_score::level_offset#0 [phi:render_score::@9->render_bcd#2] -- vwuz1=vwuc1 lda #level_offset sta render_bcd.offset+1 - //SEG227 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#5 [phi:render_score::@9->render_bcd#3] -- register_copy + //SEG233 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#5 [phi:render_score::@9->render_bcd#3] -- register_copy jsr render_bcd jmp breturn - //SEG228 render_score::@return + //SEG234 render_score::@return breturn: - //SEG229 [96] return + //SEG235 [96] return rts } -//SEG230 render_bcd +//SEG236 render_bcd render_bcd: { .const ZERO_CHAR = $33 - .label _3 = $7d - .label _4 = $7e - .label _5 = $7f - .label _6 = $80 + .label _3 = $7f + .label _4 = $80 + .label _5 = $81 + .label _6 = $82 .label screen = 7 .label bcd = $c .label screen_pos = $d - .label screen_pos_1 = $81 + .label screen_pos_1 = $83 .label offset = 9 .label only_low = $b - //SEG231 [98] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 -- pbuz1=pbuz2_plus_vwuz3 + //SEG237 [98] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 -- pbuz1=pbuz2_plus_vwuz3 lda screen clc adc offset @@ -11176,55 +11696,55 @@ render_bcd: { lda screen+1 adc offset+1 sta screen_pos+1 - //SEG232 [99] if((byte) render_bcd::only_low#6!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_bcd::@1 -- vbuz1_neq_0_then_la1 + //SEG238 [99] if((byte) render_bcd::only_low#6!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_bcd::@1 -- vbuz1_neq_0_then_la1 lda only_low cmp #0 bne b1_from_render_bcd jmp b2 - //SEG233 render_bcd::@2 + //SEG239 render_bcd::@2 b2: - //SEG234 [100] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz2_ror_4 + //SEG240 [100] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz2_ror_4 lda bcd lsr lsr lsr lsr sta _3 - //SEG235 [101] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$3 -- vbuz1=vbuc1_plus_vbuz2 + //SEG241 [101] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$3 -- vbuz1=vbuc1_plus_vbuz2 lda #ZERO_CHAR clc adc _3 sta _4 - //SEG236 [102] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 -- _deref_pbuz1=vbuz2 + //SEG242 [102] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 -- _deref_pbuz1=vbuz2 lda _4 ldy #0 sta (screen_pos),y - //SEG237 [103] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 -- pbuz1=_inc_pbuz1 + //SEG243 [103] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 -- pbuz1=_inc_pbuz1 inc screen_pos bne !+ inc screen_pos+1 !: - //SEG238 [104] phi from render_bcd render_bcd::@2 to render_bcd::@1 [phi:render_bcd/render_bcd::@2->render_bcd::@1] + //SEG244 [104] phi from render_bcd render_bcd::@2 to render_bcd::@1 [phi:render_bcd/render_bcd::@2->render_bcd::@1] b1_from_render_bcd: b1_from_b2: - //SEG239 [104] phi (byte*) render_bcd::screen_pos#3 = (byte*) render_bcd::screen_pos#0 [phi:render_bcd/render_bcd::@2->render_bcd::@1#0] -- register_copy + //SEG245 [104] phi (byte*) render_bcd::screen_pos#3 = (byte*) render_bcd::screen_pos#0 [phi:render_bcd/render_bcd::@2->render_bcd::@1#0] -- register_copy jmp b1 - //SEG240 render_bcd::@1 + //SEG246 render_bcd::@1 b1: - //SEG241 [105] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG247 [105] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 lda #$f and bcd sta _5 - //SEG242 [106] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 -- vbuz1=vbuc1_plus_vbuz2 + //SEG248 [106] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 -- vbuz1=vbuc1_plus_vbuz2 lda #ZERO_CHAR clc adc _5 sta _6 - //SEG243 [107] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 -- _deref_pbuz1=vbuz2 + //SEG249 [107] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 -- _deref_pbuz1=vbuz2 lda _6 ldy #0 sta (screen_pos),y - //SEG244 [108] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 -- pbuz1=_inc_pbuz2 + //SEG250 [108] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 -- pbuz1=_inc_pbuz2 lda screen_pos clc adc #1 @@ -11233,337 +11753,337 @@ render_bcd: { adc #0 sta screen_pos_1+1 jmp breturn - //SEG245 render_bcd::@return + //SEG251 render_bcd::@return breturn: - //SEG246 [109] return + //SEG252 [109] return rts } -//SEG247 render_current -render_current: { - .label _5 = $83 +//SEG253 render_moving +render_moving: { + .label _5 = $85 .label ypos2 = $15 - .label screen_line = $84 + .label screen_line = $86 .label xpos = $18 .label i = $17 .label l = $16 - .label current_cell = $86 + .label current_cell = $88 .label c = $19 - //SEG248 [111] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG254 [111] (byte) render_moving::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda current_ypos_9 asl sta ypos2 - //SEG249 [112] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] - b1_from_render_current: - //SEG250 [112] phi (byte) render_current::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 + //SEG255 [112] phi from render_moving to render_moving::@1 [phi:render_moving->render_moving::@1] + b1_from_render_moving: + //SEG256 [112] phi (byte) render_moving::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving->render_moving::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG251 [112] phi (byte) render_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 + //SEG257 [112] phi (byte) render_moving::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving->render_moving::@1#1] -- vbuz1=vbuc1 lda #0 sta i - //SEG252 [112] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy + //SEG258 [112] phi (byte) render_moving::ypos2#2 = (byte) render_moving::ypos2#0 [phi:render_moving->render_moving::@1#2] -- register_copy jmp b1 - //SEG253 [112] phi from render_current::@3 to render_current::@1 [phi:render_current::@3->render_current::@1] + //SEG259 [112] phi from render_moving::@3 to render_moving::@1 [phi:render_moving::@3->render_moving::@1] b1_from_b3: - //SEG254 [112] phi (byte) render_current::l#4 = (byte) render_current::l#1 [phi:render_current::@3->render_current::@1#0] -- register_copy - //SEG255 [112] phi (byte) render_current::i#3 = (byte) render_current::i#8 [phi:render_current::@3->render_current::@1#1] -- register_copy - //SEG256 [112] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@3->render_current::@1#2] -- register_copy + //SEG260 [112] phi (byte) render_moving::l#4 = (byte) render_moving::l#1 [phi:render_moving::@3->render_moving::@1#0] -- register_copy + //SEG261 [112] phi (byte) render_moving::i#3 = (byte) render_moving::i#8 [phi:render_moving::@3->render_moving::@1#1] -- register_copy + //SEG262 [112] phi (byte) render_moving::ypos2#2 = (byte) render_moving::ypos2#1 [phi:render_moving::@3->render_moving::@1#2] -- register_copy jmp b1 - //SEG257 render_current::@1 + //SEG263 render_moving::@1 b1: - //SEG258 [113] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 -- vbuz1_gt_vbuc1_then_la1 + //SEG264 [113] 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 lda ypos2 cmp #2 beq !+ bcs b13 !: jmp b7 - //SEG259 render_current::@7 + //SEG265 render_moving::@7 b7: - //SEG260 [114] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz1_plus_vbuc1 + //SEG266 [114] (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 - //SEG261 [115] phi from render_current::@5 render_current::@7 to render_current::@3 [phi:render_current::@5/render_current::@7->render_current::@3] + //SEG267 [115] phi from render_moving::@5 render_moving::@7 to render_moving::@3 [phi:render_moving::@5/render_moving::@7->render_moving::@3] b3_from_b5: b3_from_b7: - //SEG262 [115] phi (byte) render_current::i#8 = (byte) render_current::i#10 [phi:render_current::@5/render_current::@7->render_current::@3#0] -- register_copy + //SEG268 [115] phi (byte) render_moving::i#8 = (byte) render_moving::i#10 [phi:render_moving::@5/render_moving::@7->render_moving::@3#0] -- register_copy jmp b3 - //SEG263 render_current::@3 + //SEG269 render_moving::@3 b3: - //SEG264 [116] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG270 [116] (byte) render_moving::ypos2#1 ← (byte) render_moving::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG265 [117] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 -- vbuz1=_inc_vbuz1 + //SEG271 [117] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG266 [118] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG272 [118] if((byte) render_moving::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b1_from_b3 jmp breturn - //SEG267 render_current::@return + //SEG273 render_moving::@return breturn: - //SEG268 [119] return + //SEG274 [119] return rts - //SEG269 render_current::@13 + //SEG275 render_moving::@13 b13: - //SEG270 [120] if((byte) render_current::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG276 [120] 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 - //SEG271 render_current::@2 + //SEG277 render_moving::@2 b2: - //SEG272 [121] (byte~) render_current::$5 ← (byte) render_screen_render#30 + (byte) render_current::ypos2#2 -- vbuz1=vbuz2_plus_vbuz3 + //SEG278 [121] (byte~) render_moving::$5 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 -- vbuz1=vbuz2_plus_vbuz3 lda render_screen_render_30 clc adc ypos2 sta _5 - //SEG273 [122] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG279 [122] (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 lda screen_lines_1,y sta screen_line lda screen_lines_1+1,y sta screen_line+1 - //SEG274 [123] (byte) render_current::xpos#0 ← (byte) current_xpos#47 -- vbuz1=vbuz2 + //SEG280 [123] (byte) render_moving::xpos#0 ← (byte) current_xpos#47 -- vbuz1=vbuz2 lda current_xpos_47 sta xpos - //SEG275 [124] phi from render_current::@2 to render_current::@4 [phi:render_current::@2->render_current::@4] + //SEG281 [124] phi from render_moving::@2 to render_moving::@4 [phi:render_moving::@2->render_moving::@4] b4_from_b2: - //SEG276 [124] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@2->render_current::@4#0] -- vbuz1=vbuc1 + //SEG282 [124] 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 - //SEG277 [124] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@2->render_current::@4#1] -- register_copy - //SEG278 [124] phi (byte) render_current::i#4 = (byte) render_current::i#3 [phi:render_current::@2->render_current::@4#2] -- register_copy + //SEG283 [124] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#0 [phi:render_moving::@2->render_moving::@4#1] -- register_copy + //SEG284 [124] phi (byte) render_moving::i#4 = (byte) render_moving::i#3 [phi:render_moving::@2->render_moving::@4#2] -- register_copy jmp b4 - //SEG279 [124] phi from render_current::@5 to render_current::@4 [phi:render_current::@5->render_current::@4] + //SEG285 [124] phi from render_moving::@5 to render_moving::@4 [phi:render_moving::@5->render_moving::@4] b4_from_b5: - //SEG280 [124] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@5->render_current::@4#0] -- register_copy - //SEG281 [124] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@5->render_current::@4#1] -- register_copy - //SEG282 [124] phi (byte) render_current::i#4 = (byte) render_current::i#10 [phi:render_current::@5->render_current::@4#2] -- register_copy + //SEG286 [124] phi (byte) render_moving::c#2 = (byte) render_moving::c#1 [phi:render_moving::@5->render_moving::@4#0] -- register_copy + //SEG287 [124] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#1 [phi:render_moving::@5->render_moving::@4#1] -- register_copy + //SEG288 [124] phi (byte) render_moving::i#4 = (byte) render_moving::i#10 [phi:render_moving::@5->render_moving::@4#2] -- register_copy jmp b4 - //SEG283 render_current::@4 + //SEG289 render_moving::@4 b4: - //SEG284 [125] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) -- vbuz1=pbuz2_derefidx_vbuz3 + //SEG290 [125] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_moving::i#4) -- vbuz1=pbuz2_derefidx_vbuz3 ldy i lda (current_piece_gfx_53),y sta current_cell - //SEG285 [126] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 -- vbuz1=_inc_vbuz1 + //SEG291 [126] (byte) render_moving::i#10 ← ++ (byte) render_moving::i#4 -- vbuz1=_inc_vbuz1 inc i - //SEG286 [127] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 -- vbuz1_eq_0_then_la1 + //SEG292 [127] 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 - //SEG287 render_current::@9 + //SEG293 render_moving::@9 b9: - //SEG288 [128] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 -- vbuz1_ge_vbuc1_then_la1 + //SEG294 [128] 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 - //SEG289 render_current::@10 + //SEG295 render_moving::@10 b10: - //SEG290 [129] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#64 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG296 [129] *((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 - //SEG291 render_current::@5 + //SEG297 render_moving::@5 b5: - //SEG292 [130] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG298 [130] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG293 [131] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuz1=_inc_vbuz1 + //SEG299 [131] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG294 [132] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG300 [132] 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 } -//SEG295 render_playfield +//SEG301 render_playfield render_playfield: { - .label _2 = $87 - .label _3 = $88 + .label _2 = $89 + .label _3 = $8a .label screen_line = $1d .label i = $1c .label c = $1f .label l = $1b - //SEG296 [134] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + //SEG302 [134] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] b1_from_render_playfield: - //SEG297 [134] 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 + //SEG303 [134] 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 - //SEG298 [134] 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 + //SEG304 [134] 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 - //SEG299 [134] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG305 [134] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] b1_from_b3: - //SEG300 [134] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG301 [134] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //SEG306 [134] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + //SEG307 [134] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy jmp b1 - //SEG302 render_playfield::@1 + //SEG308 render_playfield::@1 b1: - //SEG303 [135] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG309 [135] (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 - //SEG304 [136] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 -- vbuz1=vbuz2_plus_vbuz3 + //SEG310 [136] (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 - //SEG305 [137] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG311 [137] (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 - //SEG306 [138] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG312 [138] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] b2_from_b1: - //SEG307 [138] 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 + //SEG313 [138] 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 - //SEG308 [138] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG309 [138] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //SEG314 [138] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + //SEG315 [138] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy jmp b2 - //SEG310 [138] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG316 [138] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] b2_from_b2: - //SEG311 [138] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG312 [138] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG313 [138] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //SEG317 [138] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + //SEG318 [138] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + //SEG319 [138] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy jmp b2 - //SEG314 render_playfield::@2 + //SEG320 render_playfield::@2 b2: - //SEG315 [139] *((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 + //SEG321 [139] *((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 - //SEG316 [140] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 + //SEG322 [140] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 inc screen_line bne !+ inc screen_line+1 !: - //SEG317 [141] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG323 [141] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG318 [142] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 + //SEG324 [142] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG319 [143] 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 + //SEG325 [143] 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 - //SEG320 render_playfield::@3 + //SEG326 render_playfield::@3 b3: - //SEG321 [144] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG327 [144] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG322 [145] 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 + //SEG328 [145] 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 - //SEG323 render_playfield::@return + //SEG329 render_playfield::@return breturn: - //SEG324 [146] return + //SEG330 [146] return rts } -//SEG325 play_move_rotate +//SEG331 play_move_rotate play_move_rotate: { - .label _2 = $89 - .label _4 = $8c - .label _6 = $8b + .label _2 = $8b + .label _4 = $8e + .label _6 = $8d .label orientation = $21 .label return = $20 - .label key_event = $79 - .label return_4 = $7a - //SEG326 [147] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuz1_eq_vbuc1_then_la1 + .label key_event = $7b + .label return_4 = $7c + //SEG332 [147] 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 - //SEG327 play_move_rotate::@6 + //SEG333 play_move_rotate::@6 b6: - //SEG328 [148] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuz1_eq_vbuc1_then_la1 + //SEG334 [148] 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 - //SEG329 [149] 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] + //SEG335 [149] 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: - //SEG330 [149] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#1 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy - //SEG331 [149] phi (byte) current_orientation#19 = (byte) current_orientation#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy - //SEG332 [149] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuz1=vbuc1 + //SEG336 [149] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#1 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + //SEG337 [149] phi (byte) current_orientation#19 = (byte) current_orientation#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy + //SEG338 [149] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuz1=vbuc1 lda #0 sta return jmp breturn - //SEG333 play_move_rotate::@return + //SEG339 play_move_rotate::@return breturn: - //SEG334 [150] return + //SEG340 [150] return rts - //SEG335 play_move_rotate::@2 + //SEG341 play_move_rotate::@2 b2: - //SEG336 [151] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_plus_vbuc1 + //SEG342 [151] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_plus_vbuc1 lda #$10 clc adc current_orientation sta _2 - //SEG337 [152] (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 + //SEG343 [152] (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 - //SEG338 [153] 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] + //SEG344 [153] 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: - //SEG339 [153] 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 + //SEG345 [153] 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 - //SEG340 play_move_rotate::@4 + //SEG346 play_move_rotate::@4 b4: - //SEG341 [154] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 -- vbuz1=vbuz2 + //SEG347 [154] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG342 [155] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 -- vbuz1=vbuz2 + //SEG348 [155] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG343 [156] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG349 [156] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta play_collision.orientation - //SEG344 [157] (byte*~) current_piece#79 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG350 [157] (byte*~) current_piece#79 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_79 lda current_piece+1 sta current_piece_79+1 - //SEG345 [158] call play_collision - //SEG346 [166] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] + //SEG351 [158] call play_collision + //SEG352 [166] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] play_collision_from_b4: - //SEG347 [166] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy - //SEG348 [166] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy - //SEG349 [166] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy - //SEG350 [166] phi (byte*) current_piece#12 = (byte*~) current_piece#79 [phi:play_move_rotate::@4->play_collision#3] -- register_copy + //SEG353 [166] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy + //SEG354 [166] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy + //SEG355 [166] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy + //SEG356 [166] phi (byte*) current_piece#12 = (byte*~) current_piece#79 [phi:play_move_rotate::@4->play_collision#3] -- register_copy jsr play_collision - //SEG351 [159] (byte) play_collision::return#13 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 + //SEG357 [159] (byte) play_collision::return#13 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 lda play_collision.return_14 sta play_collision.return_13 jmp b14 - //SEG352 play_move_rotate::@14 + //SEG358 play_move_rotate::@14 b14: - //SEG353 [160] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 -- vbuz1=vbuz2 + //SEG359 [160] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 -- vbuz1=vbuz2 lda play_collision.return_13 sta _6 - //SEG354 [161] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG360 [161] 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 - //SEG355 play_move_rotate::@11 + //SEG361 play_move_rotate::@11 b11: - //SEG356 [162] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG362 [162] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG357 [163] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 + //SEG363 [163] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 lda current_orientation clc adc current_piece @@ -11571,50 +12091,50 @@ play_move_rotate: { lda #0 adc current_piece+1 sta current_piece_gfx+1 - //SEG358 [149] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG364 [149] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] breturn_from_b11: - //SEG359 [149] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#3 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG360 [149] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG361 [149] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuz1=vbuc1 + //SEG365 [149] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#3 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG366 [149] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy + //SEG367 [149] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuz1=vbuc1 lda #1 sta return jmp breturn - //SEG362 play_move_rotate::@1 + //SEG368 play_move_rotate::@1 b1: - //SEG363 [164] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_minus_vbuc1 + //SEG369 [164] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_minus_vbuc1 lda current_orientation sec sbc #$10 sta _4 - //SEG364 [165] (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 + //SEG370 [165] (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 } -//SEG365 play_collision +//SEG371 play_collision play_collision: { - .label _7 = $92 + .label _7 = $94 .label xpos = $26 .label ypos = $25 .label orientation = $24 - .label return = $99 - .label return_1 = $95 - .label piece_gfx = $8d + .label return = $9b + .label return_1 = $97 + .label piece_gfx = $8f .label ypos2 = $27 - .label playfield_line = $8f - .label i = $91 + .label playfield_line = $91 + .label i = $93 .label col = $2a .label c = $2b .label l = $28 - .label return_12 = $93 - .label return_13 = $8a + .label return_12 = $95 + .label return_13 = $8c .label i_2 = $29 .label return_14 = $2c .label i_3 = $29 .label i_11 = $29 .label i_13 = $29 - //SEG366 [167] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 -- pbuz1=pbuz2_plus_vbuz3 + //SEG372 [167] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 -- pbuz1=pbuz2_plus_vbuz3 lda orientation clc adc current_piece_12 @@ -11622,653 +12142,660 @@ play_collision: { lda #0 adc current_piece_12+1 sta piece_gfx+1 - //SEG367 [168] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG373 [168] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda ypos asl sta ypos2 - //SEG368 [169] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] + //SEG374 [169] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] b1_from_play_collision: - //SEG369 [169] 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 + //SEG375 [169] 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 - //SEG370 [169] 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 + //SEG376 [169] 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 - //SEG371 [169] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy + //SEG377 [169] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy jmp b1 - //SEG372 play_collision::@1 + //SEG378 play_collision::@1 b1: - //SEG373 [170] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG379 [170] (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 - //SEG374 [171] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 + //SEG380 [171] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 lda xpos sta col - //SEG375 [172] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] + //SEG381 [172] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] b2_from_b1: - //SEG376 [172] 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 + //SEG382 [172] 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 - //SEG377 [172] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy - //SEG378 [172] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy + //SEG383 [172] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy + //SEG384 [172] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy jmp b2 - //SEG379 play_collision::@2 + //SEG385 play_collision::@2 b2: - //SEG380 [173] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG386 [173] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG381 [174] 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 + //SEG387 [174] 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 - //SEG382 play_collision::@8 + //SEG388 play_collision::@8 b8: - //SEG383 [175] 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 + //SEG389 [175] 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 - //SEG384 [176] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] + //SEG390 [176] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] breturn_from_b8: - //SEG385 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG391 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_BOTTOM sta return_14 jmp breturn - //SEG386 play_collision::@return + //SEG392 play_collision::@return breturn: - //SEG387 [177] return + //SEG393 [177] return rts - //SEG388 play_collision::@4 + //SEG394 play_collision::@4 b4: - //SEG389 [178] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG395 [178] (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 - //SEG390 [179] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuz1_eq_0_then_la1 + //SEG396 [179] 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 - //SEG391 [176] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] + //SEG397 [176] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] breturn_from_b4: - //SEG392 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG398 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_LEFT sta return_14 jmp breturn - //SEG393 play_collision::@5 + //SEG399 play_collision::@5 b5: - //SEG394 [180] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG400 [180] 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 - //SEG395 [176] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] + //SEG401 [176] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] breturn_from_b5: - //SEG396 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG402 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_RIGHT sta return_14 jmp breturn - //SEG397 play_collision::@6 + //SEG403 play_collision::@6 b6: - //SEG398 [181] 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 + //SEG404 [181] 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 - //SEG399 [176] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] + //SEG405 [176] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] breturn_from_b6: - //SEG400 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG406 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_PLAYFIELD sta return_14 jmp breturn - //SEG401 play_collision::@3 + //SEG407 play_collision::@3 b3: - //SEG402 [182] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG408 [182] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG403 [183] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuz1=_inc_vbuz1 + //SEG409 [183] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG404 [184] 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 + //SEG410 [184] 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 - //SEG405 play_collision::@17 + //SEG411 play_collision::@17 b17: - //SEG406 [185] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG412 [185] (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 - //SEG407 [186] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG413 [186] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG408 [187] 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 + //SEG414 [187] 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 - //SEG409 [176] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] + //SEG415 [176] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] breturn_from_b17: - //SEG410 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG416 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_NONE sta return_14 jmp breturn - //SEG411 play_collision::@20 + //SEG417 play_collision::@20 b20: - //SEG412 [188] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG418 [188] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG413 [169] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] + //SEG419 [169] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] b1_from_b20: - //SEG414 [169] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy - //SEG415 [169] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy - //SEG416 [169] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy + //SEG420 [169] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy + //SEG421 [169] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy + //SEG422 [169] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy jmp b1 - //SEG417 play_collision::@21 + //SEG423 play_collision::@21 b21: - //SEG418 [189] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG424 [189] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG419 [172] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] + //SEG425 [172] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] b2_from_b21: - //SEG420 [172] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy - //SEG421 [172] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy - //SEG422 [172] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy + //SEG426 [172] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy + //SEG427 [172] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy + //SEG428 [172] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy jmp b2 } -//SEG423 play_move_leftright +//SEG429 play_move_leftright play_move_leftright: { - .label _4 = $94 - .label _8 = $96 + .label _4 = $96 + .label _8 = $98 .label return = $2d - .label key_event = $75 - .label return_4 = $76 - //SEG424 [190] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuz1_eq_vbuc1_then_la1 + .label key_event = $77 + .label return_4 = $78 + //SEG430 [190] 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 - //SEG425 play_move_leftright::@6 + //SEG431 play_move_leftright::@6 b6: - //SEG426 [191] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG432 [191] 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 - //SEG427 play_move_leftright::@7 + //SEG433 play_move_leftright::@7 b7: - //SEG428 [192] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG434 [192] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_xpos iny sty play_collision.xpos - //SEG429 [193] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 -- vbuz1=vbuz2 + //SEG435 [193] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG430 [194] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuz1=vbuz2 + //SEG436 [194] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuz1=vbuz2 lda current_orientation sta play_collision.orientation - //SEG431 [195] (byte*~) current_piece#78 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG437 [195] (byte*~) current_piece#78 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_78 lda current_piece+1 sta current_piece_78+1 - //SEG432 [196] call play_collision - //SEG433 [166] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] + //SEG438 [196] call play_collision + //SEG439 [166] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] play_collision_from_b7: - //SEG434 [166] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy - //SEG435 [166] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy - //SEG436 [166] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy - //SEG437 [166] phi (byte*) current_piece#12 = (byte*~) current_piece#78 [phi:play_move_leftright::@7->play_collision#3] -- register_copy + //SEG440 [166] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy + //SEG441 [166] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy + //SEG442 [166] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy + //SEG443 [166] phi (byte*) current_piece#12 = (byte*~) current_piece#78 [phi:play_move_leftright::@7->play_collision#3] -- register_copy jsr play_collision - //SEG438 [197] (byte) play_collision::return#12 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 + //SEG444 [197] (byte) play_collision::return#12 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 lda play_collision.return_14 sta play_collision.return_12 jmp b15 - //SEG439 play_move_leftright::@15 + //SEG445 play_move_leftright::@15 b15: - //SEG440 [198] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 -- vbuz1=vbuz2 + //SEG446 [198] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 -- vbuz1=vbuz2 lda play_collision.return_12 sta _4 - //SEG441 [199] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG447 [199] 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 - //SEG442 play_move_leftright::@8 + //SEG448 play_move_leftright::@8 b8: - //SEG443 [200] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 -- vbuz1=_inc_vbuz1 + //SEG449 [200] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 -- vbuz1=_inc_vbuz1 inc current_xpos - //SEG444 [201] 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] + //SEG450 [201] 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: - //SEG445 [201] phi (byte) current_xpos#19 = (byte) current_xpos#4 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy - //SEG446 [201] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuz1=vbuc1 + //SEG451 [201] phi (byte) current_xpos#19 = (byte) current_xpos#4 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy + //SEG452 [201] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuz1=vbuc1 lda #1 sta return jmp breturn - //SEG447 [201] 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] + //SEG453 [201] 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: - //SEG448 [201] phi (byte) current_xpos#19 = (byte) current_xpos#1 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy - //SEG449 [201] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuz1=vbuc1 + //SEG454 [201] phi (byte) current_xpos#19 = (byte) current_xpos#1 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy + //SEG455 [201] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuz1=vbuc1 lda #0 sta return jmp breturn - //SEG450 play_move_leftright::@return + //SEG456 play_move_leftright::@return breturn: - //SEG451 [202] return + //SEG457 [202] return rts - //SEG452 play_move_leftright::@1 + //SEG458 play_move_leftright::@1 b1: - //SEG453 [203] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //SEG459 [203] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 ldx current_xpos dex stx play_collision.xpos - //SEG454 [204] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 -- vbuz1=vbuz2 + //SEG460 [204] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG455 [205] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuz1=vbuz2 + //SEG461 [205] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuz1=vbuz2 lda current_orientation sta play_collision.orientation - //SEG456 [206] (byte*~) current_piece#77 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG462 [206] (byte*~) current_piece#77 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_77 lda current_piece+1 sta current_piece_77+1 - //SEG457 [207] call play_collision - //SEG458 [166] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] + //SEG463 [207] call play_collision + //SEG464 [166] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] play_collision_from_b1: - //SEG459 [166] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy - //SEG460 [166] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy - //SEG461 [166] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy - //SEG462 [166] phi (byte*) current_piece#12 = (byte*~) current_piece#77 [phi:play_move_leftright::@1->play_collision#3] -- register_copy + //SEG465 [166] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy + //SEG466 [166] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy + //SEG467 [166] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy + //SEG468 [166] phi (byte*) current_piece#12 = (byte*~) current_piece#77 [phi:play_move_leftright::@1->play_collision#3] -- register_copy jsr play_collision - //SEG463 [208] (byte) play_collision::return#1 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 + //SEG469 [208] (byte) play_collision::return#1 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 lda play_collision.return_14 sta play_collision.return_1 jmp b14 - //SEG464 play_move_leftright::@14 + //SEG470 play_move_leftright::@14 b14: - //SEG465 [209] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 -- vbuz1=vbuz2 + //SEG471 [209] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 -- vbuz1=vbuz2 lda play_collision.return_1 sta _8 - //SEG466 [210] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG472 [210] 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 - //SEG467 play_move_leftright::@11 + //SEG473 play_move_leftright::@11 b11: - //SEG468 [211] (byte) current_xpos#4 ← -- (byte) current_xpos#1 -- vbuz1=_dec_vbuz1 + //SEG474 [211] (byte) current_xpos#4 ← -- (byte) current_xpos#1 -- vbuz1=_dec_vbuz1 dec current_xpos jmp breturn_from_b11 } -//SEG469 play_move_down +//SEG475 play_move_down play_move_down: { - .label _2 = $98 - .label _12 = $9a + .label _2 = $9a + .label _12 = $9c .label movedown = $2e - .label removed = $9c - .label return = $3e - .label key_event = $71 - .label return_3 = $72 - //SEG470 [212] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 + .label removed = $9e + .label return = $40 + .label key_event = $73 + .label return_3 = $74 + //SEG476 [212] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG471 [213] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG477 [213] 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 - //SEG472 [214] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG478 [214] 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 - //SEG473 play_move_down::@8 + //SEG479 play_move_down::@8 b8: - //SEG474 [215] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG480 [215] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] b1_from_b8: - //SEG475 [215] 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 + //SEG481 [215] 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 - //SEG476 [215] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG482 [215] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b1_from_play_move_down: - //SEG477 [215] 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 + //SEG483 [215] 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 - //SEG478 play_move_down::@1 + //SEG484 play_move_down::@1 b1: - //SEG479 [216] call keyboard_event_pressed - //SEG480 [324] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG485 [216] call keyboard_event_pressed + //SEG486 [332] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] keyboard_event_pressed_from_b1: - //SEG481 [324] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG487 [332] 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 - //SEG482 [217] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG488 [217] (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 - //SEG483 play_move_down::@17 + //SEG489 play_move_down::@17 b17: - //SEG484 [218] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 -- vbuz1=vbuz2 + //SEG490 [218] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_12 sta _2 - //SEG485 [219] 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 + //SEG491 [219] 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 - //SEG486 play_move_down::@9 + //SEG492 play_move_down::@9 b9: - //SEG487 [220] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG493 [220] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 lda current_movedown_counter cmp #current_movedown_fast bcc b2_from_b9 jmp b10 - //SEG488 play_move_down::@10 + //SEG494 play_move_down::@10 b10: - //SEG489 [221] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuz1=_inc_vbuz1 + //SEG495 [221] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuz1=_inc_vbuz1 inc movedown - //SEG490 [222] 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] + //SEG496 [222] 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: - //SEG491 [222] 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 + //SEG497 [222] 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 - //SEG492 play_move_down::@2 + //SEG498 play_move_down::@2 b2: - //SEG493 [223] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG499 [223] if((byte) current_movedown_counter#1<(byte) current_movedown_slow#12) goto play_move_down::@4 -- vbuz1_lt_vbuz2_then_la1 lda current_movedown_counter - cmp #current_movedown_slow + cmp current_movedown_slow bcc b4_from_b2 jmp b11 - //SEG494 play_move_down::@11 + //SEG500 play_move_down::@11 b11: - //SEG495 [224] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuz1=_inc_vbuz1 + //SEG501 [224] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuz1=_inc_vbuz1 inc movedown - //SEG496 [225] 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] + //SEG502 [225] 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: - //SEG497 [225] 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 + //SEG503 [225] 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 - //SEG498 play_move_down::@4 + //SEG504 play_move_down::@4 b4: - //SEG499 [226] 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 + //SEG505 [226] 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 - //SEG500 play_move_down::@12 + //SEG506 play_move_down::@12 b12: - //SEG501 [227] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG507 [227] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_ypos iny sty play_collision.ypos - //SEG502 [228] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 + //SEG508 [228] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG503 [229] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuz1=vbuz2 + //SEG509 [229] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuz1=vbuz2 lda current_orientation sta play_collision.orientation - //SEG504 [230] (byte*~) current_piece#76 ← (byte*) current_piece#16 -- pbuz1=pbuz2 + //SEG510 [230] (byte*~) current_piece#76 ← (byte*) current_piece#16 -- pbuz1=pbuz2 lda current_piece sta current_piece_76 lda current_piece+1 sta current_piece_76+1 - //SEG505 [231] call play_collision - //SEG506 [166] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] + //SEG511 [231] call play_collision + //SEG512 [166] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] play_collision_from_b12: - //SEG507 [166] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy - //SEG508 [166] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy - //SEG509 [166] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy - //SEG510 [166] phi (byte*) current_piece#12 = (byte*~) current_piece#76 [phi:play_move_down::@12->play_collision#3] -- register_copy + //SEG513 [166] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy + //SEG514 [166] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy + //SEG515 [166] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy + //SEG516 [166] phi (byte*) current_piece#12 = (byte*~) current_piece#76 [phi:play_move_down::@12->play_collision#3] -- register_copy jsr play_collision - //SEG511 [232] (byte) play_collision::return#0 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 + //SEG517 [232] (byte) play_collision::return#0 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 lda play_collision.return_14 sta play_collision.return jmp b18 - //SEG512 play_move_down::@18 + //SEG518 play_move_down::@18 b18: - //SEG513 [233] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 -- vbuz1=vbuz2 + //SEG519 [233] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 -- vbuz1=vbuz2 lda play_collision.return sta _12 - //SEG514 [234] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuz1_eq_vbuc1_then_la1 + //SEG520 [234] 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 - //SEG515 [235] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG521 [235] 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 - //SEG516 play_move_down::@13 + //SEG522 play_move_down::@13 b13: - //SEG517 [236] call play_lock_current + //SEG523 [236] call play_lock_current jsr play_lock_current - //SEG518 [237] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG524 [237] 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 - //SEG519 play_move_down::@19 + //SEG525 play_move_down::@19 b19: - //SEG520 [238] call play_remove_lines - //SEG521 [284] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] + //SEG526 [238] call play_remove_lines + //SEG527 [292] 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 - //SEG522 [239] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 -- vbuz1=vbuz2 + //SEG528 [239] (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 - //SEG523 play_move_down::@20 + //SEG529 play_move_down::@20 b20: - //SEG524 [240] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 -- vbuz1=vbuz2 + //SEG530 [240] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 -- vbuz1=vbuz2 lda play_remove_lines.return sta removed - //SEG525 [241] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuz1=vbuz2 + //SEG531 [241] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuz1=vbuz2 lda removed sta play_update_score.removed - //SEG526 [242] call play_update_score + //SEG532 [242] call play_update_score jsr play_update_score - //SEG527 [243] phi from play_move_down::@20 to play_move_down::@21 [phi:play_move_down::@20->play_move_down::@21] + //SEG533 [243] 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 - //SEG528 play_move_down::@21 + //SEG534 play_move_down::@21 b21: - //SEG529 [244] call play_spawn_current - //SEG530 [250] phi from play_move_down::@21 to play_spawn_current [phi:play_move_down::@21->play_spawn_current] + //SEG535 [244] call play_spawn_current + //SEG536 [250] phi from play_move_down::@21 to play_spawn_current [phi:play_move_down::@21->play_spawn_current] play_spawn_current_from_b21: jsr play_spawn_current - //SEG531 [245] (byte*~) current_piece#80 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG537 [245] (byte*~) current_piece#80 ← (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 - //SEG532 [246] phi from play_move_down::@21 to play_move_down::@7 [phi:play_move_down::@21->play_move_down::@7] + //SEG538 [246] phi from play_move_down::@21 to play_move_down::@7 [phi:play_move_down::@21->play_move_down::@7] b7_from_b21: - //SEG533 [246] phi (byte) current_piece_char#20 = (byte) current_piece_char#12 [phi:play_move_down::@21->play_move_down::@7#0] -- register_copy - //SEG534 [246] phi (byte) current_xpos#33 = (byte) current_xpos#23 [phi:play_move_down::@21->play_move_down::@7#1] -- register_copy - //SEG535 [246] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#16 [phi:play_move_down::@21->play_move_down::@7#2] -- register_copy - //SEG536 [246] phi (byte) current_orientation#29 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@21->play_move_down::@7#3] -- vbuz1=vbuc1 + //SEG539 [246] phi (byte) current_piece_char#20 = (byte) current_piece_char#12 [phi:play_move_down::@21->play_move_down::@7#0] -- register_copy + //SEG540 [246] phi (byte) current_xpos#33 = (byte) current_xpos#23 [phi:play_move_down::@21->play_move_down::@7#1] -- register_copy + //SEG541 [246] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#16 [phi:play_move_down::@21->play_move_down::@7#2] -- register_copy + //SEG542 [246] phi (byte) current_orientation#29 = (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 - //SEG537 [246] phi (byte*) current_piece#20 = (byte*~) current_piece#80 [phi:play_move_down::@21->play_move_down::@7#4] -- register_copy - //SEG538 [246] phi (byte) level_bcd#21 = (byte) level_bcd#14 [phi:play_move_down::@21->play_move_down::@7#5] -- register_copy - //SEG539 [246] phi (dword) score_bcd#20 = (dword) score_bcd#12 [phi:play_move_down::@21->play_move_down::@7#6] -- register_copy - //SEG540 [246] phi (word) lines_bcd#20 = (word) lines_bcd#13 [phi:play_move_down::@21->play_move_down::@7#7] -- register_copy - //SEG541 [246] phi (byte) current_ypos#29 = (byte) current_ypos#18 [phi:play_move_down::@21->play_move_down::@7#8] -- register_copy + //SEG543 [246] phi (byte*) current_piece#20 = (byte*~) current_piece#80 [phi:play_move_down::@21->play_move_down::@7#4] -- register_copy + //SEG544 [246] phi (byte) level_bcd#25 = (byte) level_bcd#15 [phi:play_move_down::@21->play_move_down::@7#5] -- register_copy + //SEG545 [246] phi (byte) current_movedown_slow#30 = (byte) current_movedown_slow#19 [phi:play_move_down::@21->play_move_down::@7#6] -- register_copy + //SEG546 [246] phi (byte) level#24 = (byte) level#14 [phi:play_move_down::@21->play_move_down::@7#7] -- register_copy + //SEG547 [246] phi (dword) score_bcd#20 = (dword) score_bcd#12 [phi:play_move_down::@21->play_move_down::@7#8] -- register_copy + //SEG548 [246] phi (word) lines_bcd#20 = (word) lines_bcd#13 [phi:play_move_down::@21->play_move_down::@7#9] -- register_copy + //SEG549 [246] phi (byte) current_ypos#29 = (byte) current_ypos#18 [phi:play_move_down::@21->play_move_down::@7#10] -- register_copy jmp b7 - //SEG542 play_move_down::@7 + //SEG550 play_move_down::@7 b7: - //SEG543 [247] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG551 [247] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] breturn_from_b7: - //SEG544 [247] phi (byte) current_piece_char#1 = (byte) current_piece_char#20 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG545 [247] phi (byte) current_xpos#1 = (byte) current_xpos#33 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG546 [247] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#26 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG547 [247] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG548 [247] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG549 [247] phi (byte) level_bcd#11 = (byte) level_bcd#21 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG550 [247] phi (dword) score_bcd#10 = (dword) score_bcd#20 [phi:play_move_down::@7->play_move_down::@return#6] -- register_copy - //SEG551 [247] phi (word) lines_bcd#11 = (word) lines_bcd#20 [phi:play_move_down::@7->play_move_down::@return#7] -- register_copy - //SEG552 [247] phi (byte) current_ypos#13 = (byte) current_ypos#29 [phi:play_move_down::@7->play_move_down::@return#8] -- register_copy - //SEG553 [247] phi (byte) current_movedown_counter#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#9] -- vbuz1=vbuc1 + //SEG552 [247] phi (byte) current_piece_char#1 = (byte) current_piece_char#20 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG553 [247] phi (byte) current_xpos#1 = (byte) current_xpos#33 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG554 [247] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#26 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG555 [247] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy + //SEG556 [247] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy + //SEG557 [247] phi (byte) level_bcd#13 = (byte) level_bcd#25 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG558 [247] phi (byte) current_movedown_slow#17 = (byte) current_movedown_slow#30 [phi:play_move_down::@7->play_move_down::@return#6] -- register_copy + //SEG559 [247] phi (byte) level#12 = (byte) level#24 [phi:play_move_down::@7->play_move_down::@return#7] -- register_copy + //SEG560 [247] phi (dword) score_bcd#10 = (dword) score_bcd#20 [phi:play_move_down::@7->play_move_down::@return#8] -- register_copy + //SEG561 [247] phi (word) lines_bcd#11 = (word) lines_bcd#20 [phi:play_move_down::@7->play_move_down::@return#9] -- register_copy + //SEG562 [247] phi (byte) current_ypos#13 = (byte) current_ypos#29 [phi:play_move_down::@7->play_move_down::@return#10] -- register_copy + //SEG563 [247] phi (byte) current_movedown_counter#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#11] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG554 [247] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#10] -- vbuz1=vbuc1 + //SEG564 [247] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#12] -- vbuz1=vbuc1 lda #1 sta return jmp breturn - //SEG555 [247] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG565 [247] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] breturn_from_b4: - //SEG556 [247] phi (byte) current_piece_char#1 = (byte) current_piece_char#15 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG557 [247] phi (byte) current_xpos#1 = (byte) current_xpos#10 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG558 [247] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#20 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG559 [247] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG560 [247] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG561 [247] phi (byte) level_bcd#11 = (byte) level_bcd#16 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG562 [247] phi (dword) score_bcd#10 = (dword) score_bcd#14 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG563 [247] phi (word) lines_bcd#11 = (word) lines_bcd#15 [phi:play_move_down::@4->play_move_down::@return#7] -- register_copy - //SEG564 [247] phi (byte) current_ypos#13 = (byte) current_ypos#21 [phi:play_move_down::@4->play_move_down::@return#8] -- register_copy - //SEG565 [247] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#9] -- register_copy - //SEG566 [247] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#10] -- vbuz1=vbuc1 + //SEG566 [247] phi (byte) current_piece_char#1 = (byte) current_piece_char#15 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG567 [247] phi (byte) current_xpos#1 = (byte) current_xpos#10 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG568 [247] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#20 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG569 [247] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy + //SEG570 [247] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy + //SEG571 [247] phi (byte) level_bcd#13 = (byte) level_bcd#20 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG572 [247] phi (byte) current_movedown_slow#17 = (byte) current_movedown_slow#12 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy + //SEG573 [247] phi (byte) level#12 = (byte) level#19 [phi:play_move_down::@4->play_move_down::@return#7] -- register_copy + //SEG574 [247] phi (dword) score_bcd#10 = (dword) score_bcd#14 [phi:play_move_down::@4->play_move_down::@return#8] -- register_copy + //SEG575 [247] phi (word) lines_bcd#11 = (word) lines_bcd#15 [phi:play_move_down::@4->play_move_down::@return#9] -- register_copy + //SEG576 [247] phi (byte) current_ypos#13 = (byte) current_ypos#21 [phi:play_move_down::@4->play_move_down::@return#10] -- register_copy + //SEG577 [247] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#11] -- register_copy + //SEG578 [247] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#12] -- vbuz1=vbuc1 lda #0 sta return jmp breturn - //SEG567 play_move_down::@return + //SEG579 play_move_down::@return breturn: - //SEG568 [248] return + //SEG580 [248] return rts - //SEG569 play_move_down::@6 + //SEG581 play_move_down::@6 b6: - //SEG570 [249] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 -- vbuz1=_inc_vbuz1 + //SEG582 [249] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG571 [246] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG583 [246] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] b7_from_b6: - //SEG572 [246] phi (byte) current_piece_char#20 = (byte) current_piece_char#15 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG573 [246] phi (byte) current_xpos#33 = (byte) current_xpos#10 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG574 [246] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#20 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG575 [246] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG576 [246] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG577 [246] phi (byte) level_bcd#21 = (byte) level_bcd#16 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy - //SEG578 [246] phi (dword) score_bcd#20 = (dword) score_bcd#14 [phi:play_move_down::@6->play_move_down::@7#6] -- register_copy - //SEG579 [246] phi (word) lines_bcd#20 = (word) lines_bcd#15 [phi:play_move_down::@6->play_move_down::@7#7] -- register_copy - //SEG580 [246] phi (byte) current_ypos#29 = (byte) current_ypos#0 [phi:play_move_down::@6->play_move_down::@7#8] -- register_copy + //SEG584 [246] phi (byte) current_piece_char#20 = (byte) current_piece_char#15 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG585 [246] phi (byte) current_xpos#33 = (byte) current_xpos#10 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG586 [246] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#20 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG587 [246] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy + //SEG588 [246] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy + //SEG589 [246] phi (byte) level_bcd#25 = (byte) level_bcd#20 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG590 [246] phi (byte) current_movedown_slow#30 = (byte) current_movedown_slow#12 [phi:play_move_down::@6->play_move_down::@7#6] -- register_copy + //SEG591 [246] phi (byte) level#24 = (byte) level#19 [phi:play_move_down::@6->play_move_down::@7#7] -- register_copy + //SEG592 [246] phi (dword) score_bcd#20 = (dword) score_bcd#14 [phi:play_move_down::@6->play_move_down::@7#8] -- register_copy + //SEG593 [246] phi (word) lines_bcd#20 = (word) lines_bcd#15 [phi:play_move_down::@6->play_move_down::@7#9] -- register_copy + //SEG594 [246] phi (byte) current_ypos#29 = (byte) current_ypos#0 [phi:play_move_down::@6->play_move_down::@7#10] -- register_copy jmp b7 } -//SEG581 play_spawn_current +//SEG595 play_spawn_current play_spawn_current: { - .label _1 = $a0 - .label _3 = $9e - .label piece_idx = $3f - //SEG582 [251] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] + .label _1 = $a2 + .label _3 = $a0 + .label piece_idx = $41 + //SEG596 [251] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] b1_from_play_spawn_current: - //SEG583 [251] 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 + //SEG597 [251] 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 - //SEG584 play_spawn_current::@1 + //SEG598 play_spawn_current::@1 b1: - //SEG585 [252] 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 + //SEG599 [252] 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 - //SEG586 play_spawn_current::@3 + //SEG600 play_spawn_current::@3 b3: - //SEG587 [253] (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 + //SEG601 [253] (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 - //SEG588 [254] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 + //SEG602 [254] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 ldy _3 lda PIECES,y sta current_piece_gfx lda PIECES+1,y sta current_piece_gfx+1 - //SEG589 [255] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG603 [255] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy piece_idx lda PIECES_START_X,y sta current_xpos - //SEG590 [256] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG604 [256] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy piece_idx lda PIECES_START_Y,y sta current_ypos - //SEG591 [257] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG605 [257] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 ldy piece_idx lda PIECES_CHARS,y sta current_piece_char jmp breturn - //SEG592 play_spawn_current::@return + //SEG606 play_spawn_current::@return breturn: - //SEG593 [258] return + //SEG607 [258] return rts - //SEG594 [259] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] + //SEG608 [259] 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 - //SEG595 play_spawn_current::@2 + //SEG609 play_spawn_current::@2 b2: - //SEG596 [260] call sid_rnd + //SEG610 [260] call sid_rnd jsr sid_rnd - //SEG597 [261] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 -- vbuz1=vbuz2 + //SEG611 [261] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 -- vbuz1=vbuz2 lda sid_rnd.return sta sid_rnd.return_2 jmp b7 - //SEG598 play_spawn_current::@7 + //SEG612 play_spawn_current::@7 b7: - //SEG599 [262] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 -- vbuz1=vbuz2 + //SEG613 [262] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 -- vbuz1=vbuz2 lda sid_rnd.return_2 sta _1 - //SEG600 [263] (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 + //SEG614 [263] (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 - //SEG601 [251] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] + //SEG615 [251] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] b1_from_b7: - //SEG602 [251] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@7->play_spawn_current::@1#0] -- register_copy + //SEG616 [251] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@7->play_spawn_current::@1#0] -- register_copy jmp b1 } -//SEG603 sid_rnd +//SEG617 sid_rnd sid_rnd: { - .label return = $a1 - .label return_2 = $9f - //SEG604 [264] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuz1=_deref_pbuc1 + .label return = $a3 + .label return_2 = $a1 + //SEG618 [264] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuz1=_deref_pbuc1 lda SID_VOICE3_OSC sta return jmp breturn - //SEG605 sid_rnd::@return + //SEG619 sid_rnd::@return breturn: - //SEG606 [265] return + //SEG620 [265] return rts } -//SEG607 play_update_score +//SEG621 play_update_score play_update_score: { - .label _2 = $a2 - .label _4 = $a4 - .label _5 = $a9 - .label _9 = $ab - .label removed = $9d - .label lines_before = $a3 - .label add_bcd = $a5 - .label lines_after = $aa - //SEG608 [266] 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 + .label _2 = $a4 + .label _4 = $a6 + .label _5 = $ab + .label removed = $9f + .label lines_before = $a5 + .label add_bcd = $a7 + .label lines_after = $ac + //SEG622 [266] 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 b4 - //SEG609 play_update_score::@4 - b4: - //SEG610 [267] (byte~) play_update_score::$2 ← < (word) lines_bcd#15 -- vbuz1=_lo_vwuz2 + jmp b3 + //SEG623 play_update_score::@3 + b3: + //SEG624 [267] (byte~) play_update_score::$2 ← < (word) lines_bcd#15 -- vbuz1=_lo_vwuz2 lda lines_bcd sta _2 - //SEG611 [268] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuz2_band_vbuc1 + //SEG625 [268] (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 - //SEG612 [269] (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 + //SEG626 [269] (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 - //SEG613 [270] (dword) play_update_score::add_bcd#0 ← *((const dword[]) score_add_bcd#0 + (byte~) play_update_score::$4) -- vduz1=pduc1_derefidx_vbuz2 + //SEG627 [270] (dword) play_update_score::add_bcd#0 ← *((const dword[]) score_add_bcd#0 + (byte~) play_update_score::$4) -- vduz1=pduc1_derefidx_vbuz2 ldy _4 lda score_add_bcd,y sta add_bcd @@ -12278,9 +12805,9 @@ play_update_score: { sta add_bcd+2 lda score_add_bcd+3,y sta add_bcd+3 - //SEG614 asm { sed } + //SEG628 asm { sed } sed - //SEG615 [272] (word) lines_bcd#23 ← (word) lines_bcd#15 + (byte) play_update_score::removed#0 -- vwuz1=vwuz1_plus_vbuz2 + //SEG629 [272] (word) lines_bcd#23 ← (word) lines_bcd#15 + (byte) play_update_score::removed#0 -- vwuz1=vwuz1_plus_vbuz2 lda removed clc adc lines_bcd @@ -12288,7 +12815,7 @@ play_update_score: { lda #0 adc lines_bcd+1 sta lines_bcd+1 - //SEG616 [273] (dword) score_bcd#23 ← (dword) score_bcd#14 + (dword) play_update_score::add_bcd#0 -- vduz1=vduz1_plus_vduz2 + //SEG630 [273] (dword) score_bcd#23 ← (dword) score_bcd#14 + (dword) play_update_score::add_bcd#0 -- vduz1=vduz1_plus_vduz2 lda score_bcd clc adc add_bcd @@ -12302,812 +12829,857 @@ play_update_score: { lda score_bcd+3 adc add_bcd+3 sta score_bcd+3 - //SEG617 asm { cld } + //SEG631 asm { cld } cld - //SEG618 [275] (byte~) play_update_score::$5 ← < (word) lines_bcd#23 -- vbuz1=_lo_vwuz2 + //SEG632 [275] (byte~) play_update_score::$5 ← < (word) lines_bcd#23 -- vbuz1=_lo_vwuz2 lda lines_bcd sta _5 - //SEG619 [276] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuz2_band_vbuc1 + //SEG633 [276] (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 - //SEG620 [277] 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 + //SEG634 [277] 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_b4 - jmp b5 - //SEG621 play_update_score::@5 - b5: - //SEG622 [278] (byte) level_bcd#13 ← ++ (byte) level_bcd#16 -- vbuz1=_inc_vbuz1 + beq breturn_from_b3 + //SEG635 [278] 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 + //SEG636 play_update_score::@4 + b4: + //SEG637 [279] call play_increase_level + jsr play_increase_level + //SEG638 [280] 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: + //SEG639 [280] phi (byte) level_bcd#15 = (byte) level_bcd#20 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#0] -- register_copy + //SEG640 [280] phi (byte) current_movedown_slow#19 = (byte) current_movedown_slow#12 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#1] -- register_copy + //SEG641 [280] phi (byte) level#14 = (byte) level#19 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#2] -- register_copy + //SEG642 [280] phi (dword) score_bcd#12 = (dword) score_bcd#14 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#3] -- register_copy + //SEG643 [280] phi (word) lines_bcd#13 = (word) lines_bcd#15 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#4] -- register_copy + jmp breturn + //SEG644 play_update_score::@return + breturn: + //SEG645 [281] return + rts +} +//SEG646 play_increase_level +play_increase_level: { + .label _1 = $ad + //SEG647 [282] (byte) level#16 ← ++ (byte) level#19 -- vbuz1=_inc_vbuz1 + inc level + //SEG648 [283] if((byte) level#16>(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 b4 + //SEG649 play_increase_level::@4 + b4: + //SEG650 [284] (byte) current_movedown_slow#8 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#16) -- vbuz1=pbuc1_derefidx_vbuz2 + ldy level + lda MOVEDOWN_SLOW_SPEEDS,y + sta current_movedown_slow + //SEG651 [285] phi from play_increase_level::@4 to play_increase_level::@2 [phi:play_increase_level::@4->play_increase_level::@2] + b2_from_b4: + //SEG652 [285] phi (byte) current_movedown_slow#20 = (byte) current_movedown_slow#8 [phi:play_increase_level::@4->play_increase_level::@2#0] -- register_copy + jmp b2 + //SEG653 [285] phi from play_increase_level to play_increase_level::@2 [phi:play_increase_level->play_increase_level::@2] + b2_from_play_increase_level: + //SEG654 [285] phi (byte) current_movedown_slow#20 = (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 + //SEG655 play_increase_level::@2 + b2: + //SEG656 [286] (byte) level_bcd#17 ← ++ (byte) level_bcd#20 -- vbuz1=_inc_vbuz1 inc level_bcd - //SEG623 [279] (byte~) play_update_score::$9 ← (byte) level_bcd#13 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG657 [287] (byte~) play_increase_level::$1 ← (byte) level_bcd#17 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 lda #$f and level_bcd - sta _9 - //SEG624 [280] if((byte~) play_update_score::$9!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_update_score::@return -- vbuz1_neq_vbuc1_then_la1 - lda _9 + sta _1 + //SEG658 [288] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@return -- vbuz1_neq_vbuc1_then_la1 + lda _1 cmp #$a - bne breturn_from_b5 + bne breturn_from_b2 jmp b6 - //SEG625 play_update_score::@6 + //SEG659 play_increase_level::@6 b6: - //SEG626 [281] (byte) level_bcd#4 ← (byte) level_bcd#13 + (byte/signed byte/word/signed word/dword/signed dword) 6 -- vbuz1=vbuz1_plus_vbuc1 + //SEG660 [289] (byte) level_bcd#6 ← (byte) level_bcd#17 + (byte/signed byte/word/signed word/dword/signed dword) 6 -- vbuz1=vbuz1_plus_vbuc1 lda #6 clc adc level_bcd sta level_bcd - //SEG627 [282] phi from play_update_score play_update_score::@4 play_update_score::@5 play_update_score::@6 to play_update_score::@return [phi:play_update_score/play_update_score::@4/play_update_score::@5/play_update_score::@6->play_update_score::@return] - breturn_from_play_update_score: - breturn_from_b4: - breturn_from_b5: + //SEG661 [290] phi from play_increase_level::@2 play_increase_level::@6 to play_increase_level::@return [phi:play_increase_level::@2/play_increase_level::@6->play_increase_level::@return] + breturn_from_b2: breturn_from_b6: - //SEG628 [282] phi (byte) level_bcd#14 = (byte) level_bcd#16 [phi:play_update_score/play_update_score::@4/play_update_score::@5/play_update_score::@6->play_update_score::@return#0] -- register_copy - //SEG629 [282] phi (dword) score_bcd#12 = (dword) score_bcd#14 [phi:play_update_score/play_update_score::@4/play_update_score::@5/play_update_score::@6->play_update_score::@return#1] -- register_copy - //SEG630 [282] phi (word) lines_bcd#13 = (word) lines_bcd#15 [phi:play_update_score/play_update_score::@4/play_update_score::@5/play_update_score::@6->play_update_score::@return#2] -- register_copy + //SEG662 [290] phi (byte) level_bcd#18 = (byte) level_bcd#17 [phi:play_increase_level::@2/play_increase_level::@6->play_increase_level::@return#0] -- register_copy jmp breturn - //SEG631 play_update_score::@return + //SEG663 play_increase_level::@return breturn: - //SEG632 [283] return + //SEG664 [291] return rts } -//SEG633 play_remove_lines +//SEG665 play_remove_lines play_remove_lines: { - .label return = $9b - .label c = $ac - .label r = $42 - .label w = $45 - .label x = $43 - .label y = $40 - .label removed = $41 - .label full = $44 - //SEG634 [285] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] + .label return = $9d + .label c = $ae + .label r = $44 + .label w = $47 + .label x = $45 + .label y = $42 + .label removed = $43 + .label full = $46 + //SEG666 [293] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] b1_from_play_remove_lines: - //SEG635 [285] 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 + //SEG667 [293] 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 - //SEG636 [285] 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 + //SEG668 [293] 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 - //SEG637 [285] 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 + //SEG669 [293] 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 - //SEG638 [285] 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 + //SEG670 [293] 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 - //SEG639 [285] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] + //SEG671 [293] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] b1_from_b4: - //SEG640 [285] 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 - //SEG641 [285] 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 - //SEG642 [285] 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 - //SEG643 [285] 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 + //SEG672 [293] 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 + //SEG673 [293] 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 + //SEG674 [293] 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 + //SEG675 [293] 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 - //SEG644 play_remove_lines::@1 + //SEG676 play_remove_lines::@1 b1: - //SEG645 [286] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] + //SEG677 [294] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] b2_from_b1: - //SEG646 [286] 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 + //SEG678 [294] 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 - //SEG647 [286] 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 + //SEG679 [294] 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 - //SEG648 [286] 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 - //SEG649 [286] 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 + //SEG680 [294] 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 + //SEG681 [294] 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 - //SEG650 [286] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] + //SEG682 [294] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] b2_from_b3: - //SEG651 [286] 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 - //SEG652 [286] 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 - //SEG653 [286] 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 - //SEG654 [286] 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 + //SEG683 [294] 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 + //SEG684 [294] 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 + //SEG685 [294] 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 + //SEG686 [294] 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 - //SEG655 play_remove_lines::@2 + //SEG687 play_remove_lines::@2 b2: - //SEG656 [287] (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 + //SEG688 [295] (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 - //SEG657 [288] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuz1=_dec_vbuz1 + //SEG689 [296] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuz1=_dec_vbuz1 dec r - //SEG658 [289] 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 + //SEG690 [297] 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 - //SEG659 [290] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] + //SEG691 [298] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] b3_from_b2: - //SEG660 [290] 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 + //SEG692 [298] 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 - //SEG661 play_remove_lines::@3 + //SEG693 play_remove_lines::@3 b3: - //SEG662 [291] *((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 + //SEG694 [299] *((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 - //SEG663 [292] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuz1=_dec_vbuz1 + //SEG695 [300] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuz1=_dec_vbuz1 dec w - //SEG664 [293] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 + //SEG696 [301] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG665 [294] 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 + //SEG697 [302] 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 - //SEG666 play_remove_lines::@9 + //SEG698 play_remove_lines::@9 b9: - //SEG667 [295] 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 + //SEG699 [303] 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 - //SEG668 play_remove_lines::@10 + //SEG700 play_remove_lines::@10 b10: - //SEG669 [296] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG701 [304] (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 - //SEG670 [297] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 + //SEG702 [305] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 inc removed - //SEG671 [298] 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] + //SEG703 [306] 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: - //SEG672 [298] 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 - //SEG673 [298] 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 + //SEG704 [306] 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 + //SEG705 [306] 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 - //SEG674 play_remove_lines::@4 + //SEG706 play_remove_lines::@4 b4: - //SEG675 [299] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 + //SEG707 [307] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG676 [300] 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 + //SEG708 [308] 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 - //SEG677 [301] 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] + //SEG709 [309] 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: - //SEG678 [301] 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 + //SEG710 [309] 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 - //SEG679 play_remove_lines::@5 + //SEG711 play_remove_lines::@5 b5: - //SEG680 [302] 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 + //SEG712 [310] 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 - //SEG681 play_remove_lines::@return + //SEG713 play_remove_lines::@return breturn: - //SEG682 [303] return + //SEG714 [311] return rts - //SEG683 play_remove_lines::@6 + //SEG715 play_remove_lines::@6 b6: - //SEG684 [304] *((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 + //SEG716 [312] *((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 - //SEG685 [305] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuz1=_dec_vbuz1 + //SEG717 [313] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuz1=_dec_vbuz1 dec w jmp b5_from_b6 - //SEG686 [306] phi from play_remove_lines::@2 to play_remove_lines::@18 [phi:play_remove_lines::@2->play_remove_lines::@18] + //SEG718 [314] 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 - //SEG687 play_remove_lines::@18 + //SEG719 play_remove_lines::@18 b18: - //SEG688 [290] phi from play_remove_lines::@18 to play_remove_lines::@3 [phi:play_remove_lines::@18->play_remove_lines::@3] + //SEG720 [298] phi from play_remove_lines::@18 to play_remove_lines::@3 [phi:play_remove_lines::@18->play_remove_lines::@3] b3_from_b18: - //SEG689 [290] 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 + //SEG721 [298] 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 } -//SEG690 play_lock_current +//SEG722 play_lock_current play_lock_current: { - .label ypos2 = $46 - .label playfield_line = $ad - .label col = $49 - .label i = $af - .label c = $4a - .label l = $47 - .label i_2 = $48 - .label i_3 = $48 - .label i_7 = $48 - .label i_9 = $48 - //SEG691 [307] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + .label ypos2 = $48 + .label playfield_line = $af + .label col = $4b + .label i = $b1 + .label c = $4c + .label l = $49 + .label i_2 = $4a + .label i_3 = $4a + .label i_7 = $4a + .label i_9 = $4a + //SEG723 [315] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda current_ypos asl sta ypos2 - //SEG692 [308] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] + //SEG724 [316] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] b1_from_play_lock_current: - //SEG693 [308] 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 + //SEG725 [316] 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 - //SEG694 [308] 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 + //SEG726 [316] 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 - //SEG695 [308] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy + //SEG727 [316] 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 - //SEG696 play_lock_current::@1 + //SEG728 play_lock_current::@1 b1: - //SEG697 [309] (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 + //SEG729 [317] (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 - //SEG698 [310] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 + //SEG730 [318] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG699 [311] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] + //SEG731 [319] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] b2_from_b1: - //SEG700 [311] 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 + //SEG732 [319] 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 - //SEG701 [311] 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 - //SEG702 [311] 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 + //SEG733 [319] 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 + //SEG734 [319] 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 - //SEG703 play_lock_current::@2 + //SEG735 play_lock_current::@2 b2: - //SEG704 [312] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG736 [320] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG705 [313] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG737 [321] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (current_piece_gfx),y cmp #0 beq b3 jmp b4 - //SEG706 play_lock_current::@4 + //SEG738 play_lock_current::@4 b4: - //SEG707 [314] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG739 [322] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_char ldy col sta (playfield_line),y jmp b3 - //SEG708 play_lock_current::@3 + //SEG740 play_lock_current::@3 b3: - //SEG709 [315] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG741 [323] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG710 [316] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuz1=_inc_vbuz1 + //SEG742 [324] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG711 [317] 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 + //SEG743 [325] 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 - //SEG712 play_lock_current::@5 + //SEG744 play_lock_current::@5 b5: - //SEG713 [318] (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 + //SEG745 [326] (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 - //SEG714 [319] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG746 [327] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG715 [320] 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 + //SEG747 [328] 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 - //SEG716 play_lock_current::@return + //SEG748 play_lock_current::@return breturn: - //SEG717 [321] return + //SEG749 [329] return rts - //SEG718 play_lock_current::@7 + //SEG750 play_lock_current::@7 b7: - //SEG719 [322] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG751 [330] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG720 [308] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] + //SEG752 [316] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] b1_from_b7: - //SEG721 [308] 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 - //SEG722 [308] 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 - //SEG723 [308] 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 + //SEG753 [316] 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 + //SEG754 [316] 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 + //SEG755 [316] 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 - //SEG724 play_lock_current::@8 + //SEG756 play_lock_current::@8 b8: - //SEG725 [323] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG757 [331] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG726 [311] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] + //SEG758 [319] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] b2_from_b8: - //SEG727 [311] 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 - //SEG728 [311] 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 - //SEG729 [311] 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 + //SEG759 [319] 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 + //SEG760 [319] 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 + //SEG761 [319] 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 } -//SEG730 keyboard_event_pressed +//SEG762 keyboard_event_pressed keyboard_event_pressed: { - .label _0 = $b0 - .label _1 = $b2 - .label return = $b7 - .label return_1 = $b9 - .label return_2 = $bb - .label row_bits = $b1 - .label return_10 = $bd - .label keycode = $4b - .label return_11 = $b3 - .label return_12 = $97 - //SEG731 [325] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_ror_3 + .label _0 = $b2 + .label _1 = $b4 + .label return = $b9 + .label return_1 = $bb + .label return_2 = $bd + .label row_bits = $b3 + .label return_10 = $bf + .label keycode = $4d + .label return_11 = $b5 + .label return_12 = $99 + //SEG763 [333] (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 - //SEG732 [326] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG764 [334] (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 - //SEG733 [327] (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 + //SEG765 [335] (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 - //SEG734 [328] (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 + //SEG766 [336] (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 - //SEG735 keyboard_event_pressed::@return + //SEG767 keyboard_event_pressed::@return breturn: - //SEG736 [329] return + //SEG768 [337] return rts } -//SEG737 keyboard_event_get +//SEG769 keyboard_event_get keyboard_event_get: { - .label return = $4c - .label return_3 = $6f - //SEG738 [330] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 + .label return = $4e + .label return_3 = $71 + //SEG770 [338] 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 - //SEG739 keyboard_event_get::@3 + //SEG771 keyboard_event_get::@3 b3: - //SEG740 [331] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG772 [339] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG741 [332] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG773 [340] (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 - //SEG742 [333] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG774 [341] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] breturn_from_b3: - //SEG743 [333] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG744 [333] 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 + //SEG775 [341] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG776 [341] 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 - //SEG745 [333] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG777 [341] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] breturn_from_keyboard_event_get: - //SEG746 [333] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG747 [333] 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 + //SEG778 [341] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG779 [341] 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 - //SEG748 keyboard_event_get::@return + //SEG780 keyboard_event_get::@return breturn: - //SEG749 [334] return + //SEG781 [342] return rts } -//SEG750 keyboard_event_scan +//SEG782 keyboard_event_scan keyboard_event_scan: { - .label _3 = $c0 - .label _4 = $c1 - .label _11 = $c3 - .label _14 = $b8 - .label _18 = $ba - .label _22 = $bc - .label _26 = $be - .label row_scan = $b6 - .label keycode = $50 - .label row = $4d - .label col = $4f - .label event_type = $c2 - //SEG751 [336] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + .label _3 = $c2 + .label _4 = $c3 + .label _11 = $c5 + .label _14 = $ba + .label _18 = $bc + .label _22 = $be + .label _26 = $c0 + .label row_scan = $b8 + .label keycode = $52 + .label row = $4f + .label col = $51 + .label event_type = $c4 + //SEG783 [344] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] b1_from_keyboard_event_scan: - //SEG752 [336] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG753 [336] 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 + //SEG784 [344] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG785 [344] 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 - //SEG754 [336] 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 + //SEG786 [344] 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 - //SEG755 [336] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG787 [344] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] b1_from_b3: - //SEG756 [336] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG757 [336] 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 - //SEG758 [336] 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 + //SEG788 [344] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG789 [344] 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 + //SEG790 [344] 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 - //SEG759 keyboard_event_scan::@1 + //SEG791 keyboard_event_scan::@1 b1: - //SEG760 [337] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuz1=vbuz2 + //SEG792 [345] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuz1=vbuz2 lda row sta keyboard_matrix_read.rowid - //SEG761 [338] call keyboard_matrix_read + //SEG793 [346] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG762 [339] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 -- vbuz1=vbuz2 + //SEG794 [347] (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 - //SEG763 keyboard_event_scan::@25 + //SEG795 keyboard_event_scan::@25 b25: - //SEG764 [340] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuz2 + //SEG796 [348] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuz2 lda keyboard_matrix_read.return_2 sta row_scan - //SEG765 [341] 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 + //SEG797 [349] 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 - //SEG766 keyboard_event_scan::@13 + //SEG798 keyboard_event_scan::@13 b13: - //SEG767 [342] (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 + //SEG799 [350] (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 - //SEG768 [343] 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] + //SEG800 [351] 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: - //SEG769 [343] 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 - //SEG770 [343] 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 + //SEG801 [351] 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 + //SEG802 [351] 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 - //SEG771 keyboard_event_scan::@3 + //SEG803 keyboard_event_scan::@3 b3: - //SEG772 [344] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG804 [352] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG773 [345] 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 + //SEG805 [353] 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 - //SEG774 [346] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG806 [354] 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 - //SEG775 keyboard_event_scan::@20 + //SEG807 keyboard_event_scan::@20 b20: - //SEG776 [347] call keyboard_event_pressed - //SEG777 [324] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG808 [355] call keyboard_event_pressed + //SEG809 [332] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] keyboard_event_pressed_from_b20: - //SEG778 [324] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG810 [332] 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 - //SEG779 [348] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG811 [356] (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 - //SEG780 keyboard_event_scan::@26 + //SEG812 keyboard_event_scan::@26 b26: - //SEG781 [349] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 -- vbuz1=vbuz2 + //SEG813 [357] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 -- vbuz1=vbuz2 lda keyboard_event_pressed.return sta _14 - //SEG782 [350] 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 + //SEG814 [358] 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 - //SEG783 [351] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG815 [359] 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 - //SEG784 keyboard_event_scan::@21 + //SEG816 keyboard_event_scan::@21 b21: - //SEG785 [352] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] + //SEG817 [360] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] b9_from_b21: - //SEG786 [352] 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 + //SEG818 [360] 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 - //SEG787 [352] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG819 [360] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] b9_from_b26: - //SEG788 [352] 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 + //SEG820 [360] 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 - //SEG789 keyboard_event_scan::@9 + //SEG821 keyboard_event_scan::@9 b9: - //SEG790 [353] call keyboard_event_pressed - //SEG791 [324] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG822 [361] call keyboard_event_pressed + //SEG823 [332] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] keyboard_event_pressed_from_b9: - //SEG792 [324] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG824 [332] 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 - //SEG793 [354] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG825 [362] (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 - //SEG794 keyboard_event_scan::@27 + //SEG826 keyboard_event_scan::@27 b27: - //SEG795 [355] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 -- vbuz1=vbuz2 + //SEG827 [363] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_1 sta _18 - //SEG796 [356] 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 + //SEG828 [364] 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 - //SEG797 keyboard_event_scan::@22 + //SEG829 keyboard_event_scan::@22 b22: - //SEG798 [357] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuz1=vbuz1_bor_vbuc1 + //SEG830 [365] (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 - //SEG799 [358] 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] + //SEG831 [366] 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: - //SEG800 [358] 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 + //SEG832 [366] 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 - //SEG801 keyboard_event_scan::@10 + //SEG833 keyboard_event_scan::@10 b10: - //SEG802 [359] call keyboard_event_pressed - //SEG803 [324] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG834 [367] call keyboard_event_pressed + //SEG835 [332] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] keyboard_event_pressed_from_b10: - //SEG804 [324] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG836 [332] 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 - //SEG805 [360] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG837 [368] (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 - //SEG806 keyboard_event_scan::@28 + //SEG838 keyboard_event_scan::@28 b28: - //SEG807 [361] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 -- vbuz1=vbuz2 + //SEG839 [369] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_2 sta _22 - //SEG808 [362] 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 + //SEG840 [370] 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 - //SEG809 keyboard_event_scan::@23 + //SEG841 keyboard_event_scan::@23 b23: - //SEG810 [363] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuz1=vbuz1_bor_vbuc1 + //SEG842 [371] (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 - //SEG811 [364] 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] + //SEG843 [372] 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: - //SEG812 [364] 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 + //SEG844 [372] 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 - //SEG813 keyboard_event_scan::@11 + //SEG845 keyboard_event_scan::@11 b11: - //SEG814 [365] call keyboard_event_pressed - //SEG815 [324] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG846 [373] call keyboard_event_pressed + //SEG847 [332] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] keyboard_event_pressed_from_b11: - //SEG816 [324] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG848 [332] 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 - //SEG817 [366] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG849 [374] (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 - //SEG818 keyboard_event_scan::@29 + //SEG850 keyboard_event_scan::@29 b29: - //SEG819 [367] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 -- vbuz1=vbuz2 + //SEG851 [375] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_10 sta _26 - //SEG820 [368] 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 + //SEG852 [376] 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 - //SEG821 keyboard_event_scan::@24 + //SEG853 keyboard_event_scan::@24 b24: - //SEG822 [369] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuz1=vbuz2_bor_vbuc1 + //SEG854 [377] (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 - //SEG823 keyboard_event_scan::@return + //SEG855 keyboard_event_scan::@return breturn: - //SEG824 [370] return + //SEG856 [378] return rts - //SEG825 [371] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG857 [379] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b4_from_b25: - //SEG826 [371] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG827 [371] 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 - //SEG828 [371] 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 + //SEG858 [379] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG859 [379] 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 + //SEG860 [379] 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 - //SEG829 [371] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG861 [379] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] b4_from_b5: - //SEG830 [371] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG831 [371] 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 - //SEG832 [371] 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 + //SEG862 [379] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG863 [379] 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 + //SEG864 [379] 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 - //SEG833 keyboard_event_scan::@4 + //SEG865 keyboard_event_scan::@4 b4: - //SEG834 [372] (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 + //SEG866 [380] (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 - //SEG835 [373] (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 + //SEG867 [381] (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 - //SEG836 [374] 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 + //SEG868 [382] 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 - //SEG837 keyboard_event_scan::@15 + //SEG869 keyboard_event_scan::@15 b15: - //SEG838 [375] 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 + //SEG870 [383] 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 - //SEG839 keyboard_event_scan::@16 + //SEG871 keyboard_event_scan::@16 b16: - //SEG840 [376] (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 + //SEG872 [384] (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 - //SEG841 [377] 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 + //SEG873 [385] 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 - //SEG842 keyboard_event_scan::@17 + //SEG874 keyboard_event_scan::@17 b17: - //SEG843 [378] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG875 [386] *((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 - //SEG844 [379] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG876 [387] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG845 [380] 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] + //SEG877 [388] 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: - //SEG846 [380] 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 + //SEG878 [388] 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 - //SEG847 keyboard_event_scan::@5 + //SEG879 keyboard_event_scan::@5 b5: - //SEG848 [381] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG880 [389] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG849 [382] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuz1=_inc_vbuz1 + //SEG881 [390] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG850 [383] 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 + //SEG882 [391] 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 - //SEG851 keyboard_event_scan::@19 + //SEG883 keyboard_event_scan::@19 b19: - //SEG852 [384] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG884 [392] *((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 - //SEG853 keyboard_event_scan::@7 + //SEG885 keyboard_event_scan::@7 b7: - //SEG854 [385] (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 + //SEG886 [393] (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 - //SEG855 [386] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG887 [394] *((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 - //SEG856 [387] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG888 [395] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5_from_b7 } -//SEG857 keyboard_matrix_read +//SEG889 keyboard_matrix_read keyboard_matrix_read: { - .label return = $c4 - .label rowid = $b4 - .label return_2 = $b5 - //SEG858 [388] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 + .label return = $c6 + .label rowid = $b6 + .label return_2 = $b7 + //SEG890 [396] *((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 - //SEG859 [389] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuz1=_bnot__deref_pbuc1 + //SEG891 [397] (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 - //SEG860 keyboard_matrix_read::@return + //SEG892 keyboard_matrix_read::@return breturn: - //SEG861 [390] return + //SEG893 [398] return rts } -//SEG862 render_show +//SEG894 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 = $52 - //SEG863 [391] 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 + .label d018val = $54 + //SEG895 [399] 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 - //SEG864 [392] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] + //SEG896 [400] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] toD0182_from_render_show: jmp toD0182 - //SEG865 render_show::toD0182 + //SEG897 render_show::toD0182 toD0182: - //SEG866 [393] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] + //SEG898 [401] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] b2_from_toD0182: - //SEG867 [393] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@2#0] -- vbuz1=vbuc1 + //SEG899 [401] 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 - //SEG868 render_show::@2 + //SEG900 render_show::@2 b2: - //SEG869 [394] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuz1 + //SEG901 [402] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuz1 lda d018val sta D018 - //SEG870 [395] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 + //SEG902 [403] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 lda render_screen_show sta render_screen_showing_1 jmp breturn - //SEG871 render_show::@return + //SEG903 render_show::@return breturn: - //SEG872 [396] return + //SEG904 [404] return rts - //SEG873 [397] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] + //SEG905 [405] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] toD0181_from_render_show: jmp toD0181 - //SEG874 render_show::toD0181 + //SEG906 render_show::toD0181 toD0181: - //SEG875 [393] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] + //SEG907 [401] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] b2_from_toD0181: - //SEG876 [393] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@2#0] -- vbuz1=vbuc1 + //SEG908 [401] 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 } -//SEG877 play_init +//SEG909 play_init play_init: { - .label _1 = $c6 - .label pli = $54 - .label idx = $56 - .label j = $53 - //SEG878 [399] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] + .label _1 = $c8 + .label pli = $56 + .label idx = $58 + .label j = $55 + //SEG910 [407] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] b1_from_play_init: - //SEG879 [399] 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 + //SEG911 [407] 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 - //SEG880 [399] 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 + //SEG912 [407] 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 - //SEG881 [399] 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 + //SEG913 [407] 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 - //SEG882 [399] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] + //SEG914 [407] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] b1_from_b1: - //SEG883 [399] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy - //SEG884 [399] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy - //SEG885 [399] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy + //SEG915 [407] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy + //SEG916 [407] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy + //SEG917 [407] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy jmp b1 - //SEG886 play_init::@1 + //SEG918 play_init::@1 b1: - //SEG887 [400] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG919 [408] (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 - //SEG888 [401] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuz1=pbuz2 + //SEG920 [409] *((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 - //SEG889 [402] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG921 [410] *((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 - //SEG890 [403] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG922 [411] (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 @@ -13115,246 +13687,249 @@ play_init: { bcc !+ inc pli+1 !: - //SEG891 [404] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG923 [412] (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 - //SEG892 [405] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuz1=_inc_vbuz1 + //SEG924 [413] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuz1=_inc_vbuz1 inc j - //SEG893 [406] 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 + //SEG925 [414] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_init::@1 -- vbuz1_neq_vbuc1_then_la1 lda j cmp #PLAYFIELD_LINES-1+1 bne b1_from_b1 jmp b2 - //SEG894 play_init::@2 + //SEG926 play_init::@2 b2: - //SEG895 [407] *((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 + //SEG927 [415] *((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 + //SEG928 [416] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0) -- vbuz1=_deref_pbuc1 + lda MOVEDOWN_SLOW_SPEEDS + sta current_movedown_slow jmp breturn - //SEG896 play_init::@return + //SEG929 play_init::@return breturn: - //SEG897 [408] return + //SEG930 [417] return rts } -//SEG898 sprites_irq_init +//SEG931 sprites_irq_init sprites_irq_init: { - //SEG899 asm { sei } + //SEG932 asm { sei } sei - //SEG900 [410] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG933 [419] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG901 asm { ldaCIA1_INTERRUPT } + //SEG934 asm { ldaCIA1_INTERRUPT } lda CIA1_INTERRUPT - //SEG902 [412] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 + //SEG935 [421] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_DDR_MEMORY_MASK sta PROCPORT_DDR - //SEG903 [413] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 + //SEG936 [422] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - //SEG904 [414] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 + //SEG937 [423] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG905 [415] *((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 + //SEG938 [424] *((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 - //SEG906 [416] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 + //SEG939 [425] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER_FIRST sta RASTER - //SEG907 [417] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG940 [426] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_ENABLE - //SEG908 [418] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 + //SEG941 [427] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 lda #sprites_irq sta HARDWARE_IRQ+1 - //SEG909 asm { cli } + //SEG942 asm { cli } cli jmp breturn - //SEG910 sprites_irq_init::@return + //SEG943 sprites_irq_init::@return breturn: - //SEG911 [420] return + //SEG944 [429] return rts } -//SEG912 sprites_init +//SEG945 sprites_init sprites_init: { - .label s2 = $c7 - .label xpos = $58 - .label s = $57 - //SEG913 [421] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + .label s2 = $c9 + .label xpos = $5a + .label s = $59 + //SEG946 [430] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 lda #$f sta SPRITES_ENABLE - //SEG914 [422] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG947 [431] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SPRITES_MC - //SEG915 [423] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG948 [432] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 lda SPRITES_MC sta SPRITES_EXPAND_Y - //SEG916 [424] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG949 [433] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 lda SPRITES_EXPAND_Y sta SPRITES_EXPAND_X - //SEG917 [425] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] + //SEG950 [434] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] b1_from_sprites_init: - //SEG918 [425] 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 + //SEG951 [434] 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 - //SEG919 [425] 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 + //SEG952 [434] 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 - //SEG920 [425] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] + //SEG953 [434] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] b1_from_b1: - //SEG921 [425] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy - //SEG922 [425] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy + //SEG954 [434] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy + //SEG955 [434] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy jmp b1 - //SEG923 sprites_init::@1 + //SEG956 sprites_init::@1 b1: - //SEG924 [426] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG957 [435] (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 - //SEG925 [427] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG958 [436] *((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 - //SEG926 [428] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG959 [437] *((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 - //SEG927 [429] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG960 [438] (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 - //SEG928 [430] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuz1=_inc_vbuz1 + //SEG961 [439] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuz1=_inc_vbuz1 inc s - //SEG929 [431] 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 + //SEG962 [440] 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 - //SEG930 sprites_init::@return + //SEG963 sprites_init::@return breturn: - //SEG931 [432] return + //SEG964 [441] return rts } -//SEG932 render_init +//SEG965 render_init render_init: { .const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_CHARSET)>>6 - .label _13 = $c8 - .label _14 = $c9 - .label li_1 = $5a - .label li_2 = $5c - .label i = $59 + .label _13 = $ca + .label _14 = $cb + .label li_1 = $5c + .label li_2 = $5e + .label i = $5b jmp vicSelectGfxBank1 - //SEG933 render_init::vicSelectGfxBank1 + //SEG966 render_init::vicSelectGfxBank1 vicSelectGfxBank1: - //SEG934 [434] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG967 [443] *((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 - //SEG935 [435] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] + //SEG968 [444] 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 - //SEG936 render_init::vicSelectGfxBank1_toDd001 + //SEG969 render_init::vicSelectGfxBank1_toDd001 vicSelectGfxBank1_toDd001: jmp vicSelectGfxBank1_b1 - //SEG937 render_init::vicSelectGfxBank1_@1 + //SEG970 render_init::vicSelectGfxBank1_@1 vicSelectGfxBank1_b1: - //SEG938 [436] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 + //SEG971 [445] *((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 - //SEG939 render_init::@3 + //SEG972 render_init::@3 b3: - //SEG940 [437] *((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 + //SEG973 [446] *((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 - //SEG941 [438] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG974 [447] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BORDERCOL - //SEG942 [439] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG975 [448] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BGCOL1 - //SEG943 [440] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 + //SEG976 [449] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 lda #BLUE sta BGCOL2 - //SEG944 [441] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 + //SEG977 [450] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 lda #CYAN sta BGCOL3 - //SEG945 [442] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 + //SEG978 [451] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 lda #GREY sta BGCOL4 - //SEG946 [443] call render_screen_original - //SEG947 [456] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] + //SEG979 [452] call render_screen_original + //SEG980 [465] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] render_screen_original_from_b3: - //SEG948 [456] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 + //SEG981 [465] 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 - //SEG949 [444] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] + //SEG982 [453] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] b4_from_b3: jmp b4 - //SEG950 render_init::@4 + //SEG983 render_init::@4 b4: - //SEG951 [445] call render_screen_original - //SEG952 [456] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] + //SEG984 [454] call render_screen_original + //SEG985 [465] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] render_screen_original_from_b4: - //SEG953 [456] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_init::@4->render_screen_original#0] -- pbuz1=pbuc1 + //SEG986 [465] 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 - //SEG954 [446] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] + //SEG987 [455] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] b1_from_b4: - //SEG955 [446] 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 + //SEG988 [455] 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 - //SEG956 [446] 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 + //SEG989 [455] 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 - //SEG957 [446] 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 + //SEG990 [455] 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 - //SEG958 [446] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + //SEG991 [455] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] b1_from_b1: - //SEG959 [446] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - //SEG960 [446] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy - //SEG961 [446] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy + //SEG992 [455] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG993 [455] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + //SEG994 [455] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy jmp b1 - //SEG962 render_init::@1 + //SEG995 render_init::@1 b1: - //SEG963 [447] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG996 [456] (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 - //SEG964 [448] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuz1=pbuz2 + //SEG997 [457] *((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 - //SEG965 [449] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG998 [458] (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 - //SEG966 [450] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuz1=pbuz2 + //SEG999 [459] *((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 - //SEG967 [451] (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 + //SEG1000 [460] (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 @@ -13362,7 +13937,7 @@ render_init: { bcc !+ inc li_1+1 !: - //SEG968 [452] (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 + //SEG1001 [461] (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 @@ -13370,351 +13945,351 @@ render_init: { bcc !+ inc li_2+1 !: - //SEG969 [453] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuz1=_inc_vbuz1 + //SEG1002 [462] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG970 [454] 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 + //SEG1003 [463] 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 - //SEG971 render_init::@return + //SEG1004 render_init::@return breturn: - //SEG972 [455] return + //SEG1005 [464] return rts } -//SEG973 render_screen_original +//SEG1006 render_screen_original render_screen_original: { .const SPACE = 0 - .label screen = $63 - .label cols = $65 - .label x = $67 - .label oscr = $5f - .label ocols = $61 - .label y = $5e - //SEG974 [457] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] + .label screen = $65 + .label cols = $67 + .label x = $69 + .label oscr = $61 + .label ocols = $63 + .label y = $60 + //SEG1007 [466] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] b1_from_render_screen_original: - //SEG975 [457] 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 + //SEG1008 [466] 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 - //SEG976 [457] 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 + //SEG1009 [466] 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 - //SEG977 [457] 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 + //SEG1010 [466] 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 - //SEG978 [457] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS#0 [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 + //SEG1011 [466] 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 - //SEG979 [457] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#4] -- register_copy + //SEG1012 [466] 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 - //SEG980 [457] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] + //SEG1013 [466] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] b1_from_b7: - //SEG981 [457] 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 - //SEG982 [457] 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 - //SEG983 [457] 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 - //SEG984 [457] 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 - //SEG985 [457] 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 + //SEG1014 [466] 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 + //SEG1015 [466] 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 + //SEG1016 [466] 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 + //SEG1017 [466] 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 + //SEG1018 [466] 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 - //SEG986 render_screen_original::@1 + //SEG1019 render_screen_original::@1 b1: - //SEG987 [458] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] + //SEG1020 [467] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] b2_from_b1: - //SEG988 [458] 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 + //SEG1021 [467] 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 - //SEG989 [458] 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 - //SEG990 [458] 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 + //SEG1022 [467] 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 + //SEG1023 [467] 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 - //SEG991 [458] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] + //SEG1024 [467] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] b2_from_b2: - //SEG992 [458] 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 - //SEG993 [458] 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 - //SEG994 [458] 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 + //SEG1025 [467] 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 + //SEG1026 [467] 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 + //SEG1027 [467] 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 - //SEG995 render_screen_original::@2 + //SEG1028 render_screen_original::@2 b2: - //SEG996 [459] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG1029 [468] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG997 [460] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 + //SEG1030 [469] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG998 [461] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG1031 [470] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG999 [462] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 + //SEG1032 [471] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1000 [463] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuz1=_inc_vbuz1 + //SEG1033 [472] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuz1=_inc_vbuz1 inc x - //SEG1001 [464] 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 + //SEG1034 [473] 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 - //SEG1002 [465] 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] + //SEG1035 [474] 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: - //SEG1003 [465] 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 - //SEG1004 [465] 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 - //SEG1005 [465] 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 - //SEG1006 [465] 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 - //SEG1007 [465] 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 + //SEG1036 [474] 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 + //SEG1037 [474] 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 + //SEG1038 [474] 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 + //SEG1039 [474] 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 + //SEG1040 [474] 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 - //SEG1008 render_screen_original::@3 + //SEG1041 render_screen_original::@3 b3: - //SEG1009 [466] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG1042 [475] *((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 - //SEG1010 [467] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 + //SEG1043 [476] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG1011 [468] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 + //SEG1044 [477] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 inc oscr bne !+ inc oscr+1 !: - //SEG1012 [469] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG1045 [478] *((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 - //SEG1013 [470] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 + //SEG1046 [479] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1014 [471] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 + //SEG1047 [480] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 inc ocols bne !+ inc ocols+1 !: - //SEG1015 [472] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuz1=_inc_vbuz1 + //SEG1048 [481] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuz1=_inc_vbuz1 inc x - //SEG1016 [473] 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 + //SEG1049 [482] 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 - //SEG1017 [474] 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] + //SEG1050 [483] 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: - //SEG1018 [474] 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 - //SEG1019 [474] 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 - //SEG1020 [474] 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 + //SEG1051 [483] 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 + //SEG1052 [483] 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 + //SEG1053 [483] 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 - //SEG1021 render_screen_original::@4 + //SEG1054 render_screen_original::@4 b4: - //SEG1022 [475] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG1055 [484] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG1023 [476] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 + //SEG1056 [485] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG1024 [477] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG1057 [486] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG1025 [478] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 + //SEG1058 [487] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1026 [479] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuz1=_inc_vbuz1 + //SEG1059 [488] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuz1=_inc_vbuz1 inc x - //SEG1027 [480] 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 + //SEG1060 [489] 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 - //SEG1028 render_screen_original::@7 + //SEG1061 render_screen_original::@7 b7: - //SEG1029 [481] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 + //SEG1062 [490] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG1030 [482] 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 + //SEG1063 [491] 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 - //SEG1031 render_screen_original::@return + //SEG1064 render_screen_original::@return breturn: - //SEG1032 [483] return + //SEG1065 [492] return rts } -//SEG1033 sid_rnd_init +//SEG1066 sid_rnd_init sid_rnd_init: { - //SEG1034 [484] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 + //SEG1067 [493] *((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 - //SEG1035 [485] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG1068 [494] *((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 - //SEG1036 sid_rnd_init::@return + //SEG1069 sid_rnd_init::@return breturn: - //SEG1037 [486] return + //SEG1070 [495] return rts } -//SEG1038 sprites_irq +//SEG1071 sprites_irq sprites_irq: { .const toSpritePtr2_return = PLAYFIELD_SPRITES>>6 - .label _4 = $d1 - .label ypos = $ca - .label ptr = $cb - .label ptr_1 = $d5 - .label ptr_2 = $d6 - .label ptr_3 = $cc - .label ptr_4 = $cd - .label raster_next = $69 - //SEG1039 entry interrupt(HARDWARE_CLOBBER) + .label _4 = $d3 + .label ypos = $cc + .label ptr = $cd + .label ptr_1 = $d7 + .label ptr_2 = $d8 + .label ptr_3 = $ce + .label ptr_4 = $cf + .label raster_next = $6b + //SEG1072 entry interrupt(HARDWARE_CLOBBER) sta rega+1 stx regx+1 sty regy+1 - //SEG1040 asm { cld } + //SEG1073 asm { cld } cld - //SEG1041 [488] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuz1=vbuz2 + //SEG1074 [497] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuz1=vbuz2 lda irq_sprite_ypos sta ypos - //SEG1042 [489] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 + //SEG1075 [498] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 lda ypos sta SPRITES_YPOS - //SEG1043 [490] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 + //SEG1076 [499] *((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 - //SEG1044 [491] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 + //SEG1077 [500] *((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 - //SEG1045 [492] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 + //SEG1078 [501] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 lda ypos sta SPRITES_YPOS+6 jmp b1 - //SEG1046 sprites_irq::@1 + //SEG1079 sprites_irq::@1 b1: - //SEG1047 [493] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 + //SEG1080 [502] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 lda RASTER cmp irq_sprite_ypos bcc b1 jmp b7 - //SEG1048 sprites_irq::@7 + //SEG1081 sprites_irq::@7 b7: - //SEG1049 [494] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuz1=vbuz2 + //SEG1082 [503] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuz1=vbuz2 lda irq_sprite_ptr sta ptr - //SEG1050 [495] 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 + //SEG1083 [504] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 -- vbuz1_eq_0_then_la1 lda render_screen_showing cmp #0 beq b2 jmp b8 - //SEG1051 sprites_irq::@8 + //SEG1084 sprites_irq::@8 b8: - //SEG1052 [496] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuz1 + //SEG1085 [505] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuz1 lda ptr sta PLAYFIELD_SPRITE_PTRS_2 - //SEG1053 [497] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuz1=_inc_vbuz2 + //SEG1086 [506] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuz1=_inc_vbuz2 ldy ptr iny sty ptr_3 - //SEG1054 [498] *((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 + //SEG1087 [507] *((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 - //SEG1055 [499] *((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 + //SEG1088 [508] *((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 - //SEG1056 [500] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuz1=_inc_vbuz2 + //SEG1089 [509] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuz1=_inc_vbuz2 ldy ptr_3 iny sty ptr_4 - //SEG1057 [501] *((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 + //SEG1090 [510] *((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 - //SEG1058 sprites_irq::@3 + //SEG1091 sprites_irq::@3 b3: - //SEG1059 [502] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz2 + //SEG1092 [511] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz2 ldy irq_cnt iny sty irq_cnt_1 - //SEG1060 [503] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 + //SEG1093 [512] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 lda irq_cnt_1 cmp #$a beq b4 jmp b10 - //SEG1061 sprites_irq::@10 + //SEG1094 sprites_irq::@10 b10: - //SEG1062 [504] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 + //SEG1095 [513] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 lda #$15 clc adc irq_raster_next sta irq_raster_next_2 - //SEG1063 [505] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 + //SEG1096 [514] (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 - //SEG1064 [506] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_plus_vbuc1 + //SEG1097 [515] (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 - //SEG1065 [507] phi from sprites_irq::@10 sprites_irq::@13 to sprites_irq::@5 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5] + //SEG1098 [516] phi from sprites_irq::@10 sprites_irq::@13 to sprites_irq::@5 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5] b5_from_b10: b5_from_b13: - //SEG1066 [507] phi (byte) irq_raster_next#13 = (byte) irq_raster_next#2 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5#0] -- register_copy + //SEG1099 [516] phi (byte) irq_raster_next#13 = (byte) irq_raster_next#2 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5#0] -- register_copy jmp b5 - //SEG1067 sprites_irq::@5 + //SEG1100 sprites_irq::@5 b5: - //SEG1068 [508] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 -- vbuz1=vbuz2 + //SEG1101 [517] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 -- vbuz1=vbuz2 lda irq_raster_next_13 sta raster_next - //SEG1069 [509] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=vbuz2_band_vbuc1 + //SEG1102 [518] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=vbuz2_band_vbuc1 lda #7 and raster_next sta _4 - //SEG1070 [510] if((byte~) sprites_irq::$4!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto sprites_irq::@6 -- vbuz1_neq_vbuc1_then_la1 + //SEG1103 [519] if((byte~) sprites_irq::$4!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto sprites_irq::@6 -- vbuz1_neq_vbuc1_then_la1 lda _4 cmp #3 bne b6_from_b5 jmp b12 - //SEG1071 sprites_irq::@12 + //SEG1104 sprites_irq::@12 b12: - //SEG1072 [511] (byte) sprites_irq::raster_next#1 ← (byte) sprites_irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_minus_1 + //SEG1105 [520] (byte) sprites_irq::raster_next#1 ← (byte) sprites_irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_minus_1 dec raster_next - //SEG1073 [512] phi from sprites_irq::@12 sprites_irq::@5 to sprites_irq::@6 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6] + //SEG1106 [521] phi from sprites_irq::@12 sprites_irq::@5 to sprites_irq::@6 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6] b6_from_b12: b6_from_b5: - //SEG1074 [512] phi (byte) sprites_irq::raster_next#2 = (byte) sprites_irq::raster_next#1 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6#0] -- register_copy + //SEG1107 [521] phi (byte) sprites_irq::raster_next#2 = (byte) sprites_irq::raster_next#1 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6#0] -- register_copy jmp b6 - //SEG1075 sprites_irq::@6 + //SEG1108 sprites_irq::@6 b6: - //SEG1076 [513] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 -- _deref_pbuc1=vbuz1 + //SEG1109 [522] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 -- _deref_pbuc1=vbuz1 lda raster_next sta RASTER - //SEG1077 [514] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG1110 [523] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS jmp breturn - //SEG1078 sprites_irq::@return + //SEG1111 sprites_irq::@return breturn: - //SEG1079 [515] return - exit interrupt(HARDWARE_CLOBBER) + //SEG1112 [524] return - exit interrupt(HARDWARE_CLOBBER) rega: lda #00 regx: @@ -13722,49 +14297,49 @@ sprites_irq: { regy: ldy #00 rti - //SEG1080 sprites_irq::@4 + //SEG1113 sprites_irq::@4 b4: - //SEG1081 [516] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 + //SEG1114 [525] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 lda #0 sta irq_cnt_14 - //SEG1082 [517] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 + //SEG1115 [526] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next_1 - //SEG1083 [518] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 + //SEG1116 [527] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 lda #$32 sta irq_sprite_ypos_1 - //SEG1084 [519] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] + //SEG1117 [528] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] toSpritePtr2_from_b4: jmp toSpritePtr2 - //SEG1085 sprites_irq::toSpritePtr2 + //SEG1118 sprites_irq::toSpritePtr2 toSpritePtr2: jmp b13 - //SEG1086 sprites_irq::@13 + //SEG1119 sprites_irq::@13 b13: - //SEG1087 [520] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 + //SEG1120 [529] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 lda #toSpritePtr2_return sta irq_sprite_ptr_1 jmp b5_from_b13 - //SEG1088 sprites_irq::@2 + //SEG1121 sprites_irq::@2 b2: - //SEG1089 [521] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuz1 + //SEG1122 [530] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuz1 lda ptr sta PLAYFIELD_SPRITE_PTRS_1 - //SEG1090 [522] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuz1=_inc_vbuz2 + //SEG1123 [531] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuz1=_inc_vbuz2 ldy ptr iny sty ptr_1 - //SEG1091 [523] *((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 + //SEG1124 [532] *((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 - //SEG1092 [524] *((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 + //SEG1125 [533] *((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 - //SEG1093 [525] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuz1=_inc_vbuz2 + //SEG1126 [534] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuz1=_inc_vbuz2 ldy ptr_1 iny sty ptr_2 - //SEG1094 [526] *((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 + //SEG1127 [535] *((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 @@ -13791,6 +14366,7 @@ sprites_irq: { PIECES_START_X: .byte 4, 4, 4, 4, 4, 4, 4 PIECES_START_Y: .byte 1, 1, 1, 1, 1, 0, 1 score_add_bcd: .dword 0, $40, $100, $300, $1200 + MOVEDOWN_SLOW_SPEEDS: .byte $30, $2b, $26, $21, $1c, $17, $12, $d, 8, 6, 5, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 .align $80 screen_lines_1: .fill 2*PLAYFIELD_LINES, 0 .align $40 @@ -13836,392 +14412,400 @@ Statement [6] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( Statement [7] (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ ] ( ) always clobbers reg byte a Statement [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 [ ] ( ) always clobbers reg byte a Statement [10] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a -Statement [30] (byte*~) current_piece_gfx#102 ← (byte*) current_piece_gfx#16 [ current_ypos#86 current_ypos#18 current_xpos#112 current_xpos#23 current_piece_gfx#102 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ( main:12 [ current_ypos#86 current_ypos#18 current_xpos#112 current_xpos#23 current_piece_gfx#102 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ) always clobbers reg byte a +Statement [30] (byte*~) current_piece_gfx#102 ← (byte*) current_piece_gfx#16 [ current_ypos#86 current_ypos#18 current_xpos#112 current_xpos#23 current_piece_gfx#102 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_movedown_slow#1 ] ( main:12 [ current_ypos#86 current_ypos#18 current_xpos#112 current_xpos#23 current_piece_gfx#102 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_movedown_slow#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:15 [ current_ypos#9 current_ypos#86 current_ypos#87 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:47 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:17 [ current_xpos#47 current_xpos#112 current_xpos#113 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:60 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:61 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:158 [ play_spawn_current::$3 ] -Statement [33] (byte*~) current_piece#73 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#73 ] ( main:12 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#73 ] ) 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_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 keyboard_events_size#19 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 keyboard_events_size#19 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:62 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:63 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:160 [ play_spawn_current::$3 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:55 [ current_movedown_slow#30 current_movedown_slow#19 current_movedown_slow#12 current_movedown_slow#1 current_movedown_slow#17 current_movedown_slow#20 current_movedown_slow#8 ] +Statement [33] (byte*~) current_piece#73 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#73 current_movedown_slow#1 ] ( main:12 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#73 current_movedown_slow#1 ] ) 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#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 keyboard_events_size#19 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 keyboard_events_size#19 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 ] ) 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:57 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:81 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:59 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:83 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:54 [ level_bcd#21 level_bcd#14 level_bcd#16 level_bcd#11 level_bcd#13 level_bcd#4 ] -Statement [48] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#1 current_xpos#1 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#1 current_xpos#1 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:112 [ main::key_event#0 ] -Statement [53] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#1 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#1 ] ) always clobbers reg byte a -Statement [58] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#3 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#3 ] ) always clobbers reg byte a -Statement [65] (byte*~) current_piece_gfx#103 ← (byte*) current_piece_gfx#14 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 current_ypos#87 render_screen_render#64 current_xpos#113 current_piece_gfx#103 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 current_ypos#87 render_screen_render#64 current_xpos#113 current_piece_gfx#103 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:54 [ level#24 level#14 level#19 level#12 level#16 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:56 [ level_bcd#25 level_bcd#15 level_bcd#20 level_bcd#13 level_bcd#18 level_bcd#17 level_bcd#6 ] +Statement [48] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#1 current_xpos#1 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#1 current_xpos#1 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:114 [ main::key_event#0 ] +Statement [53] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#1 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#1 ] ) always clobbers reg byte a +Statement [58] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#3 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#3 ] ) always clobbers reg byte a +Statement [65] (byte*~) current_piece_gfx#103 ← (byte*) current_piece_gfx#14 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 current_ypos#87 render_screen_render#64 current_xpos#113 current_piece_gfx#103 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 current_ypos#87 render_screen_render#64 current_xpos#113 current_piece_gfx#103 ] ) 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 [72] (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:71 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 render_screen_show#16 render_screen_render#11 ] ) always clobbers reg byte a -Statement [73] (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:71 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a -Statement [78] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen#0 ] ( main:12::render_score:69 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen#0 ] ) always clobbers reg byte a -Statement [81] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen#1 ] ( main:12::render_score:69 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen#1 ] ) always clobbers reg byte a -Statement [84] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen#2 ] ( main:12::render_score:69 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen#2 ] ) always clobbers reg byte a -Statement [87] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#11 [ render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#3 ] ( main:12::render_score:69 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#3 ] ) always clobbers reg byte a -Statement [88] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#3 render_bcd::screen#3 ] ( main:12::render_score:69 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#3 render_bcd::screen#3 ] ) always clobbers reg byte a +Statement [72] (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:71 [ current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 render_screen_show#16 render_screen_render#11 ] ) always clobbers reg byte a +Statement [73] (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:71 [ current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a +Statement [78] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen#0 ] ( main:12::render_score:69 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen#0 ] ) always clobbers reg byte a +Statement [81] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen#1 ] ( main:12::render_score:69 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen#1 ] ) always clobbers reg byte a +Statement [84] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen#2 ] ( main:12::render_score:69 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen#2 ] ) always clobbers reg byte a +Statement [87] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#11 [ render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#3 ] ( main:12::render_score:69 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#3 ] ) always clobbers reg byte a +Statement [88] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#3 render_bcd::screen#3 ] ( main:12::render_score:69 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#3 render_bcd::screen#3 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for 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 ] -Statement [90] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#11 [ render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#4 ] ( main:12::render_score:69 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#4 ] ) always clobbers reg byte a -Statement [91] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#4 render_bcd::screen#4 ] ( main:12::render_score:69 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#4 render_bcd::screen#4 ] ) always clobbers reg byte a -Statement [93] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#11 level_bcd#11 render_bcd::screen#5 ] ( main:12::render_score:69 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_bcd::screen#5 ] ) always clobbers reg byte a -Statement [98] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 [ render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte a +Statement [90] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#11 [ render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#4 ] ( main:12::render_score:69 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#4 ] ) always clobbers reg byte a +Statement [91] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#4 render_bcd::screen#4 ] ( main:12::render_score:69 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#4 render_bcd::screen#4 ] ) always clobbers reg byte a +Statement [93] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#11 level_bcd#13 render_bcd::screen#5 ] ( main:12::render_score:69 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_bcd::screen#5 ] ) always clobbers reg byte a +Statement [98] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 [ render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:11 [ render_bcd::only_low#6 ] -Statement [100] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] ) always clobbers reg byte a -Statement [101] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$3 [ render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] ) always clobbers reg byte a -Statement [102] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 [ render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte y +Statement [100] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] ) always clobbers reg byte a +Statement [101] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$3 [ render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] ) always clobbers reg byte a +Statement [102] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 [ render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:57 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:60 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:55 [ current_movedown_slow#30 current_movedown_slow#19 current_movedown_slow#12 current_movedown_slow#1 current_movedown_slow#17 current_movedown_slow#20 current_movedown_slow#8 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:59 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:62 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:47 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:61 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:81 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:63 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:83 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:54 [ level#24 level#14 level#19 level#12 level#16 ] Removing always clobbered register reg byte y as potential for zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:54 [ level_bcd#21 level_bcd#14 level_bcd#16 level_bcd#11 level_bcd#13 level_bcd#4 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:56 [ level_bcd#25 level_bcd#15 level_bcd#20 level_bcd#13 level_bcd#18 level_bcd#17 level_bcd#6 ] Removing always clobbered register reg byte y as potential for 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 ] -Statement [105] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ render_bcd::screen_pos#3 render_bcd::$5 ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_bcd::screen_pos#3 render_bcd::$5 ] ) always clobbers reg byte a -Statement [106] (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:69::render_bcd:80 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_bcd::screen_pos#3 render_bcd::$6 ] ) always clobbers reg byte a -Statement [107] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 [ render_bcd::screen_pos#3 ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_bcd::screen_pos#3 ] ) always clobbers reg byte y -Statement [108] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 [ ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 ] ) always clobbers reg byte a -Statement [111] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#0 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#0 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#0 ] ) always clobbers reg byte a +Statement [105] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ render_bcd::screen_pos#3 render_bcd::$5 ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_bcd::screen_pos#3 render_bcd::$5 ] ) always clobbers reg byte a +Statement [106] (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:69::render_bcd:80 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_bcd::screen_pos#3 render_bcd::$6 ] ) always clobbers reg byte a +Statement [107] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 [ render_bcd::screen_pos#3 ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_bcd::screen_pos#3 ] ) always clobbers reg byte y +Statement [108] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 [ ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 ] ) always clobbers reg byte a +Statement [111] (byte) render_moving::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_moving::ypos2#0 ] ( main:12::render_moving:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_movedown_slow#1 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_moving::ypos2#0 ] main:12::render_moving:67 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 render_screen_render#30 current_xpos#47 current_piece_gfx#53 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#90 current_piece_char#91 ] -Statement [114] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:21 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:22 [ render_current::l#4 render_current::l#1 ] -Statement [121] (byte~) render_current::$5 ← (byte) render_screen_render#30 + (byte) render_current::ypos2#2 [ render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::$5 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::$5 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::$5 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:23 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] -Statement [122] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) [ render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ) always clobbers reg byte a -Statement [125] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) [ render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:24 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:25 [ render_current::c#2 render_current::c#1 ] -Statement [129] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#64 [ render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ) always clobbers reg byte a -Statement [135] (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#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] main:12::render_playfield:61 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ) always clobbers reg byte a +Statement [114] (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#47 current_piece_gfx#53 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] ( main:12::render_moving:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_movedown_slow#1 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] main:12::render_moving:67 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 render_screen_render#30 current_xpos#47 current_piece_gfx#53 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 [121] (byte~) render_moving::$5 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 [ render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$5 ] ( main:12::render_moving:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_movedown_slow#1 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$5 ] main:12::render_moving:67 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 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 [122] (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#47 current_piece_gfx#53 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#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_movedown_slow#1 render_screen_render#30 current_xpos#47 current_piece_gfx#53 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:67 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 render_screen_render#30 current_xpos#47 current_piece_gfx#53 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 [125] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_moving::i#4) [ render_screen_render#30 current_xpos#47 current_piece_gfx#53 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#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_movedown_slow#1 render_screen_render#30 current_xpos#47 current_piece_gfx#53 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:67 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 render_screen_render#30 current_xpos#47 current_piece_gfx#53 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 [129] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#64 [ render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 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#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_movedown_slow#1 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 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:67 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 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 [135] (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#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_movedown_slow#1 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] main:12::render_playfield:61 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 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 [136] (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#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] main:12::render_playfield:61 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ) always clobbers reg byte a -Statement [137] (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#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:12::render_playfield:61 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a -Statement [139] *((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#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 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:61 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 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:158 [ play_spawn_current::$3 ] +Statement [136] (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#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_movedown_slow#1 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] main:12::render_playfield:61 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ) always clobbers reg byte a +Statement [137] (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#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_movedown_slow#1 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:12::render_playfield:61 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a +Statement [139] *((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#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_movedown_slow#1 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:61 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 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:160 [ 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#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 [151] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$2 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$2 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:120 [ main::render#2 ] -Statement [152] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#2 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#2 ] ) always clobbers reg byte a -Statement [157] (byte*~) current_piece#79 ← (byte*) current_piece#10 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#79 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#79 ] ) always clobbers reg byte a +Statement [151] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$2 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$2 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:122 [ main::render#2 ] +Statement [152] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#2 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#2 ] ) always clobbers reg byte a +Statement [157] (byte*~) current_piece#79 ← (byte*) current_piece#10 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#79 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#79 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:33 [ 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:38 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:37 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] Removing always clobbered register reg byte a as potential for zp ZP_BYTE:36 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] -Statement [163] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#4 current_piece_gfx#3 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#4 current_piece_gfx#3 ] ) always clobbers reg byte a -Statement [164] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$4 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$4 ] ) always clobbers reg byte a -Statement [165] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#1 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#1 ] ) always clobbers reg byte a -Statement [167] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 [ play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ( main:12::play_move_rotate:55::play_collision:158 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:12::play_move_leftright:50::play_collision:196 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:12::play_move_leftright:50::play_collision:207 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:12::play_move_down:45::play_collision:231 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level_bcd#16 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:116 [ main::render#1 ] -Statement [168] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:12::play_move_rotate:55::play_collision:158 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_move_leftright:50::play_collision:196 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_move_leftright:50::play_collision:207 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_move_down:45::play_collision:231 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level_bcd#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a -Statement [170] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:12::play_move_rotate:55::play_collision:158 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_move_leftright:50::play_collision:196 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_move_leftright:50::play_collision:207 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_move_down:45::play_collision:231 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level_bcd#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a +Statement [163] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#4 current_piece_gfx#3 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#4 current_piece_gfx#3 ] ) always clobbers reg byte a +Statement [164] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$4 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$4 ] ) always clobbers reg byte a +Statement [165] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#1 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#1 ] ) always clobbers reg byte a +Statement [167] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 [ play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ( main:12::play_move_rotate:55::play_collision:158 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:12::play_move_leftright:50::play_collision:196 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:12::play_move_leftright:50::play_collision:207 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:12::play_move_down:45::play_collision:231 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:118 [ main::render#1 ] +Statement [168] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:12::play_move_rotate:55::play_collision:158 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_move_leftright:50::play_collision:196 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_move_leftright:50::play_collision:207 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_move_down:45::play_collision:231 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a +Statement [170] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:12::play_move_rotate:55::play_collision:158 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_move_leftright:50::play_collision:196 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_move_leftright:50::play_collision:207 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_move_down:45::play_collision:231 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:39 [ 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:41 [ 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:40 [ play_collision::l#6 play_collision::l#1 ] -Statement [174] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_move_rotate:55::play_collision:158 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_leftright:50::play_collision:196 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_leftright:50::play_collision:207 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_down:45::play_collision:231 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level_bcd#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [174] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_move_rotate:55::play_collision:158 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_leftright:50::play_collision:196 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_leftright:50::play_collision:207 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_down:45::play_collision:231 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:42 [ 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:43 [ play_collision::c#2 play_collision::c#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:145 [ play_collision::i#1 ] -Statement [178] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:12::play_move_rotate:55::play_collision:158 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_move_leftright:50::play_collision:196 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_move_leftright:50::play_collision:207 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_move_down:45::play_collision:231 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level_bcd#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a -Statement [181] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_move_rotate:55::play_collision:158 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_leftright:50::play_collision:196 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_leftright:50::play_collision:207 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_down:45::play_collision:231 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level_bcd#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a -Statement [195] (byte*~) current_piece#78 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#13 current_orientation#14 current_piece#78 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#1 ] ( main:12::play_move_leftright:50 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_piece#78 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#1 ] ) always clobbers reg byte a -Statement [206] (byte*~) current_piece#77 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#13 current_orientation#14 current_piece#77 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#1 ] ( main:12::play_move_leftright:50 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_piece#77 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#1 ] ) always clobbers reg byte a -Statement [230] (byte*~) current_piece#76 ← (byte*) current_piece#16 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level_bcd#16 current_piece#76 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:12::play_move_down:45 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level_bcd#16 current_piece#76 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a -Statement [245] (byte*~) current_piece#80 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#80 lines_bcd#13 score_bcd#12 level_bcd#14 ] ( main:12::play_move_down:45 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#80 lines_bcd#13 score_bcd#12 level_bcd#14 ] ) always clobbers reg byte a -Statement [253] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:12::play_move_down:45::play_spawn_current:244 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#13 score_bcd#12 level_bcd#14 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:63 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] -Statement [254] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:12::play_move_down:45::play_spawn_current:244 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#13 score_bcd#12 level_bcd#14 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [255] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) [ current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:12::play_move_down:45::play_spawn_current:244 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#13 score_bcd#12 level_bcd#14 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [256] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:12::play_move_down:45::play_spawn_current:244 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#13 score_bcd#12 level_bcd#14 current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [257] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ( main:12::play_spawn_current:25 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] main:12::play_move_down:45::play_spawn_current:244 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#13 score_bcd#12 level_bcd#14 current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ) always clobbers reg byte a -Statement [263] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ play_spawn_current::piece_idx#1 ] ( main:12::play_spawn_current:25 [ play_spawn_current::piece_idx#1 ] main:12::play_move_down:45::play_spawn_current:244 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#13 score_bcd#12 level_bcd#14 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a -Statement [267] (byte~) play_update_score::$2 ← < (word) lines_bcd#15 [ lines_bcd#15 score_bcd#14 level_bcd#16 play_update_score::removed#0 play_update_score::$2 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#15 score_bcd#14 level_bcd#16 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:157 [ play_update_score::removed#0 ] -Statement [268] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 [ lines_bcd#15 score_bcd#14 level_bcd#16 play_update_score::removed#0 play_update_score::lines_before#0 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#15 score_bcd#14 level_bcd#16 play_update_score::removed#0 play_update_score::lines_before#0 ] ) always clobbers reg byte a -Statement [269] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ lines_bcd#15 score_bcd#14 level_bcd#16 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#15 score_bcd#14 level_bcd#16 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:163 [ play_update_score::lines_before#0 ] -Statement [270] (dword) play_update_score::add_bcd#0 ← *((const dword[]) score_add_bcd#0 + (byte~) play_update_score::$4) [ lines_bcd#15 score_bcd#14 level_bcd#16 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#15 score_bcd#14 level_bcd#16 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ) always clobbers reg byte a -Statement [272] (word) lines_bcd#23 ← (word) lines_bcd#15 + (byte) play_update_score::removed#0 [ score_bcd#14 level_bcd#16 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#23 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#14 level_bcd#16 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#23 ] ) always clobbers reg byte a -Statement [273] (dword) score_bcd#23 ← (dword) score_bcd#14 + (dword) play_update_score::add_bcd#0 [ level_bcd#16 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 level_bcd#16 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 ] ) always clobbers reg byte a -Statement [275] (byte~) play_update_score::$5 ← < (word) lines_bcd#23 [ level_bcd#16 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 play_update_score::$5 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 level_bcd#16 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 play_update_score::$5 ] ) always clobbers reg byte a -Statement [276] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 [ level_bcd#16 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 play_update_score::lines_after#0 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 level_bcd#16 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 play_update_score::lines_after#0 ] ) always clobbers reg byte a -Statement [279] (byte~) play_update_score::$9 ← (byte) level_bcd#13 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ lines_bcd#23 score_bcd#23 level_bcd#13 play_update_score::$9 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#23 score_bcd#23 level_bcd#13 play_update_score::$9 ] ) always clobbers reg byte a -Statement [281] (byte) level_bcd#4 ← (byte) level_bcd#13 + (byte/signed byte/word/signed word/dword/signed dword) 6 [ lines_bcd#23 score_bcd#23 level_bcd#4 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#23 score_bcd#23 level_bcd#4 ] ) always clobbers reg byte a -Statement [296] (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_move_down:45::play_remove_lines:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#15 score_bcd#14 level_bcd#16 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:64 [ play_remove_lines::y#8 play_remove_lines::y#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:65 [ 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:66 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] -Statement [304] *((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_move_down:45::play_remove_lines:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#15 score_bcd#14 level_bcd#16 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:69 [ 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 [307] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#0 ] ( main:12::play_move_down:45::play_lock_current:236 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#15 score_bcd#14 level_bcd#16 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#0 ] ) always clobbers reg byte a -Statement [309] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:12::play_move_down:45::play_lock_current:236 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#15 score_bcd#14 level_bcd#16 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:70 [ 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:72 [ 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:71 [ play_lock_current::l#6 play_lock_current::l#1 ] -Statement [313] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_move_down:45::play_lock_current:236 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#15 score_bcd#14 level_bcd#16 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:73 [ 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:74 [ play_lock_current::c#2 play_lock_current::c#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:175 [ play_lock_current::i#1 ] -Statement [314] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_move_down:45::play_lock_current:236 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#15 score_bcd#14 level_bcd#16 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a -Statement [325] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:12::play_move_down:45::keyboard_event_pressed:216 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level_bcd#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:347 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:353 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 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:359 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 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:365 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 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:147 [ play_collision::i#1 ] +Statement [178] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:12::play_move_rotate:55::play_collision:158 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_move_leftright:50::play_collision:196 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_move_leftright:50::play_collision:207 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_move_down:45::play_collision:231 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a +Statement [181] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_move_rotate:55::play_collision:158 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_leftright:50::play_collision:196 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_leftright:50::play_collision:207 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_down:45::play_collision:231 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [195] (byte*~) current_piece#78 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#13 current_orientation#14 current_piece#78 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#1 ] ( main:12::play_move_leftright:50 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_piece#78 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#1 ] ) always clobbers reg byte a +Statement [206] (byte*~) current_piece#77 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#13 current_orientation#14 current_piece#77 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#1 ] ( main:12::play_move_leftright:50 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_piece#77 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#1 ] ) always clobbers reg byte a +Statement [230] (byte*~) current_piece#76 ← (byte*) current_piece#16 [ current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 current_piece#76 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:12::play_move_down:45 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 current_piece#76 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a +Statement [245] (byte*~) current_piece#80 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#80 lines_bcd#13 score_bcd#12 level#14 current_movedown_slow#19 level_bcd#15 ] ( main:12::play_move_down:45 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#80 lines_bcd#13 score_bcd#12 level#14 current_movedown_slow#19 level_bcd#15 ] ) always clobbers reg byte a +Statement [253] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:12::play_move_down:45::play_spawn_current:244 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#13 score_bcd#12 level#14 current_movedown_slow#19 level_bcd#15 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:65 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] +Statement [254] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:12::play_move_down:45::play_spawn_current:244 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#13 score_bcd#12 level#14 current_movedown_slow#19 level_bcd#15 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [255] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) [ current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:12::play_move_down:45::play_spawn_current:244 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#13 score_bcd#12 level#14 current_movedown_slow#19 level_bcd#15 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [256] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:12::play_move_down:45::play_spawn_current:244 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#13 score_bcd#12 level#14 current_movedown_slow#19 level_bcd#15 current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [257] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] main:12::play_move_down:45::play_spawn_current:244 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#13 score_bcd#12 level#14 current_movedown_slow#19 level_bcd#15 current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ) always clobbers reg byte a +Statement [263] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ play_spawn_current::piece_idx#1 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 play_spawn_current::piece_idx#1 ] main:12::play_move_down:45::play_spawn_current:244 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#13 score_bcd#12 level#14 current_movedown_slow#19 level_bcd#15 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a +Statement [267] (byte~) play_update_score::$2 ← < (word) lines_bcd#15 [ current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_update_score::removed#0 play_update_score::$2 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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:159 [ play_update_score::removed#0 ] +Statement [268] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_update_score::removed#0 play_update_score::lines_before#0 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_update_score::removed#0 play_update_score::lines_before#0 ] ) always clobbers reg byte a +Statement [269] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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:165 [ play_update_score::lines_before#0 ] +Statement [270] (dword) play_update_score::add_bcd#0 ← *((const dword[]) score_add_bcd#0 + (byte~) play_update_score::$4) [ current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ) always clobbers reg byte a +Statement [272] (word) lines_bcd#23 ← (word) lines_bcd#15 + (byte) play_update_score::removed#0 [ current_movedown_slow#12 score_bcd#14 level#19 level_bcd#20 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#23 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 score_bcd#14 level#19 level_bcd#20 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#23 ] ) always clobbers reg byte a +Statement [273] (dword) score_bcd#23 ← (dword) score_bcd#14 + (dword) play_update_score::add_bcd#0 [ current_movedown_slow#12 level#19 level_bcd#20 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 level#19 level_bcd#20 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 ] ) always clobbers reg byte a +Statement [275] (byte~) play_update_score::$5 ← < (word) lines_bcd#23 [ current_movedown_slow#12 level#19 level_bcd#20 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 play_update_score::$5 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 level#19 level_bcd#20 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 play_update_score::$5 ] ) always clobbers reg byte a +Statement [276] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#12 level#19 level_bcd#20 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 play_update_score::lines_after#0 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 level#19 level_bcd#20 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 play_update_score::lines_after#0 ] ) always clobbers reg byte a +Statement [283] if((byte) level#16>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 [ level_bcd#20 level#16 ] ( main:12::play_move_down:45::play_update_score:242::play_increase_level:279 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#23 score_bcd#23 level_bcd#20 level#16 ] ) always clobbers reg byte a +Statement [284] (byte) current_movedown_slow#8 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#16) [ level_bcd#20 level#16 current_movedown_slow#8 ] ( main:12::play_move_down:45::play_update_score:242::play_increase_level:279 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#23 score_bcd#23 level_bcd#20 level#16 current_movedown_slow#8 ] ) always clobbers reg byte a +Statement [287] (byte~) play_increase_level::$1 ← (byte) level_bcd#17 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ level#16 current_movedown_slow#20 level_bcd#17 play_increase_level::$1 ] ( main:12::play_move_down:45::play_update_score:242::play_increase_level:279 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#23 score_bcd#23 level#16 current_movedown_slow#20 level_bcd#17 play_increase_level::$1 ] ) always clobbers reg byte a +Statement [289] (byte) level_bcd#6 ← (byte) level_bcd#17 + (byte/signed byte/word/signed word/dword/signed dword) 6 [ level#16 current_movedown_slow#20 level_bcd#6 ] ( main:12::play_move_down:45::play_update_score:242::play_increase_level:279 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#23 score_bcd#23 level#16 current_movedown_slow#20 level_bcd#6 ] ) always clobbers reg byte a +Statement [304] (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_move_down:45::play_remove_lines:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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:66 [ play_remove_lines::y#8 play_remove_lines::y#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:67 [ 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:68 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] +Statement [312] *((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_move_down:45::play_remove_lines:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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:71 [ 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 [315] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#0 ] ( main:12::play_move_down:45::play_lock_current:236 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#0 ] ) always clobbers reg byte a +Statement [317] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:12::play_move_down:45::play_lock_current:236 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:72 [ 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:74 [ 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:73 [ play_lock_current::l#6 play_lock_current::l#1 ] +Statement [321] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_move_down:45::play_lock_current:236 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:75 [ 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:76 [ play_lock_current::c#2 play_lock_current::c#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:177 [ play_lock_current::i#1 ] +Statement [322] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_move_down:45::play_lock_current:236 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a +Statement [333] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:12::play_move_down:45::keyboard_event_pressed:216 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:355 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:361 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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:367 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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:373 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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:46 [ 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:75 [ keyboard_event_pressed::keycode#5 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:78 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] -Statement [327] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:12::play_move_down:45::keyboard_event_pressed:216 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level_bcd#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:347 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:353 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 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:359 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 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:365 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 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:177 [ keyboard_event_pressed::row_bits#0 ] -Statement [328] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:12::play_move_down:45::keyboard_event_pressed:216 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level_bcd#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:347 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:353 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:359 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:365 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a -Statement [342] (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_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 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:77 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Statement [357] (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_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a -Statement [363] (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_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a -Statement [369] (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_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 keyboard_events_size#13 ] ) always clobbers reg byte a -Statement [372] (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_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 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:182 [ keyboard_event_scan::row_scan#0 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:79 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:80 [ 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 [373] (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_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 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 [376] (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_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 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 [378] *((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_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 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 [384] *((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_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a -Statement [385] (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_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 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 [388] *((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:338 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a -Statement [389] (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:338 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 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 [400] (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:83 [ play_init::j#2 play_init::j#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:86 [ play_init::idx#2 play_init::idx#1 ] -Statement [401] *((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 [402] *((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 [403] (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 [404] (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 [407] *((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 [410] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:77 [ keyboard_event_pressed::keycode#5 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:80 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] +Statement [335] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:12::play_move_down:45::keyboard_event_pressed:216 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:355 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:361 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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:367 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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:373 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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:179 [ keyboard_event_pressed::row_bits#0 ] +Statement [336] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:12::play_move_down:45::keyboard_event_pressed:216 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:355 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:361 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:367 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:373 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a +Statement [350] (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#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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:79 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Statement [365] (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#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a +Statement [371] (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#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a +Statement [377] (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#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 keyboard_events_size#13 ] ) always clobbers reg byte a +Statement [380] (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#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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:184 [ keyboard_event_scan::row_scan#0 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:81 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:82 [ 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 [381] (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#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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 [384] (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#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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 [386] *((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#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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 [392] *((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#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a +Statement [393] (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#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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 [396] *((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:346 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a +Statement [397] (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:346 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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 [408] (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:85 [ play_init::j#2 play_init::j#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:88 [ play_init::idx#2 play_init::idx#1 ] +Statement [409] *((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 [410] *((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 [411] (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 [412] (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 [415] *((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 [419] *((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 [412] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [413] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [414] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [415] *((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 [416] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [417] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [418] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [421] *((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 [422] *((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 [423] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a -Statement [424] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a -Statement [426] (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:87 [ sprites_init::s#2 sprites_init::s#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:88 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Statement [427] *((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 [428] *((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 [429] (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 [434] *((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 [436] *((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 [437] *((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 [438] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [439] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [440] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [441] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [442] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [447] (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:89 [ render_init::i#2 render_init::i#1 ] -Statement [448] *((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 [449] (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 [450] *((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 [451] (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 [452] (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 [459] *((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:443 [ 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:445 [ 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:94 [ render_screen_original::y#6 render_screen_original::y#1 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:94 [ render_screen_original::y#6 render_screen_original::y#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:103 [ 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:103 [ 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 [461] *((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:443 [ 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:445 [ 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 [466] *((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:443 [ 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:445 [ 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 [469] *((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:443 [ 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:445 [ 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 [475] *((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:443 [ 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:445 [ 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 [477] *((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:443 [ 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:445 [ 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 [484] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a -Statement [485] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a -Statement [493] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ( [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ) always clobbers reg byte a -Statement [495] 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:203 [ sprites_irq::ptr#0 ] -Statement [502] (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 [503] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a -Statement [504] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a -Statement [505] (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 [506] (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 [509] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ sprites_irq::raster_next#0 sprites_irq::$4 ] ( [ sprites_irq::raster_next#0 sprites_irq::$4 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:105 [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] -Statement [514] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a -Statement [515] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y -Statement [516] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( [ ] ) always clobbers reg byte a -Statement [517] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a -Statement [518] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a -Statement [520] (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 [421] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [422] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [423] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [424] *((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 [425] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [426] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [427] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [430] *((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 [431] *((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 [432] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [433] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [435] (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:89 [ sprites_init::s#2 sprites_init::s#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:90 [ sprites_init::xpos#2 sprites_init::xpos#1 ] +Statement [436] *((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 [437] *((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 [438] (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 [443] *((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 [445] *((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 [446] *((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 [447] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [448] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [449] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [450] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [451] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [456] (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:91 [ render_init::i#2 render_init::i#1 ] +Statement [457] *((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 [458] (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 [459] *((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 [460] (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 [461] (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 [468] *((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:452 [ 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:454 [ 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:96 [ render_screen_original::y#6 render_screen_original::y#1 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:96 [ render_screen_original::y#6 render_screen_original::y#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:105 [ 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:105 [ 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 [470] *((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:452 [ 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:454 [ 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 [475] *((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:452 [ 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:454 [ 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 [478] *((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:452 [ 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:454 [ 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 [484] *((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:452 [ 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:454 [ 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 [486] *((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:452 [ 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:454 [ 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 [493] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a +Statement [494] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a +Statement [502] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ( [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ) always clobbers reg byte a +Statement [504] 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:205 [ sprites_irq::ptr#0 ] +Statement [511] (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 [512] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a +Statement [513] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a +Statement [514] (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 [515] (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 [518] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ sprites_irq::raster_next#0 sprites_irq::$4 ] ( [ sprites_irq::raster_next#0 sprites_irq::$4 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:107 [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] +Statement [523] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a +Statement [524] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y +Statement [525] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( [ ] ) always clobbers reg byte a +Statement [526] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [527] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [529] (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 ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ ] ( ) always clobbers reg byte a Statement [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 [ ] ( ) always clobbers reg byte a Statement [10] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a -Statement [30] (byte*~) current_piece_gfx#102 ← (byte*) current_piece_gfx#16 [ current_ypos#86 current_ypos#18 current_xpos#112 current_xpos#23 current_piece_gfx#102 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ( main:12 [ current_ypos#86 current_ypos#18 current_xpos#112 current_xpos#23 current_piece_gfx#102 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ) always clobbers reg byte a -Statement [33] (byte*~) current_piece#73 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#73 ] ( main:12 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#73 ] ) 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_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 keyboard_events_size#19 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 keyboard_events_size#19 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 ] ) always clobbers reg byte a -Statement [48] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#1 current_xpos#1 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#1 current_xpos#1 ] ) always clobbers reg byte a -Statement [53] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#1 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#1 ] ) always clobbers reg byte a -Statement [58] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#3 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#3 ] ) always clobbers reg byte a -Statement [65] (byte*~) current_piece_gfx#103 ← (byte*) current_piece_gfx#14 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 current_ypos#87 render_screen_render#64 current_xpos#113 current_piece_gfx#103 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 current_ypos#87 render_screen_render#64 current_xpos#113 current_piece_gfx#103 ] ) always clobbers reg byte a -Statement [72] (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:71 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 render_screen_show#16 render_screen_render#11 ] ) always clobbers reg byte a -Statement [73] (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:71 [ current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a -Statement [78] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen#0 ] ( main:12::render_score:69 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen#0 ] ) always clobbers reg byte a -Statement [81] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen#1 ] ( main:12::render_score:69 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen#1 ] ) always clobbers reg byte a -Statement [84] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen#2 ] ( main:12::render_score:69 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen#2 ] ) always clobbers reg byte a -Statement [87] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#11 [ render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#3 ] ( main:12::render_score:69 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#3 ] ) always clobbers reg byte a -Statement [88] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#3 render_bcd::screen#3 ] ( main:12::render_score:69 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#3 render_bcd::screen#3 ] ) always clobbers reg byte a -Statement [90] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#11 [ render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#4 ] ( main:12::render_score:69 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#4 ] ) always clobbers reg byte a -Statement [91] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#4 render_bcd::screen#4 ] ( main:12::render_score:69 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#4 render_bcd::screen#4 ] ) always clobbers reg byte a -Statement [93] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#11 level_bcd#11 render_bcd::screen#5 ] ( main:12::render_score:69 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_bcd::screen#5 ] ) always clobbers reg byte a -Statement [98] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 [ render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte a -Statement [100] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] ) always clobbers reg byte a -Statement [101] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$3 [ render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] ) always clobbers reg byte a -Statement [102] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 [ render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte y -Statement [105] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ render_bcd::screen_pos#3 render_bcd::$5 ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_bcd::screen_pos#3 render_bcd::$5 ] ) always clobbers reg byte a -Statement [106] (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:69::render_bcd:80 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_bcd::screen_pos#3 render_bcd::$6 ] ) always clobbers reg byte a -Statement [107] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 [ render_bcd::screen_pos#3 ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_bcd::screen_pos#3 ] ) always clobbers reg byte y -Statement [108] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 [ ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 render_score::screen#2 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 render_screen_render#17 lines_bcd#11 level_bcd#11 ] ) always clobbers reg byte a -Statement [111] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#0 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#0 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#0 ] ) always clobbers reg byte a -Statement [113] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 [ render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::i#3 render_current::l#4 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::i#3 render_current::l#4 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::i#3 render_current::l#4 ] ) always clobbers reg byte a -Statement [114] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::l#4 render_current::i#1 ] ) always clobbers reg byte a -Statement [121] (byte~) render_current::$5 ← (byte) render_screen_render#30 + (byte) render_current::ypos2#2 [ render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::$5 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::$5 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::$5 ] ) always clobbers reg byte a -Statement [122] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) [ render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::i#3 render_current::l#4 render_current::screen_line#0 ] ) always clobbers reg byte a -Statement [125] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) [ render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::l#4 render_current::screen_line#0 render_current::i#4 render_current::xpos#2 render_current::c#2 render_current::current_cell#0 ] ) always clobbers reg byte a -Statement [129] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#64 [ render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ( main:12::render_current:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] main:12::render_current:67 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#2 render_current::l#4 render_current::i#10 render_current::screen_line#0 render_current::xpos#2 render_current::c#2 ] ) always clobbers reg byte a -Statement [135] (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#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] main:12::render_playfield:61 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ) always clobbers reg byte a -Statement [136] (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#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] main:12::render_playfield:61 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ) always clobbers reg byte a -Statement [137] (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#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:12::render_playfield:61 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a -Statement [139] *((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#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 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:61 [ render_screen_show#16 render_screen_render#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 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 [151] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$2 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$2 ] ) always clobbers reg byte a -Statement [152] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#2 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#2 ] ) always clobbers reg byte a -Statement [157] (byte*~) current_piece#79 ← (byte*) current_piece#10 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#79 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#79 ] ) always clobbers reg byte a -Statement [163] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#4 current_piece_gfx#3 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#4 current_piece_gfx#3 ] ) always clobbers reg byte a -Statement [164] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$4 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$4 ] ) always clobbers reg byte a -Statement [165] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#1 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#1 ] ) always clobbers reg byte a -Statement [167] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 [ play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ( main:12::play_move_rotate:55::play_collision:158 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:12::play_move_leftright:50::play_collision:196 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:12::play_move_leftright:50::play_collision:207 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:12::play_move_down:45::play_collision:231 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level_bcd#16 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ) always clobbers reg byte a -Statement [168] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:12::play_move_rotate:55::play_collision:158 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_move_leftright:50::play_collision:196 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_move_leftright:50::play_collision:207 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_move_down:45::play_collision:231 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level_bcd#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a -Statement [170] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:12::play_move_rotate:55::play_collision:158 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_move_leftright:50::play_collision:196 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_move_leftright:50::play_collision:207 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_move_down:45::play_collision:231 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level_bcd#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a -Statement [174] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_move_rotate:55::play_collision:158 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_leftright:50::play_collision:196 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_leftright:50::play_collision:207 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_down:45::play_collision:231 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level_bcd#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a -Statement [178] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:12::play_move_rotate:55::play_collision:158 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_move_leftright:50::play_collision:196 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_move_leftright:50::play_collision:207 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_move_down:45::play_collision:231 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level_bcd#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a -Statement [181] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_move_rotate:55::play_collision:158 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_leftright:50::play_collision:196 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_leftright:50::play_collision:207 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_down:45::play_collision:231 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level_bcd#16 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a -Statement [195] (byte*~) current_piece#78 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#13 current_orientation#14 current_piece#78 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#1 ] ( main:12::play_move_leftright:50 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_piece#78 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#1 ] ) always clobbers reg byte a -Statement [206] (byte*~) current_piece#77 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#13 current_orientation#14 current_piece#77 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#1 ] ( main:12::play_move_leftright:50 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level_bcd#11 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_piece#77 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#1 ] ) always clobbers reg byte a -Statement [230] (byte*~) current_piece#76 ← (byte*) current_piece#16 [ current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level_bcd#16 current_piece#76 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:12::play_move_down:45 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level_bcd#16 current_piece#76 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a -Statement [245] (byte*~) current_piece#80 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#80 lines_bcd#13 score_bcd#12 level_bcd#14 ] ( main:12::play_move_down:45 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#80 lines_bcd#13 score_bcd#12 level_bcd#14 ] ) always clobbers reg byte a -Statement [253] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:12::play_move_down:45::play_spawn_current:244 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#13 score_bcd#12 level_bcd#14 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [254] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:12::play_move_down:45::play_spawn_current:244 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#13 score_bcd#12 level_bcd#14 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [255] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) [ current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:12::play_move_down:45::play_spawn_current:244 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#13 score_bcd#12 level_bcd#14 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [256] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:12::play_move_down:45::play_spawn_current:244 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#13 score_bcd#12 level_bcd#14 current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [257] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ( main:12::play_spawn_current:25 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] main:12::play_move_down:45::play_spawn_current:244 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#13 score_bcd#12 level_bcd#14 current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ) always clobbers reg byte a -Statement [263] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ play_spawn_current::piece_idx#1 ] ( main:12::play_spawn_current:25 [ play_spawn_current::piece_idx#1 ] main:12::play_move_down:45::play_spawn_current:244 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#13 score_bcd#12 level_bcd#14 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a -Statement [267] (byte~) play_update_score::$2 ← < (word) lines_bcd#15 [ lines_bcd#15 score_bcd#14 level_bcd#16 play_update_score::removed#0 play_update_score::$2 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#15 score_bcd#14 level_bcd#16 play_update_score::removed#0 play_update_score::$2 ] ) always clobbers reg byte a -Statement [268] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 [ lines_bcd#15 score_bcd#14 level_bcd#16 play_update_score::removed#0 play_update_score::lines_before#0 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#15 score_bcd#14 level_bcd#16 play_update_score::removed#0 play_update_score::lines_before#0 ] ) always clobbers reg byte a -Statement [269] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ lines_bcd#15 score_bcd#14 level_bcd#16 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#15 score_bcd#14 level_bcd#16 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ) always clobbers reg byte a -Statement [270] (dword) play_update_score::add_bcd#0 ← *((const dword[]) score_add_bcd#0 + (byte~) play_update_score::$4) [ lines_bcd#15 score_bcd#14 level_bcd#16 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#15 score_bcd#14 level_bcd#16 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ) always clobbers reg byte a -Statement [272] (word) lines_bcd#23 ← (word) lines_bcd#15 + (byte) play_update_score::removed#0 [ score_bcd#14 level_bcd#16 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#23 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#14 level_bcd#16 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#23 ] ) always clobbers reg byte a -Statement [273] (dword) score_bcd#23 ← (dword) score_bcd#14 + (dword) play_update_score::add_bcd#0 [ level_bcd#16 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 level_bcd#16 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 ] ) always clobbers reg byte a -Statement [275] (byte~) play_update_score::$5 ← < (word) lines_bcd#23 [ level_bcd#16 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 play_update_score::$5 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 level_bcd#16 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 play_update_score::$5 ] ) always clobbers reg byte a -Statement [276] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 [ level_bcd#16 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 play_update_score::lines_after#0 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 level_bcd#16 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 play_update_score::lines_after#0 ] ) always clobbers reg byte a -Statement [279] (byte~) play_update_score::$9 ← (byte) level_bcd#13 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ lines_bcd#23 score_bcd#23 level_bcd#13 play_update_score::$9 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#23 score_bcd#23 level_bcd#13 play_update_score::$9 ] ) always clobbers reg byte a -Statement [281] (byte) level_bcd#4 ← (byte) level_bcd#13 + (byte/signed byte/word/signed word/dword/signed dword) 6 [ lines_bcd#23 score_bcd#23 level_bcd#4 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#23 score_bcd#23 level_bcd#4 ] ) always clobbers reg byte a -Statement [296] (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_move_down:45::play_remove_lines:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#15 score_bcd#14 level_bcd#16 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 [304] *((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_move_down:45::play_remove_lines:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#15 score_bcd#14 level_bcd#16 play_remove_lines::removed#7 play_remove_lines::w#6 ] ) always clobbers reg byte a -Statement [307] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#0 ] ( main:12::play_move_down:45::play_lock_current:236 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#15 score_bcd#14 level_bcd#16 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#0 ] ) always clobbers reg byte a -Statement [309] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:12::play_move_down:45::play_lock_current:236 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#15 score_bcd#14 level_bcd#16 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ) always clobbers reg byte a -Statement [313] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_move_down:45::play_lock_current:236 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#15 score_bcd#14 level_bcd#16 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a -Statement [314] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_move_down:45::play_lock_current:236 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#15 score_bcd#14 level_bcd#16 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a -Statement [325] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:12::play_move_down:45::keyboard_event_pressed:216 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level_bcd#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:347 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:353 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 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:359 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 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:365 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a -Statement [327] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:12::play_move_down:45::keyboard_event_pressed:216 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level_bcd#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:347 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:353 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 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:359 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 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:365 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a -Statement [328] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:12::play_move_down:45::keyboard_event_pressed:216 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level_bcd#16 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:347 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:353 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:359 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:365 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a -Statement [341] 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_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 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 [342] (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_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a -Statement [357] (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_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a -Statement [363] (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_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a -Statement [369] (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_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 keyboard_events_size#13 ] ) always clobbers reg byte a -Statement [372] (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_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 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 [373] (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_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 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 [376] (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_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 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 [378] *((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_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 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 [384] *((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_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a -Statement [385] (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_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 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 [388] *((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:338 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a -Statement [389] (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:338 [ render_screen_show#16 render_screen_render#17 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level_bcd#16 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 [400] (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 [401] *((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 [402] *((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 [403] (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 [404] (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 [407] *((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 [410] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [30] (byte*~) current_piece_gfx#102 ← (byte*) current_piece_gfx#16 [ current_ypos#86 current_ypos#18 current_xpos#112 current_xpos#23 current_piece_gfx#102 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_movedown_slow#1 ] ( main:12 [ current_ypos#86 current_ypos#18 current_xpos#112 current_xpos#23 current_piece_gfx#102 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_movedown_slow#1 ] ) always clobbers reg byte a +Statement [33] (byte*~) current_piece#73 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#73 current_movedown_slow#1 ] ( main:12 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#73 current_movedown_slow#1 ] ) 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#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 keyboard_events_size#19 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 keyboard_events_size#19 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 ] ) always clobbers reg byte a +Statement [48] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#1 current_xpos#1 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_orientation#14 current_piece_gfx#1 current_xpos#1 ] ) always clobbers reg byte a +Statement [53] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#1 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#2 current_orientation#14 current_piece_gfx#1 ] ) always clobbers reg byte a +Statement [58] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#3 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#3 ] ) always clobbers reg byte a +Statement [65] (byte*~) current_piece_gfx#103 ← (byte*) current_piece_gfx#14 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 current_ypos#87 render_screen_render#64 current_xpos#113 current_piece_gfx#103 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 current_ypos#87 render_screen_render#64 current_xpos#113 current_piece_gfx#103 ] ) always clobbers reg byte a +Statement [72] (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:71 [ current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 render_screen_show#16 render_screen_render#11 ] ) always clobbers reg byte a +Statement [73] (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:71 [ current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a +Statement [78] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen#0 ] ( main:12::render_score:69 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen#0 ] ) always clobbers reg byte a +Statement [81] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen#1 ] ( main:12::render_score:69 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen#1 ] ) always clobbers reg byte a +Statement [84] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen#2 ] ( main:12::render_score:69 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen#2 ] ) always clobbers reg byte a +Statement [87] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#11 [ render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#3 ] ( main:12::render_score:69 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#3 ] ) always clobbers reg byte a +Statement [88] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#3 render_bcd::screen#3 ] ( main:12::render_score:69 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#3 render_bcd::screen#3 ] ) always clobbers reg byte a +Statement [90] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#11 [ render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#4 ] ( main:12::render_score:69 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#4 ] ) always clobbers reg byte a +Statement [91] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#4 render_bcd::screen#4 ] ( main:12::render_score:69 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#4 render_bcd::screen#4 ] ) always clobbers reg byte a +Statement [93] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#11 level_bcd#13 render_bcd::screen#5 ] ( main:12::render_score:69 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_bcd::screen#5 ] ) always clobbers reg byte a +Statement [98] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 [ render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte a +Statement [100] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] ) always clobbers reg byte a +Statement [101] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$3 [ render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] ) always clobbers reg byte a +Statement [102] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 [ render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte y +Statement [105] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ render_bcd::screen_pos#3 render_bcd::$5 ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_bcd::screen_pos#3 render_bcd::$5 ] ) always clobbers reg byte a +Statement [106] (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:69::render_bcd:80 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_bcd::screen_pos#3 render_bcd::$6 ] ) always clobbers reg byte a +Statement [107] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 [ render_bcd::screen_pos#3 ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_bcd::screen_pos#3 ] ) always clobbers reg byte y +Statement [108] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 [ ] ( main:12::render_score:69::render_bcd:80 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 ] main:12::render_score:69::render_bcd:83 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 ] main:12::render_score:69::render_bcd:86 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 ] main:12::render_score:69::render_bcd:89 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 ] main:12::render_score:69::render_bcd:92 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 render_score::screen#2 ] main:12::render_score:69::render_bcd:95 [ render_screen_show#16 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 level#12 render_screen_render#17 lines_bcd#11 level_bcd#13 ] ) always clobbers reg byte a +Statement [111] (byte) render_moving::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_moving::ypos2#0 ] ( main:12::render_moving:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_movedown_slow#1 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_moving::ypos2#0 ] main:12::render_moving:67 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_moving::ypos2#0 ] ) always clobbers reg byte a +Statement [113] 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#47 current_piece_gfx#53 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 ] ( main:12::render_moving:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_movedown_slow#1 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 ] main:12::render_moving:67 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 ] ) always clobbers reg byte a +Statement [114] (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#47 current_piece_gfx#53 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] ( main:12::render_moving:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_movedown_slow#1 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] main:12::render_moving:67 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] ) always clobbers reg byte a +Statement [121] (byte~) render_moving::$5 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 [ render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$5 ] ( main:12::render_moving:32 [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_movedown_slow#1 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$5 ] main:12::render_moving:67 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$5 ] ) always clobbers reg byte a +Statement [122] (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#47 current_piece_gfx#53 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#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_movedown_slow#1 render_screen_render#30 current_xpos#47 current_piece_gfx#53 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:67 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 render_screen_render#30 current_xpos#47 current_piece_gfx#53 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 [125] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_moving::i#4) [ render_screen_render#30 current_xpos#47 current_piece_gfx#53 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#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_movedown_slow#1 render_screen_render#30 current_xpos#47 current_piece_gfx#53 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:67 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 render_screen_render#30 current_xpos#47 current_piece_gfx#53 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 [129] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#64 [ render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 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#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_movedown_slow#1 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 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:67 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 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 [135] (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#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_movedown_slow#1 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] main:12::render_playfield:61 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ) always clobbers reg byte a +Statement [136] (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#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_movedown_slow#1 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] main:12::render_playfield:61 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ) always clobbers reg byte a +Statement [137] (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#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_movedown_slow#1 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:12::render_playfield:61 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a +Statement [139] *((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#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 current_movedown_slow#1 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:61 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece#10 current_orientation#19 current_piece_gfx#14 current_xpos#19 current_ypos#13 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 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 [151] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$2 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$2 ] ) always clobbers reg byte a +Statement [152] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#2 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#2 ] ) always clobbers reg byte a +Statement [157] (byte*~) current_piece#79 ← (byte*) current_piece#10 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#79 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#79 ] ) always clobbers reg byte a +Statement [163] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#4 current_piece_gfx#3 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#4 current_piece_gfx#3 ] ) always clobbers reg byte a +Statement [164] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$4 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::$4 ] ) always clobbers reg byte a +Statement [165] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#1 ] ( main:12::play_move_rotate:55 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#1 ] ) always clobbers reg byte a +Statement [167] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 [ play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ( main:12::play_move_rotate:55::play_collision:158 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:12::play_move_leftright:50::play_collision:196 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:12::play_move_leftright:50::play_collision:207 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] main:12::play_move_down:45::play_collision:231 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ) always clobbers reg byte a +Statement [168] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:12::play_move_rotate:55::play_collision:158 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_move_leftright:50::play_collision:196 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_move_leftright:50::play_collision:207 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_move_down:45::play_collision:231 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a +Statement [170] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:12::play_move_rotate:55::play_collision:158 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_move_leftright:50::play_collision:196 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_move_leftright:50::play_collision:207 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_move_down:45::play_collision:231 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a +Statement [174] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_move_rotate:55::play_collision:158 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_leftright:50::play_collision:196 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_leftright:50::play_collision:207 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_down:45::play_collision:231 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [178] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:12::play_move_rotate:55::play_collision:158 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_move_leftright:50::play_collision:196 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_move_leftright:50::play_collision:207 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_move_down:45::play_collision:231 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a +Statement [181] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_move_rotate:55::play_collision:158 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::render#2 current_piece#10 current_xpos#19 current_ypos#13 current_orientation#14 current_piece_gfx#1 play_move_rotate::orientation#3 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_leftright:50::play_collision:196 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_leftright:50::play_collision:207 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_xpos#1 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_move_down:45::play_collision:231 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [195] (byte*~) current_piece#78 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#13 current_orientation#14 current_piece#78 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#1 ] ( main:12::play_move_leftright:50 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_piece#78 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 current_xpos#1 ] ) always clobbers reg byte a +Statement [206] (byte*~) current_piece#77 ← (byte*) current_piece#10 [ current_piece#10 current_ypos#13 current_orientation#14 current_piece#77 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#1 ] ( main:12::play_move_leftright:50 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 lines_bcd#11 score_bcd#10 level#12 level_bcd#13 main::key_event#0 main::render#1 current_piece_gfx#1 current_piece#10 current_ypos#13 current_orientation#14 current_piece#77 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 current_xpos#1 ] ) always clobbers reg byte a +Statement [230] (byte*~) current_piece#76 ← (byte*) current_piece#16 [ current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 current_piece#76 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:12::play_move_down:45 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 current_piece#76 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a +Statement [245] (byte*~) current_piece#80 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#80 lines_bcd#13 score_bcd#12 level#14 current_movedown_slow#19 level_bcd#15 ] ( main:12::play_move_down:45 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 current_piece#80 lines_bcd#13 score_bcd#12 level#14 current_movedown_slow#19 level_bcd#15 ] ) always clobbers reg byte a +Statement [253] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:12::play_move_down:45::play_spawn_current:244 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#13 score_bcd#12 level#14 current_movedown_slow#19 level_bcd#15 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [254] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:12::play_move_down:45::play_spawn_current:244 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#13 score_bcd#12 level#14 current_movedown_slow#19 level_bcd#15 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [255] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) [ current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:12::play_move_down:45::play_spawn_current:244 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#13 score_bcd#12 level#14 current_movedown_slow#19 level_bcd#15 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [256] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] main:12::play_move_down:45::play_spawn_current:244 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#13 score_bcd#12 level#14 current_movedown_slow#19 level_bcd#15 current_ypos#18 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a +Statement [257] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] main:12::play_move_down:45::play_spawn_current:244 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#13 score_bcd#12 level#14 current_movedown_slow#19 level_bcd#15 current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ) always clobbers reg byte a +Statement [263] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ play_spawn_current::piece_idx#1 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 play_spawn_current::piece_idx#1 ] main:12::play_move_down:45::play_spawn_current:244 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#13 score_bcd#12 level#14 current_movedown_slow#19 level_bcd#15 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a +Statement [267] (byte~) play_update_score::$2 ← < (word) lines_bcd#15 [ current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_update_score::removed#0 play_update_score::$2 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_update_score::removed#0 play_update_score::$2 ] ) always clobbers reg byte a +Statement [268] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_update_score::removed#0 play_update_score::lines_before#0 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_update_score::removed#0 play_update_score::lines_before#0 ] ) always clobbers reg byte a +Statement [269] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ) always clobbers reg byte a +Statement [270] (dword) play_update_score::add_bcd#0 ← *((const dword[]) score_add_bcd#0 + (byte~) play_update_score::$4) [ current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ) always clobbers reg byte a +Statement [272] (word) lines_bcd#23 ← (word) lines_bcd#15 + (byte) play_update_score::removed#0 [ current_movedown_slow#12 score_bcd#14 level#19 level_bcd#20 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#23 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 score_bcd#14 level#19 level_bcd#20 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#23 ] ) always clobbers reg byte a +Statement [273] (dword) score_bcd#23 ← (dword) score_bcd#14 + (dword) play_update_score::add_bcd#0 [ current_movedown_slow#12 level#19 level_bcd#20 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 level#19 level_bcd#20 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 ] ) always clobbers reg byte a +Statement [275] (byte~) play_update_score::$5 ← < (word) lines_bcd#23 [ current_movedown_slow#12 level#19 level_bcd#20 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 play_update_score::$5 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 level#19 level_bcd#20 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 play_update_score::$5 ] ) always clobbers reg byte a +Statement [276] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#12 level#19 level_bcd#20 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 play_update_score::lines_after#0 ] ( main:12::play_move_down:45::play_update_score:242 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 level#19 level_bcd#20 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 play_update_score::lines_after#0 ] ) always clobbers reg byte a +Statement [283] if((byte) level#16>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 [ level_bcd#20 level#16 ] ( main:12::play_move_down:45::play_update_score:242::play_increase_level:279 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#23 score_bcd#23 level_bcd#20 level#16 ] ) always clobbers reg byte a +Statement [284] (byte) current_movedown_slow#8 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#16) [ level_bcd#20 level#16 current_movedown_slow#8 ] ( main:12::play_move_down:45::play_update_score:242::play_increase_level:279 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#23 score_bcd#23 level_bcd#20 level#16 current_movedown_slow#8 ] ) always clobbers reg byte a +Statement [287] (byte~) play_increase_level::$1 ← (byte) level_bcd#17 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ level#16 current_movedown_slow#20 level_bcd#17 play_increase_level::$1 ] ( main:12::play_move_down:45::play_update_score:242::play_increase_level:279 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#23 score_bcd#23 level#16 current_movedown_slow#20 level_bcd#17 play_increase_level::$1 ] ) always clobbers reg byte a +Statement [289] (byte) level_bcd#6 ← (byte) level_bcd#17 + (byte/signed byte/word/signed word/dword/signed dword) 6 [ level#16 current_movedown_slow#20 level_bcd#6 ] ( main:12::play_move_down:45::play_update_score:242::play_increase_level:279 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 lines_bcd#23 score_bcd#23 level#16 current_movedown_slow#20 level_bcd#6 ] ) always clobbers reg byte a +Statement [304] (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_move_down:45::play_remove_lines:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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 [312] *((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_move_down:45::play_remove_lines:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 play_remove_lines::removed#7 play_remove_lines::w#6 ] ) always clobbers reg byte a +Statement [315] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#0 ] ( main:12::play_move_down:45::play_lock_current:236 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#0 ] ) always clobbers reg byte a +Statement [317] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:12::play_move_down:45::play_lock_current:236 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ) always clobbers reg byte a +Statement [321] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_move_down:45::play_lock_current:236 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a +Statement [322] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 [ current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_move_down:45::play_lock_current:236 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a +Statement [333] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:12::play_move_down:45::keyboard_event_pressed:216 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:355 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:361 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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:367 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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:373 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a +Statement [335] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:12::play_move_down:45::keyboard_event_pressed:216 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:355 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:361 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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:367 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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:373 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a +Statement [336] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:12::play_move_down:45::keyboard_event_pressed:216 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:355 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:361 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:367 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:373 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a +Statement [349] 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#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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 [350] (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#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a +Statement [365] (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#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a +Statement [371] (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#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a +Statement [377] (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#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 keyboard_events_size#13 ] ) always clobbers reg byte a +Statement [380] (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#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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 [381] (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#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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 [384] (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#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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 [386] *((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#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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 [392] *((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#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a +Statement [393] (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#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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 [396] *((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:346 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a +Statement [397] (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:346 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#12 current_piece#16 current_orientation#10 current_piece_gfx#20 current_xpos#10 current_ypos#21 current_piece_char#15 current_movedown_counter#12 lines_bcd#15 score_bcd#14 level#19 level_bcd#20 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 [408] (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 [409] *((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 [410] *((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 [411] (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 [412] (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 [415] *((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 [419] *((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 [412] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [413] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [414] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [415] *((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 [416] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [417] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [418] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [421] *((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 [422] *((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 [423] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a -Statement [424] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a -Statement [426] (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 [427] *((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 [428] *((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 [429] (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 [434] *((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 [436] *((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 [437] *((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 [438] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [439] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [440] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [441] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [442] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [447] (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 [448] *((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 [449] (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 [450] *((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 [451] (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 [452] (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 [459] *((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:443 [ 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:445 [ 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 [461] *((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:443 [ 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:445 [ 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 [466] *((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:443 [ 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:445 [ 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 [469] *((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:443 [ 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:445 [ 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 [475] *((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:443 [ 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:445 [ 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 [477] *((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:443 [ 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:445 [ 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 [484] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a -Statement [485] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a -Statement [493] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ( [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ) always clobbers reg byte a -Statement [495] 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 [502] (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 [503] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a -Statement [504] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a -Statement [505] (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 [506] (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 [509] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ sprites_irq::raster_next#0 sprites_irq::$4 ] ( [ sprites_irq::raster_next#0 sprites_irq::$4 ] ) always clobbers reg byte a -Statement [514] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a -Statement [515] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y -Statement [516] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( [ ] ) always clobbers reg byte a -Statement [517] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a -Statement [518] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a -Statement [520] (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 [421] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [422] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [423] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [424] *((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 [425] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [426] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [427] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [430] *((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 [431] *((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 [432] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [433] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [435] (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 [436] *((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 [437] *((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 [438] (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 [443] *((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 [445] *((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 [446] *((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 [447] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [448] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [449] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [450] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [451] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [456] (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 [457] *((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 [458] (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 [459] *((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 [460] (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 [461] (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 [468] *((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:452 [ 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:454 [ 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 [470] *((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:452 [ 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:454 [ 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 [475] *((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:452 [ 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:454 [ 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 [478] *((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:452 [ 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:454 [ 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 [484] *((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:452 [ 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:454 [ 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 [486] *((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:452 [ 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:454 [ 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 [493] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a +Statement [494] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a +Statement [502] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ( [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 ] ) always clobbers reg byte a +Statement [504] 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 [511] (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 [512] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a +Statement [513] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a +Statement [514] (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 [515] (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 [518] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ sprites_irq::raster_next#0 sprites_irq::$4 ] ( [ sprites_irq::raster_next#0 sprites_irq::$4 ] ) always clobbers reg byte a +Statement [523] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a +Statement [524] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y +Statement [525] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( [ ] ) always clobbers reg byte a +Statement [526] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [527] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [529] (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#12 current_movedown_counter#10 current_movedown_counter#1 ] : zp ZP_BYTE:4 , reg byte x , @@ -14236,11 +14820,11 @@ Potential registers zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render Potential registers zp ZP_BYTE:17 [ current_xpos#47 current_xpos#112 current_xpos#113 ] : zp ZP_BYTE:17 , reg byte x , reg byte y , Potential registers zp ZP_WORD:18 [ current_piece_gfx#53 current_piece_gfx#102 current_piece_gfx#103 ] : zp ZP_WORD:18 , Potential registers zp ZP_BYTE:20 [ current_piece_char#64 current_piece_char#90 current_piece_char#91 ] : zp ZP_BYTE:20 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:21 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] : zp ZP_BYTE:21 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:22 [ render_current::l#4 render_current::l#1 ] : zp ZP_BYTE:22 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:23 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] : zp ZP_BYTE:23 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:24 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] : zp ZP_BYTE:24 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:25 [ render_current::c#2 render_current::c#1 ] : zp ZP_BYTE:25 , 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: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#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 , @@ -14263,508 +14847,516 @@ Potential registers zp ZP_BYTE:46 [ play_move_down::movedown#6 play_move_down::m Potential registers zp ZP_BYTE:47 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] : zp ZP_BYTE:47 , reg byte x , Potential registers zp ZP_WORD:48 [ lines_bcd#20 lines_bcd#13 lines_bcd#15 lines_bcd#11 lines_bcd#23 ] : zp ZP_WORD:48 , Potential registers zp ZP_DWORD:50 [ score_bcd#20 score_bcd#12 score_bcd#14 score_bcd#10 score_bcd#23 ] : zp ZP_DWORD:50 , -Potential registers zp ZP_BYTE:54 [ level_bcd#21 level_bcd#14 level_bcd#16 level_bcd#11 level_bcd#13 level_bcd#4 ] : zp ZP_BYTE:54 , reg byte x , -Potential registers zp ZP_WORD:55 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 ] : zp ZP_WORD:55 , -Potential registers zp ZP_BYTE:57 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] : zp ZP_BYTE:57 , reg byte x , -Potential registers zp ZP_WORD:58 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 ] : zp ZP_WORD:58 , -Potential registers zp ZP_BYTE:60 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] : zp ZP_BYTE:60 , reg byte x , -Potential registers zp ZP_BYTE:61 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] : zp ZP_BYTE:61 , reg byte x , -Potential registers zp ZP_BYTE:62 [ play_move_down::return#2 ] : zp ZP_BYTE:62 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:63 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] : zp ZP_BYTE:63 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:64 [ play_remove_lines::y#8 play_remove_lines::y#1 ] : zp ZP_BYTE:64 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:65 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] : zp ZP_BYTE:65 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:66 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] : zp ZP_BYTE:66 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:67 [ play_remove_lines::x#2 play_remove_lines::x#1 ] : zp ZP_BYTE:67 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:68 [ play_remove_lines::full#4 play_remove_lines::full#2 ] : zp ZP_BYTE:68 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:69 [ 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:69 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:70 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] : zp ZP_BYTE:70 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:71 [ play_lock_current::l#6 play_lock_current::l#1 ] : zp ZP_BYTE:71 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:72 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] : zp ZP_BYTE:72 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:73 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] : zp ZP_BYTE:73 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:74 [ play_lock_current::c#2 play_lock_current::c#1 ] : zp ZP_BYTE:74 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:75 [ keyboard_event_pressed::keycode#5 ] : zp ZP_BYTE:75 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:76 [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] : zp ZP_BYTE:76 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:77 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] : zp ZP_BYTE:77 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:78 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] : zp ZP_BYTE:78 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:79 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] : zp ZP_BYTE:79 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:80 [ 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:80 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:81 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] : zp ZP_BYTE:81 , reg byte x , -Potential registers zp ZP_BYTE:82 [ render_show::d018val#3 ] : zp ZP_BYTE:82 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:83 [ play_init::j#2 play_init::j#1 ] : zp ZP_BYTE:83 , reg byte x , reg byte y , -Potential registers zp ZP_WORD:84 [ play_init::pli#2 play_init::pli#1 ] : zp ZP_WORD:84 , -Potential registers zp ZP_BYTE:86 [ play_init::idx#2 play_init::idx#1 ] : zp ZP_BYTE:86 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:87 [ sprites_init::s#2 sprites_init::s#1 ] : zp ZP_BYTE:87 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:88 [ sprites_init::xpos#2 sprites_init::xpos#1 ] : zp ZP_BYTE:88 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:89 [ render_init::i#2 render_init::i#1 ] : zp ZP_BYTE:89 , reg byte x , reg byte y , -Potential registers zp ZP_WORD:90 [ render_init::li_1#2 render_init::li_1#1 ] : zp ZP_WORD:90 , -Potential registers zp ZP_WORD:92 [ render_init::li_2#2 render_init::li_2#1 ] : zp ZP_WORD:92 , -Potential registers zp ZP_BYTE:94 [ render_screen_original::y#6 render_screen_original::y#1 ] : zp ZP_BYTE:94 , reg byte x , -Potential registers zp ZP_WORD:95 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] : zp ZP_WORD:95 , -Potential registers zp ZP_WORD:97 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] : zp ZP_WORD:97 , -Potential registers zp ZP_WORD:99 [ render_screen_original::screen#7 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#9 render_screen_original::screen#10 render_screen_original::screen#2 render_screen_original::screen#3 ] : zp ZP_WORD:99 , -Potential registers zp ZP_WORD:101 [ 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 , -Potential registers zp ZP_BYTE:103 [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] : zp ZP_BYTE:103 , reg byte x , -Potential registers zp ZP_BYTE:104 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] : zp ZP_BYTE:104 , -Potential registers zp ZP_BYTE:105 [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] : zp ZP_BYTE:105 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:106 [ render_screen_showing#0 ] : zp ZP_BYTE:106 , -Potential registers zp ZP_BYTE:107 [ irq_raster_next#0 ] : zp ZP_BYTE:107 , -Potential registers zp ZP_BYTE:108 [ irq_sprite_ypos#0 ] : zp ZP_BYTE:108 , -Potential registers zp ZP_BYTE:109 [ irq_sprite_ptr#0 ] : zp ZP_BYTE:109 , -Potential registers zp ZP_BYTE:110 [ irq_cnt#0 ] : zp ZP_BYTE:110 , -Potential registers zp ZP_BYTE:111 [ keyboard_event_get::return#3 ] : zp ZP_BYTE:111 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:112 [ main::key_event#0 ] : zp ZP_BYTE:112 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:113 [ play_move_down::key_event#0 ] : zp ZP_BYTE:113 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:114 [ play_move_down::return#3 ] : zp ZP_BYTE:114 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:115 [ main::$12 ] : zp ZP_BYTE:115 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:116 [ main::render#1 ] : zp ZP_BYTE:116 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:117 [ play_move_leftright::key_event#0 ] : zp ZP_BYTE:117 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:118 [ play_move_leftright::return#4 ] : zp ZP_BYTE:118 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:119 [ main::$13 ] : zp ZP_BYTE:119 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:120 [ main::render#2 ] : zp ZP_BYTE:120 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:121 [ play_move_rotate::key_event#0 ] : zp ZP_BYTE:121 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:122 [ play_move_rotate::return#4 ] : zp ZP_BYTE:122 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:123 [ main::$14 ] : zp ZP_BYTE:123 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:124 [ main::render#3 ] : zp ZP_BYTE:124 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:125 [ render_bcd::$3 ] : zp ZP_BYTE:125 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:126 [ render_bcd::$4 ] : zp ZP_BYTE:126 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:127 [ render_bcd::$5 ] : zp ZP_BYTE:127 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:128 [ render_bcd::$6 ] : zp ZP_BYTE:128 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:129 [ render_bcd::screen_pos#1 ] : zp ZP_WORD:129 , -Potential registers zp ZP_BYTE:131 [ render_current::$5 ] : zp ZP_BYTE:131 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:132 [ render_current::screen_line#0 ] : zp ZP_WORD:132 , -Potential registers zp ZP_BYTE:134 [ render_current::current_cell#0 ] : zp ZP_BYTE:134 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:135 [ render_playfield::$2 ] : zp ZP_BYTE:135 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:136 [ render_playfield::$3 ] : zp ZP_BYTE:136 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:137 [ play_move_rotate::$2 ] : zp ZP_BYTE:137 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:138 [ play_collision::return#13 ] : zp ZP_BYTE:138 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:139 [ play_move_rotate::$6 ] : zp ZP_BYTE:139 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:140 [ play_move_rotate::$4 ] : zp ZP_BYTE:140 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:141 [ play_collision::piece_gfx#0 ] : zp ZP_WORD:141 , -Potential registers zp ZP_WORD:143 [ play_collision::playfield_line#0 ] : zp ZP_WORD:143 , -Potential registers zp ZP_BYTE:145 [ play_collision::i#1 ] : zp ZP_BYTE:145 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:146 [ play_collision::$7 ] : zp ZP_BYTE:146 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:147 [ play_collision::return#12 ] : zp ZP_BYTE:147 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:148 [ play_move_leftright::$4 ] : zp ZP_BYTE:148 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:149 [ play_collision::return#1 ] : zp ZP_BYTE:149 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:150 [ play_move_leftright::$8 ] : zp ZP_BYTE:150 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:151 [ keyboard_event_pressed::return#12 ] : zp ZP_BYTE:151 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:152 [ play_move_down::$2 ] : zp ZP_BYTE:152 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:153 [ play_collision::return#0 ] : zp ZP_BYTE:153 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:154 [ play_move_down::$12 ] : zp ZP_BYTE:154 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:155 [ play_remove_lines::return#0 ] : zp ZP_BYTE:155 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:156 [ play_move_down::removed#0 ] : zp ZP_BYTE:156 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:157 [ play_update_score::removed#0 ] : zp ZP_BYTE:157 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:158 [ play_spawn_current::$3 ] : zp ZP_BYTE:158 , reg byte x , -Potential registers zp ZP_BYTE:159 [ sid_rnd::return#2 ] : zp ZP_BYTE:159 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:160 [ play_spawn_current::$1 ] : zp ZP_BYTE:160 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:161 [ sid_rnd::return#0 ] : zp ZP_BYTE:161 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:162 [ play_update_score::$2 ] : zp ZP_BYTE:162 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:163 [ play_update_score::lines_before#0 ] : zp ZP_BYTE:163 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:164 [ play_update_score::$4 ] : zp ZP_BYTE:164 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_DWORD:165 [ play_update_score::add_bcd#0 ] : zp ZP_DWORD:165 , -Potential registers zp ZP_BYTE:169 [ play_update_score::$5 ] : zp ZP_BYTE:169 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:170 [ play_update_score::lines_after#0 ] : zp ZP_BYTE:170 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:171 [ play_update_score::$9 ] : zp ZP_BYTE:171 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:172 [ play_remove_lines::c#0 ] : zp ZP_BYTE:172 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:173 [ play_lock_current::playfield_line#0 ] : zp ZP_WORD:173 , -Potential registers zp ZP_BYTE:175 [ play_lock_current::i#1 ] : zp ZP_BYTE:175 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:176 [ keyboard_event_pressed::$0 ] : zp ZP_BYTE:176 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:177 [ keyboard_event_pressed::row_bits#0 ] : zp ZP_BYTE:177 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:178 [ keyboard_event_pressed::$1 ] : zp ZP_BYTE:178 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:179 [ keyboard_event_pressed::return#11 ] : zp ZP_BYTE:179 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:180 [ keyboard_matrix_read::rowid#0 ] : zp ZP_BYTE:180 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:181 [ keyboard_matrix_read::return#2 ] : zp ZP_BYTE:181 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:182 [ keyboard_event_scan::row_scan#0 ] : zp ZP_BYTE:182 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:183 [ keyboard_event_pressed::return#0 ] : zp ZP_BYTE:183 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:184 [ keyboard_event_scan::$14 ] : zp ZP_BYTE:184 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:185 [ keyboard_event_pressed::return#1 ] : zp ZP_BYTE:185 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:186 [ keyboard_event_scan::$18 ] : zp ZP_BYTE:186 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:187 [ keyboard_event_pressed::return#2 ] : zp ZP_BYTE:187 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:188 [ keyboard_event_scan::$22 ] : zp ZP_BYTE:188 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:189 [ keyboard_event_pressed::return#10 ] : zp ZP_BYTE:189 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:190 [ keyboard_event_scan::$26 ] : zp ZP_BYTE:190 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:191 [ keyboard_modifiers#5 ] : zp ZP_BYTE:191 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:192 [ keyboard_event_scan::$3 ] : zp ZP_BYTE:192 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:193 [ keyboard_event_scan::$4 ] : zp ZP_BYTE:193 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:194 [ keyboard_event_scan::event_type#0 ] : zp ZP_BYTE:194 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:195 [ keyboard_event_scan::$11 ] : zp ZP_BYTE:195 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:196 [ keyboard_matrix_read::return#0 ] : zp ZP_BYTE:196 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:197 [ render_screen_showing#1 ] : zp ZP_BYTE:197 , -Potential registers zp ZP_BYTE:198 [ play_init::$1 ] : zp ZP_BYTE:198 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:199 [ sprites_init::s2#0 ] : zp ZP_BYTE:199 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:200 [ render_init::$13 ] : zp ZP_BYTE:200 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:201 [ render_init::$14 ] : zp ZP_BYTE:201 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:202 [ sprites_irq::ypos#0 ] : zp ZP_BYTE:202 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:203 [ sprites_irq::ptr#0 ] : zp ZP_BYTE:203 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:204 [ sprites_irq::ptr#3 ] : zp ZP_BYTE:204 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:205 [ sprites_irq::ptr#4 ] : zp ZP_BYTE:205 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:206 [ irq_cnt#1 ] : zp ZP_BYTE:206 , -Potential registers zp ZP_BYTE:207 [ irq_sprite_ypos#2 ] : zp ZP_BYTE:207 , -Potential registers zp ZP_BYTE:208 [ irq_sprite_ptr#2 ] : zp ZP_BYTE:208 , -Potential registers zp ZP_BYTE:209 [ sprites_irq::$4 ] : zp ZP_BYTE:209 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:210 [ irq_cnt#14 ] : zp ZP_BYTE:210 , -Potential registers zp ZP_BYTE:211 [ irq_sprite_ypos#1 ] : zp ZP_BYTE:211 , -Potential registers zp ZP_BYTE:212 [ irq_sprite_ptr#1 ] : zp ZP_BYTE:212 , -Potential registers zp ZP_BYTE:213 [ sprites_irq::ptr#1 ] : zp ZP_BYTE:213 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:214 [ sprites_irq::ptr#2 ] : zp ZP_BYTE:214 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:54 [ level#24 level#14 level#19 level#12 level#16 ] : zp ZP_BYTE:54 , reg byte x , +Potential registers zp ZP_BYTE:55 [ current_movedown_slow#30 current_movedown_slow#19 current_movedown_slow#12 current_movedown_slow#1 current_movedown_slow#17 current_movedown_slow#20 current_movedown_slow#8 ] : zp ZP_BYTE:55 , reg byte x , +Potential registers zp ZP_BYTE:56 [ level_bcd#25 level_bcd#15 level_bcd#20 level_bcd#13 level_bcd#18 level_bcd#17 level_bcd#6 ] : zp ZP_BYTE:56 , reg byte x , +Potential registers zp ZP_WORD:57 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 ] : zp ZP_WORD:57 , +Potential registers zp ZP_BYTE:59 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] : zp ZP_BYTE:59 , reg byte x , +Potential registers zp ZP_WORD:60 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 ] : zp ZP_WORD:60 , +Potential registers zp ZP_BYTE:62 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] : zp ZP_BYTE:62 , reg byte x , +Potential registers zp ZP_BYTE:63 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] : zp ZP_BYTE:63 , reg byte x , +Potential registers zp ZP_BYTE:64 [ play_move_down::return#2 ] : zp ZP_BYTE:64 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:65 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] : zp ZP_BYTE:65 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:66 [ play_remove_lines::y#8 play_remove_lines::y#1 ] : zp ZP_BYTE:66 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:67 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] : zp ZP_BYTE:67 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:68 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] : zp ZP_BYTE:68 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:69 [ play_remove_lines::x#2 play_remove_lines::x#1 ] : zp ZP_BYTE:69 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:70 [ play_remove_lines::full#4 play_remove_lines::full#2 ] : zp ZP_BYTE:70 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:71 [ 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:71 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:72 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] : zp ZP_BYTE:72 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:73 [ play_lock_current::l#6 play_lock_current::l#1 ] : zp ZP_BYTE:73 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:74 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] : zp ZP_BYTE:74 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:75 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] : zp ZP_BYTE:75 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:76 [ play_lock_current::c#2 play_lock_current::c#1 ] : zp ZP_BYTE:76 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:77 [ keyboard_event_pressed::keycode#5 ] : zp ZP_BYTE:77 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:78 [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] : zp ZP_BYTE:78 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:79 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] : zp ZP_BYTE:79 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:80 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] : zp ZP_BYTE:80 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:81 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] : zp ZP_BYTE:81 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:82 [ 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 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:83 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] : zp ZP_BYTE:83 , reg byte x , +Potential registers zp ZP_BYTE:84 [ render_show::d018val#3 ] : zp ZP_BYTE:84 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:85 [ play_init::j#2 play_init::j#1 ] : zp ZP_BYTE:85 , reg byte x , reg byte y , +Potential registers zp ZP_WORD:86 [ play_init::pli#2 play_init::pli#1 ] : zp ZP_WORD:86 , +Potential registers zp ZP_BYTE:88 [ play_init::idx#2 play_init::idx#1 ] : zp ZP_BYTE:88 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:89 [ sprites_init::s#2 sprites_init::s#1 ] : zp ZP_BYTE:89 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:90 [ sprites_init::xpos#2 sprites_init::xpos#1 ] : zp ZP_BYTE:90 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:91 [ render_init::i#2 render_init::i#1 ] : zp ZP_BYTE:91 , reg byte x , reg byte y , +Potential registers zp ZP_WORD:92 [ render_init::li_1#2 render_init::li_1#1 ] : zp ZP_WORD:92 , +Potential registers zp ZP_WORD:94 [ render_init::li_2#2 render_init::li_2#1 ] : zp ZP_WORD:94 , +Potential registers zp ZP_BYTE:96 [ render_screen_original::y#6 render_screen_original::y#1 ] : zp ZP_BYTE:96 , reg byte x , +Potential registers zp ZP_WORD:97 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] : zp ZP_WORD:97 , +Potential registers zp ZP_WORD:99 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] : zp ZP_WORD:99 , +Potential registers zp ZP_WORD:101 [ render_screen_original::screen#7 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#9 render_screen_original::screen#10 render_screen_original::screen#2 render_screen_original::screen#3 ] : zp ZP_WORD:101 , +Potential registers zp ZP_WORD:103 [ 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:103 , +Potential registers zp ZP_BYTE:105 [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] : zp ZP_BYTE:105 , reg byte x , +Potential registers zp ZP_BYTE:106 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] : zp ZP_BYTE:106 , +Potential registers zp ZP_BYTE:107 [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] : zp ZP_BYTE:107 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:108 [ render_screen_showing#0 ] : zp ZP_BYTE:108 , +Potential registers zp ZP_BYTE:109 [ irq_raster_next#0 ] : zp ZP_BYTE:109 , +Potential registers zp ZP_BYTE:110 [ irq_sprite_ypos#0 ] : zp ZP_BYTE:110 , +Potential registers zp ZP_BYTE:111 [ irq_sprite_ptr#0 ] : zp ZP_BYTE:111 , +Potential registers zp ZP_BYTE:112 [ irq_cnt#0 ] : zp ZP_BYTE:112 , +Potential registers zp ZP_BYTE:113 [ keyboard_event_get::return#3 ] : zp ZP_BYTE:113 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:114 [ main::key_event#0 ] : zp ZP_BYTE:114 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:115 [ play_move_down::key_event#0 ] : zp ZP_BYTE:115 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:116 [ play_move_down::return#3 ] : zp ZP_BYTE:116 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:117 [ main::$12 ] : zp ZP_BYTE:117 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:118 [ main::render#1 ] : zp ZP_BYTE:118 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:119 [ play_move_leftright::key_event#0 ] : zp ZP_BYTE:119 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:120 [ play_move_leftright::return#4 ] : zp ZP_BYTE:120 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:121 [ main::$13 ] : zp ZP_BYTE:121 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:122 [ main::render#2 ] : zp ZP_BYTE:122 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:123 [ play_move_rotate::key_event#0 ] : zp ZP_BYTE:123 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:124 [ play_move_rotate::return#4 ] : zp ZP_BYTE:124 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:125 [ main::$14 ] : zp ZP_BYTE:125 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:126 [ main::render#3 ] : zp ZP_BYTE:126 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:127 [ render_bcd::$3 ] : zp ZP_BYTE:127 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:128 [ render_bcd::$4 ] : zp ZP_BYTE:128 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:129 [ render_bcd::$5 ] : zp ZP_BYTE:129 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:130 [ render_bcd::$6 ] : zp ZP_BYTE:130 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:131 [ render_bcd::screen_pos#1 ] : zp ZP_WORD:131 , +Potential registers zp ZP_BYTE:133 [ render_moving::$5 ] : zp ZP_BYTE:133 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:134 [ render_moving::screen_line#0 ] : zp ZP_WORD:134 , +Potential registers zp ZP_BYTE:136 [ render_moving::current_cell#0 ] : zp ZP_BYTE:136 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:137 [ render_playfield::$2 ] : zp ZP_BYTE:137 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:138 [ render_playfield::$3 ] : zp ZP_BYTE:138 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:139 [ play_move_rotate::$2 ] : zp ZP_BYTE:139 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:140 [ play_collision::return#13 ] : zp ZP_BYTE:140 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:141 [ play_move_rotate::$6 ] : zp ZP_BYTE:141 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:142 [ play_move_rotate::$4 ] : zp ZP_BYTE:142 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:143 [ play_collision::piece_gfx#0 ] : zp ZP_WORD:143 , +Potential registers zp ZP_WORD:145 [ play_collision::playfield_line#0 ] : zp ZP_WORD:145 , +Potential registers zp ZP_BYTE:147 [ play_collision::i#1 ] : zp ZP_BYTE:147 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:148 [ play_collision::$7 ] : zp ZP_BYTE:148 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:149 [ play_collision::return#12 ] : zp ZP_BYTE:149 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:150 [ play_move_leftright::$4 ] : zp ZP_BYTE:150 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:151 [ play_collision::return#1 ] : zp ZP_BYTE:151 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:152 [ play_move_leftright::$8 ] : zp ZP_BYTE:152 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:153 [ keyboard_event_pressed::return#12 ] : zp ZP_BYTE:153 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:154 [ play_move_down::$2 ] : zp ZP_BYTE:154 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:155 [ play_collision::return#0 ] : zp ZP_BYTE:155 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:156 [ play_move_down::$12 ] : zp ZP_BYTE:156 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:157 [ play_remove_lines::return#0 ] : zp ZP_BYTE:157 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:158 [ play_move_down::removed#0 ] : zp ZP_BYTE:158 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:159 [ play_update_score::removed#0 ] : zp ZP_BYTE:159 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:160 [ play_spawn_current::$3 ] : zp ZP_BYTE:160 , reg byte x , +Potential registers zp ZP_BYTE:161 [ sid_rnd::return#2 ] : zp ZP_BYTE:161 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:162 [ play_spawn_current::$1 ] : zp ZP_BYTE:162 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:163 [ sid_rnd::return#0 ] : zp ZP_BYTE:163 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:164 [ play_update_score::$2 ] : zp ZP_BYTE:164 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:165 [ play_update_score::lines_before#0 ] : zp ZP_BYTE:165 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:166 [ play_update_score::$4 ] : zp ZP_BYTE:166 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_DWORD:167 [ play_update_score::add_bcd#0 ] : zp ZP_DWORD:167 , +Potential registers zp ZP_BYTE:171 [ play_update_score::$5 ] : zp ZP_BYTE:171 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:172 [ play_update_score::lines_after#0 ] : zp ZP_BYTE:172 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:173 [ play_increase_level::$1 ] : zp ZP_BYTE:173 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:174 [ play_remove_lines::c#0 ] : zp ZP_BYTE:174 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:175 [ play_lock_current::playfield_line#0 ] : zp ZP_WORD:175 , +Potential registers zp ZP_BYTE:177 [ play_lock_current::i#1 ] : zp ZP_BYTE:177 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:178 [ keyboard_event_pressed::$0 ] : zp ZP_BYTE:178 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:179 [ keyboard_event_pressed::row_bits#0 ] : zp ZP_BYTE:179 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:180 [ keyboard_event_pressed::$1 ] : zp ZP_BYTE:180 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:181 [ keyboard_event_pressed::return#11 ] : zp ZP_BYTE:181 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:182 [ keyboard_matrix_read::rowid#0 ] : zp ZP_BYTE:182 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:183 [ keyboard_matrix_read::return#2 ] : zp ZP_BYTE:183 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:184 [ keyboard_event_scan::row_scan#0 ] : zp ZP_BYTE:184 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:185 [ keyboard_event_pressed::return#0 ] : zp ZP_BYTE:185 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:186 [ keyboard_event_scan::$14 ] : zp ZP_BYTE:186 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:187 [ keyboard_event_pressed::return#1 ] : zp ZP_BYTE:187 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:188 [ keyboard_event_scan::$18 ] : zp ZP_BYTE:188 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:189 [ keyboard_event_pressed::return#2 ] : zp ZP_BYTE:189 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:190 [ keyboard_event_scan::$22 ] : zp ZP_BYTE:190 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:191 [ keyboard_event_pressed::return#10 ] : zp ZP_BYTE:191 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:192 [ keyboard_event_scan::$26 ] : zp ZP_BYTE:192 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:193 [ keyboard_modifiers#5 ] : zp ZP_BYTE:193 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:194 [ keyboard_event_scan::$3 ] : zp ZP_BYTE:194 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:195 [ keyboard_event_scan::$4 ] : zp ZP_BYTE:195 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:196 [ keyboard_event_scan::event_type#0 ] : zp ZP_BYTE:196 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:197 [ keyboard_event_scan::$11 ] : zp ZP_BYTE:197 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:198 [ keyboard_matrix_read::return#0 ] : zp ZP_BYTE:198 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:199 [ render_screen_showing#1 ] : zp ZP_BYTE:199 , +Potential registers zp ZP_BYTE:200 [ play_init::$1 ] : zp ZP_BYTE:200 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:201 [ sprites_init::s2#0 ] : zp ZP_BYTE:201 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:202 [ render_init::$13 ] : zp ZP_BYTE:202 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:203 [ render_init::$14 ] : zp ZP_BYTE:203 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:204 [ sprites_irq::ypos#0 ] : zp ZP_BYTE:204 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:205 [ sprites_irq::ptr#0 ] : zp ZP_BYTE:205 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:206 [ sprites_irq::ptr#3 ] : zp ZP_BYTE:206 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:207 [ sprites_irq::ptr#4 ] : zp ZP_BYTE:207 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:208 [ irq_cnt#1 ] : zp ZP_BYTE:208 , +Potential registers zp ZP_BYTE:209 [ irq_sprite_ypos#2 ] : zp ZP_BYTE:209 , +Potential registers zp ZP_BYTE:210 [ irq_sprite_ptr#2 ] : zp ZP_BYTE:210 , +Potential registers zp ZP_BYTE:211 [ sprites_irq::$4 ] : zp ZP_BYTE:211 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:212 [ irq_cnt#14 ] : zp ZP_BYTE:212 , +Potential registers zp ZP_BYTE:213 [ irq_sprite_ypos#1 ] : zp ZP_BYTE:213 , +Potential registers zp ZP_BYTE:214 [ irq_sprite_ptr#1 ] : zp ZP_BYTE:214 , +Potential registers zp ZP_BYTE:215 [ sprites_irq::ptr#1 ] : zp ZP_BYTE:215 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:216 [ sprites_irq::ptr#2 ] : zp ZP_BYTE:216 , reg byte a , reg byte x , reg byte y , REGISTER UPLIFT SCOPES -Uplift Scope [keyboard_event_scan] 20,002: zp ZP_BYTE:192 [ keyboard_event_scan::$3 ] 20,002: zp ZP_BYTE:193 [ keyboard_event_scan::$4 ] 20,002: zp ZP_BYTE:194 [ keyboard_event_scan::event_type#0 ] 20,002: zp ZP_BYTE:195 [ keyboard_event_scan::$11 ] 17,858.93: zp ZP_BYTE:79 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] 11,908.48: zp ZP_BYTE:80 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] 2,101.74: zp ZP_BYTE:77 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] 1,278.06: zp ZP_BYTE:182 [ keyboard_event_scan::row_scan#0 ] 4: zp ZP_BYTE:184 [ keyboard_event_scan::$14 ] 4: zp ZP_BYTE:186 [ keyboard_event_scan::$18 ] 4: zp ZP_BYTE:188 [ keyboard_event_scan::$22 ] 4: zp ZP_BYTE:190 [ keyboard_event_scan::$26 ] -Uplift Scope [play_collision] 38,173.33: zp ZP_BYTE:41 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] 20,002: zp ZP_BYTE:146 [ play_collision::$7 ] 13,378.25: zp ZP_BYTE:42 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] 12,223.44: zp ZP_BYTE:43 [ play_collision::c#2 play_collision::c#1 ] 1,615.62: zp ZP_BYTE:145 [ play_collision::i#1 ] 1,371.57: zp ZP_BYTE:39 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] 1,126.12: zp ZP_BYTE:40 [ play_collision::l#6 play_collision::l#1 ] 785.86: zp ZP_WORD:143 [ play_collision::playfield_line#0 ] 476.33: zp ZP_WORD:141 [ play_collision::piece_gfx#0 ] 50.2: zp ZP_BYTE:38 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] 18: zp ZP_BYTE:36 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] 10: zp ZP_BYTE:37 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] 4: zp ZP_BYTE:138 [ play_collision::return#13 ] 4: zp ZP_BYTE:147 [ play_collision::return#12 ] 4: zp ZP_BYTE:149 [ play_collision::return#1 ] 4: zp ZP_BYTE:153 [ play_collision::return#0 ] 1.33: zp ZP_BYTE:44 [ play_collision::return#14 ] -Uplift Scope [play_remove_lines] 19,004.21: zp ZP_BYTE:66 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] 17,938.14: zp ZP_BYTE:69 [ 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:67 [ play_remove_lines::x#2 play_remove_lines::x#1 ] 8,201: zp ZP_BYTE:68 [ play_remove_lines::full#4 play_remove_lines::full#2 ] 6,000.6: zp ZP_BYTE:172 [ play_remove_lines::c#0 ] 2,566.89: zp ZP_BYTE:65 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] 1,634.97: zp ZP_BYTE:64 [ play_remove_lines::y#8 play_remove_lines::y#1 ] 4: zp ZP_BYTE:155 [ play_remove_lines::return#0 ] -Uplift Scope [play_lock_current] 38,173.33: zp ZP_BYTE:72 [ 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:73 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] 14,001.4: zp ZP_BYTE:74 [ play_lock_current::c#2 play_lock_current::c#1 ] 2,333.67: zp ZP_BYTE:175 [ play_lock_current::i#1 ] 1,167.83: zp ZP_BYTE:71 [ play_lock_current::l#6 play_lock_current::l#1 ] 1,100.2: zp ZP_WORD:173 [ play_lock_current::playfield_line#0 ] 777.68: zp ZP_BYTE:70 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -Uplift Scope [] 58,857.97: zp ZP_BYTE:81 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] 212.18: zp ZP_WORD:58 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 ] 205.59: zp ZP_BYTE:61 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] 72.09: zp ZP_BYTE:20 [ current_piece_char#64 current_piece_char#90 current_piece_char#91 ] 59.09: zp ZP_WORD:18 [ current_piece_gfx#53 current_piece_gfx#102 current_piece_gfx#103 ] 39.95: zp ZP_BYTE:60 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] 30.62: zp ZP_BYTE:26 [ render_screen_render#21 render_screen_render#65 ] 26: zp ZP_WORD:34 [ current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 ] 20.4: zp ZP_BYTE:15 [ current_ypos#9 current_ypos#86 current_ypos#87 ] 20: zp ZP_BYTE:191 [ keyboard_modifiers#5 ] 20: zp ZP_BYTE:197 [ render_screen_showing#1 ] 20: zp ZP_BYTE:207 [ irq_sprite_ypos#2 ] 20: zp ZP_BYTE:208 [ irq_sprite_ptr#2 ] 20: zp ZP_BYTE:210 [ irq_cnt#14 ] 20: zp ZP_BYTE:211 [ irq_sprite_ypos#1 ] 20: zp ZP_BYTE:212 [ irq_sprite_ptr#1 ] 19.2: zp ZP_WORD:55 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 ] 18.91: zp ZP_BYTE:54 [ level_bcd#21 level_bcd#14 level_bcd#16 level_bcd#11 level_bcd#13 level_bcd#4 ] 16.91: zp ZP_BYTE:57 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] 15.96: zp ZP_BYTE:47 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] 15: zp ZP_DWORD:50 [ score_bcd#20 score_bcd#12 score_bcd#14 score_bcd#10 score_bcd#23 ] 14.83: zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] 13.85: zp ZP_BYTE:17 [ current_xpos#47 current_xpos#112 current_xpos#113 ] 13.56: zp ZP_WORD:48 [ lines_bcd#20 lines_bcd#13 lines_bcd#15 lines_bcd#11 lines_bcd#23 ] 11.6: zp ZP_BYTE:78 [ 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#64 ] 8.33: zp ZP_BYTE:104 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] 4.71: zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] 4: zp ZP_BYTE:206 [ irq_cnt#1 ] 3.88: zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] 0.71: zp ZP_BYTE:108 [ irq_sprite_ypos#0 ] 0.5: zp ZP_BYTE:106 [ render_screen_showing#0 ] 0.24: zp ZP_BYTE:109 [ irq_sprite_ptr#0 ] 0.19: zp ZP_BYTE:110 [ irq_cnt#0 ] 0.17: zp ZP_BYTE:107 [ irq_raster_next#0 ] -Uplift Scope [render_current] 2,534.25: zp ZP_BYTE:23 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] 1,787.5: zp ZP_BYTE:25 [ render_current::c#2 render_current::c#1 ] 1,553.5: zp ZP_BYTE:24 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] 1,001: zp ZP_BYTE:134 [ render_current::current_cell#0 ] 202: zp ZP_BYTE:131 [ render_current::$5 ] 162.72: zp ZP_BYTE:22 [ render_current::l#4 render_current::l#1 ] 101.16: zp ZP_BYTE:21 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] 100.18: zp ZP_WORD:132 [ render_current::screen_line#0 ] -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:135 [ render_playfield::$2 ] 202: zp ZP_BYTE:136 [ 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:63 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] 2,002: zp ZP_BYTE:160 [ play_spawn_current::$1 ] 0.13: zp ZP_BYTE:158 [ play_spawn_current::$3 ] -Uplift Scope [keyboard_matrix_read] 2,002: zp ZP_BYTE:181 [ keyboard_matrix_read::return#2 ] 1,003: zp ZP_BYTE:180 [ keyboard_matrix_read::rowid#0 ] 334.33: zp ZP_BYTE:196 [ keyboard_matrix_read::return#0 ] -Uplift Scope [sid_rnd] 2,002: zp ZP_BYTE:159 [ sid_rnd::return#2 ] 334.33: zp ZP_BYTE:161 [ sid_rnd::return#0 ] -Uplift Scope [render_screen_original] 721.31: zp ZP_WORD:99 [ render_screen_original::screen#7 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#9 render_screen_original::screen#10 render_screen_original::screen#2 render_screen_original::screen#3 ] 699.79: zp ZP_BYTE:103 [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] 501.65: zp ZP_WORD:101 [ render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 ] 162.87: zp ZP_WORD:95 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] 99.08: zp ZP_WORD:97 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] 17.42: zp ZP_BYTE:94 [ render_screen_original::y#6 render_screen_original::y#1 ] -Uplift Scope [main] 202: zp ZP_BYTE:115 [ main::$12 ] 202: zp ZP_BYTE:119 [ main::$13 ] 202: zp ZP_BYTE:123 [ main::$14 ] 202: zp ZP_BYTE:124 [ main::render#3 ] 40.4: zp ZP_BYTE:116 [ main::render#1 ] 40.4: zp ZP_BYTE:120 [ main::render#2 ] 36.73: zp ZP_BYTE:112 [ main::key_event#0 ] -Uplift Scope [play_move_down] 202: zp ZP_BYTE:114 [ play_move_down::return#3 ] 51.5: zp ZP_BYTE:113 [ play_move_down::key_event#0 ] 33.67: zp ZP_BYTE:62 [ play_move_down::return#2 ] 20: zp ZP_BYTE:46 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] 4: zp ZP_BYTE:152 [ play_move_down::$2 ] 4: zp ZP_BYTE:154 [ play_move_down::$12 ] 4: zp ZP_BYTE:156 [ play_move_down::removed#0 ] -Uplift Scope [play_move_rotate] 202: zp ZP_BYTE:122 [ play_move_rotate::return#4 ] 52.5: zp ZP_BYTE:121 [ play_move_rotate::key_event#0 ] 33.67: zp ZP_BYTE:32 [ play_move_rotate::return#1 ] 8.89: zp ZP_BYTE:33 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] 4: zp ZP_BYTE:137 [ play_move_rotate::$2 ] 4: zp ZP_BYTE:139 [ play_move_rotate::$6 ] 4: zp ZP_BYTE:140 [ play_move_rotate::$4 ] -Uplift Scope [play_move_leftright] 202: zp ZP_BYTE:118 [ play_move_leftright::return#4 ] 52.5: zp ZP_BYTE:117 [ play_move_leftright::key_event#0 ] 33.67: zp ZP_BYTE:45 [ play_move_leftright::return#1 ] 4: zp ZP_BYTE:148 [ play_move_leftright::$4 ] 4: zp ZP_BYTE:150 [ play_move_leftright::$8 ] -Uplift Scope [keyboard_event_get] 202: zp ZP_BYTE:111 [ keyboard_event_get::return#3 ] 38.33: zp ZP_BYTE:76 [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] -Uplift Scope [render_bcd] 30: 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 ] 22: 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 ] 20: zp ZP_WORD:129 [ render_bcd::screen_pos#1 ] 7.6: zp ZP_WORD:13 [ render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 ] 4: zp ZP_BYTE:125 [ render_bcd::$3 ] 4: zp ZP_BYTE:126 [ render_bcd::$4 ] 4: zp ZP_BYTE:127 [ render_bcd::$5 ] 4: zp ZP_BYTE:128 [ render_bcd::$6 ] 2: zp ZP_WORD:9 [ render_bcd::offset#6 ] 1: zp ZP_BYTE:11 [ render_bcd::only_low#6 ] -Uplift Scope [render_init] 22.79: zp ZP_BYTE:89 [ render_init::i#2 render_init::i#1 ] 22: zp ZP_BYTE:200 [ render_init::$13 ] 22: zp ZP_BYTE:201 [ render_init::$14 ] 12.83: zp ZP_WORD:92 [ render_init::li_2#2 render_init::li_2#1 ] 12.1: zp ZP_WORD:90 [ render_init::li_1#2 render_init::li_1#1 ] -Uplift Scope [play_init] 23.83: zp ZP_BYTE:83 [ play_init::j#2 play_init::j#1 ] 22: zp ZP_BYTE:198 [ play_init::$1 ] 13.93: zp ZP_BYTE:86 [ play_init::idx#2 play_init::idx#1 ] 13.75: zp ZP_WORD:84 [ play_init::pli#2 play_init::pli#1 ] -Uplift Scope [sprites_init] 25.3: zp ZP_BYTE:87 [ sprites_init::s#2 sprites_init::s#1 ] 22: zp ZP_BYTE:199 [ sprites_init::s2#0 ] 15.58: zp ZP_BYTE:88 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Uplift Scope [sprites_irq] 12.67: zp ZP_BYTE:105 [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] 4: zp ZP_BYTE:205 [ sprites_irq::ptr#4 ] 4: zp ZP_BYTE:209 [ sprites_irq::$4 ] 4: zp ZP_BYTE:214 [ sprites_irq::ptr#2 ] 2.67: zp ZP_BYTE:204 [ sprites_irq::ptr#3 ] 2.67: zp ZP_BYTE:213 [ sprites_irq::ptr#1 ] 2.5: zp ZP_BYTE:202 [ sprites_irq::ypos#0 ] 2.5: zp ZP_BYTE:203 [ sprites_irq::ptr#0 ] -Uplift Scope [keyboard_event_pressed] 4: zp ZP_BYTE:151 [ keyboard_event_pressed::return#12 ] 4: zp ZP_BYTE:176 [ keyboard_event_pressed::$0 ] 4: zp ZP_BYTE:178 [ keyboard_event_pressed::$1 ] 4: zp ZP_BYTE:183 [ keyboard_event_pressed::return#0 ] 4: zp ZP_BYTE:185 [ keyboard_event_pressed::return#1 ] 4: zp ZP_BYTE:187 [ keyboard_event_pressed::return#2 ] 4: zp ZP_BYTE:189 [ keyboard_event_pressed::return#10 ] 2: zp ZP_BYTE:177 [ keyboard_event_pressed::row_bits#0 ] 1.71: zp ZP_BYTE:179 [ keyboard_event_pressed::return#11 ] 1.33: zp ZP_BYTE:75 [ keyboard_event_pressed::keycode#5 ] -Uplift Scope [play_update_score] 4: zp ZP_BYTE:162 [ play_update_score::$2 ] 4: zp ZP_BYTE:164 [ play_update_score::$4 ] 4: zp ZP_BYTE:169 [ play_update_score::$5 ] 4: zp ZP_BYTE:170 [ play_update_score::lines_after#0 ] 4: zp ZP_BYTE:171 [ play_update_score::$9 ] 1.33: zp ZP_DWORD:165 [ play_update_score::add_bcd#0 ] 1.14: zp ZP_BYTE:157 [ play_update_score::removed#0 ] 0.44: zp ZP_BYTE:163 [ play_update_score::lines_before#0 ] -Uplift Scope [render_show] 2: zp ZP_BYTE:82 [ render_show::d018val#3 ] +Uplift Scope [keyboard_event_scan] 20,002: zp ZP_BYTE:194 [ keyboard_event_scan::$3 ] 20,002: zp ZP_BYTE:195 [ keyboard_event_scan::$4 ] 20,002: zp ZP_BYTE:196 [ keyboard_event_scan::event_type#0 ] 20,002: zp ZP_BYTE:197 [ keyboard_event_scan::$11 ] 17,858.93: zp ZP_BYTE:81 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] 11,908.48: zp ZP_BYTE:82 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] 2,101.74: zp ZP_BYTE:79 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] 1,278.06: zp ZP_BYTE:184 [ keyboard_event_scan::row_scan#0 ] 4: zp ZP_BYTE:186 [ keyboard_event_scan::$14 ] 4: zp ZP_BYTE:188 [ keyboard_event_scan::$18 ] 4: zp ZP_BYTE:190 [ keyboard_event_scan::$22 ] 4: zp ZP_BYTE:192 [ keyboard_event_scan::$26 ] +Uplift Scope [play_collision] 38,173.33: zp ZP_BYTE:41 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] 20,002: zp ZP_BYTE:148 [ play_collision::$7 ] 13,378.25: zp ZP_BYTE:42 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] 12,223.44: zp ZP_BYTE:43 [ play_collision::c#2 play_collision::c#1 ] 1,615.62: zp ZP_BYTE:147 [ play_collision::i#1 ] 1,371.57: zp ZP_BYTE:39 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] 1,126.12: zp ZP_BYTE:40 [ play_collision::l#6 play_collision::l#1 ] 785.86: zp ZP_WORD:145 [ play_collision::playfield_line#0 ] 476.33: zp ZP_WORD:143 [ play_collision::piece_gfx#0 ] 50.2: zp ZP_BYTE:38 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] 18: zp ZP_BYTE:36 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] 10: zp ZP_BYTE:37 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] 4: zp ZP_BYTE:140 [ play_collision::return#13 ] 4: zp ZP_BYTE:149 [ play_collision::return#12 ] 4: zp ZP_BYTE:151 [ play_collision::return#1 ] 4: zp ZP_BYTE:155 [ play_collision::return#0 ] 1.33: zp ZP_BYTE:44 [ play_collision::return#14 ] +Uplift Scope [play_remove_lines] 19,004.21: zp ZP_BYTE:68 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] 17,938.14: zp ZP_BYTE:71 [ 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:69 [ play_remove_lines::x#2 play_remove_lines::x#1 ] 8,201: zp ZP_BYTE:70 [ play_remove_lines::full#4 play_remove_lines::full#2 ] 6,000.6: zp ZP_BYTE:174 [ play_remove_lines::c#0 ] 2,566.89: zp ZP_BYTE:67 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] 1,634.97: zp ZP_BYTE:66 [ play_remove_lines::y#8 play_remove_lines::y#1 ] 4: zp ZP_BYTE:157 [ play_remove_lines::return#0 ] +Uplift Scope [play_lock_current] 38,173.33: zp ZP_BYTE:74 [ 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:75 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] 14,001.4: zp ZP_BYTE:76 [ play_lock_current::c#2 play_lock_current::c#1 ] 2,333.67: zp ZP_BYTE:177 [ play_lock_current::i#1 ] 1,167.83: zp ZP_BYTE:73 [ play_lock_current::l#6 play_lock_current::l#1 ] 1,100.2: zp ZP_WORD:175 [ play_lock_current::playfield_line#0 ] 777.68: zp ZP_BYTE:72 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] +Uplift Scope [] 58,857.97: zp ZP_BYTE:83 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] 212.18: zp ZP_WORD:60 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 ] 205.59: zp ZP_BYTE:63 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] 72.09: zp ZP_BYTE:20 [ current_piece_char#64 current_piece_char#90 current_piece_char#91 ] 59.09: zp ZP_WORD:18 [ current_piece_gfx#53 current_piece_gfx#102 current_piece_gfx#103 ] 39.95: zp ZP_BYTE:62 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] 30.62: zp ZP_BYTE:26 [ render_screen_render#21 render_screen_render#65 ] 26: zp ZP_WORD:34 [ current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 ] 20.4: zp ZP_BYTE:15 [ current_ypos#9 current_ypos#86 current_ypos#87 ] 20.38: zp ZP_BYTE:56 [ level_bcd#25 level_bcd#15 level_bcd#20 level_bcd#13 level_bcd#18 level_bcd#17 level_bcd#6 ] 20: zp ZP_BYTE:193 [ keyboard_modifiers#5 ] 20: zp ZP_BYTE:199 [ render_screen_showing#1 ] 20: zp ZP_BYTE:209 [ irq_sprite_ypos#2 ] 20: zp ZP_BYTE:210 [ irq_sprite_ptr#2 ] 20: zp ZP_BYTE:212 [ irq_cnt#14 ] 20: zp ZP_BYTE:213 [ irq_sprite_ypos#1 ] 20: zp ZP_BYTE:214 [ irq_sprite_ptr#1 ] 19.2: zp ZP_WORD:57 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 ] 18.44: zp ZP_BYTE:55 [ current_movedown_slow#30 current_movedown_slow#19 current_movedown_slow#12 current_movedown_slow#1 current_movedown_slow#17 current_movedown_slow#20 current_movedown_slow#8 ] 16.91: zp ZP_BYTE:59 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] 15.96: zp ZP_BYTE:47 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] 14.83: zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] 14.64: zp ZP_DWORD:50 [ score_bcd#20 score_bcd#12 score_bcd#14 score_bcd#10 score_bcd#23 ] 14.28: zp ZP_BYTE:54 [ level#24 level#14 level#19 level#12 level#16 ] 13.85: zp ZP_BYTE:17 [ current_xpos#47 current_xpos#112 current_xpos#113 ] 13.23: zp ZP_WORD:48 [ lines_bcd#20 lines_bcd#13 lines_bcd#15 lines_bcd#11 lines_bcd#23 ] 11.6: zp ZP_BYTE:80 [ 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#64 ] 8.33: zp ZP_BYTE:106 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] 4.71: zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] 4: zp ZP_BYTE:208 [ irq_cnt#1 ] 3.88: zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] 0.71: zp ZP_BYTE:110 [ irq_sprite_ypos#0 ] 0.5: zp ZP_BYTE:108 [ render_screen_showing#0 ] 0.24: zp ZP_BYTE:111 [ irq_sprite_ptr#0 ] 0.19: zp ZP_BYTE:112 [ irq_cnt#0 ] 0.17: zp ZP_BYTE:109 [ irq_raster_next#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:136 [ render_moving::current_cell#0 ] 202: zp ZP_BYTE:133 [ 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:134 [ render_moving::screen_line#0 ] +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:137 [ render_playfield::$2 ] 202: zp ZP_BYTE:138 [ 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:65 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] 2,002: zp ZP_BYTE:162 [ play_spawn_current::$1 ] 0.13: zp ZP_BYTE:160 [ play_spawn_current::$3 ] +Uplift Scope [keyboard_matrix_read] 2,002: zp ZP_BYTE:183 [ keyboard_matrix_read::return#2 ] 1,003: zp ZP_BYTE:182 [ keyboard_matrix_read::rowid#0 ] 334.33: zp ZP_BYTE:198 [ keyboard_matrix_read::return#0 ] +Uplift Scope [sid_rnd] 2,002: zp ZP_BYTE:161 [ sid_rnd::return#2 ] 334.33: zp ZP_BYTE:163 [ sid_rnd::return#0 ] +Uplift Scope [render_screen_original] 721.31: zp ZP_WORD:101 [ render_screen_original::screen#7 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#9 render_screen_original::screen#10 render_screen_original::screen#2 render_screen_original::screen#3 ] 699.79: zp ZP_BYTE:105 [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] 501.65: zp ZP_WORD:103 [ render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 ] 162.87: zp ZP_WORD:97 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] 99.08: zp ZP_WORD:99 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] 17.42: zp ZP_BYTE:96 [ render_screen_original::y#6 render_screen_original::y#1 ] +Uplift Scope [main] 202: zp ZP_BYTE:117 [ main::$12 ] 202: zp ZP_BYTE:121 [ main::$13 ] 202: zp ZP_BYTE:125 [ main::$14 ] 202: zp ZP_BYTE:126 [ main::render#3 ] 40.4: zp ZP_BYTE:118 [ main::render#1 ] 40.4: zp ZP_BYTE:122 [ main::render#2 ] 36.73: zp ZP_BYTE:114 [ main::key_event#0 ] +Uplift Scope [play_move_down] 202: zp ZP_BYTE:116 [ play_move_down::return#3 ] 51.5: zp ZP_BYTE:115 [ play_move_down::key_event#0 ] 33.67: zp ZP_BYTE:64 [ play_move_down::return#2 ] 20: zp ZP_BYTE:46 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] 4: zp ZP_BYTE:154 [ play_move_down::$2 ] 4: zp ZP_BYTE:156 [ play_move_down::$12 ] 4: zp ZP_BYTE:158 [ play_move_down::removed#0 ] +Uplift Scope [play_move_rotate] 202: zp ZP_BYTE:124 [ play_move_rotate::return#4 ] 52.5: zp ZP_BYTE:123 [ play_move_rotate::key_event#0 ] 33.67: zp ZP_BYTE:32 [ play_move_rotate::return#1 ] 8.89: zp ZP_BYTE:33 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] 4: zp ZP_BYTE:139 [ play_move_rotate::$2 ] 4: zp ZP_BYTE:141 [ play_move_rotate::$6 ] 4: zp ZP_BYTE:142 [ play_move_rotate::$4 ] +Uplift Scope [play_move_leftright] 202: zp ZP_BYTE:120 [ play_move_leftright::return#4 ] 52.5: zp ZP_BYTE:119 [ play_move_leftright::key_event#0 ] 33.67: zp ZP_BYTE:45 [ play_move_leftright::return#1 ] 4: zp ZP_BYTE:150 [ play_move_leftright::$4 ] 4: zp ZP_BYTE:152 [ play_move_leftright::$8 ] +Uplift Scope [keyboard_event_get] 202: zp ZP_BYTE:113 [ keyboard_event_get::return#3 ] 38.33: zp ZP_BYTE:78 [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] +Uplift Scope [render_bcd] 30: 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 ] 22: 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 ] 20: zp ZP_WORD:131 [ render_bcd::screen_pos#1 ] 7.6: zp ZP_WORD:13 [ render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 ] 4: zp ZP_BYTE:127 [ render_bcd::$3 ] 4: zp ZP_BYTE:128 [ render_bcd::$4 ] 4: zp ZP_BYTE:129 [ render_bcd::$5 ] 4: zp ZP_BYTE:130 [ render_bcd::$6 ] 2: zp ZP_WORD:9 [ render_bcd::offset#6 ] 1: zp ZP_BYTE:11 [ render_bcd::only_low#6 ] +Uplift Scope [render_init] 22.79: zp ZP_BYTE:91 [ render_init::i#2 render_init::i#1 ] 22: zp ZP_BYTE:202 [ render_init::$13 ] 22: zp ZP_BYTE:203 [ render_init::$14 ] 12.83: zp ZP_WORD:94 [ render_init::li_2#2 render_init::li_2#1 ] 12.1: zp ZP_WORD:92 [ render_init::li_1#2 render_init::li_1#1 ] +Uplift Scope [play_init] 23.83: zp ZP_BYTE:85 [ play_init::j#2 play_init::j#1 ] 22: zp ZP_BYTE:200 [ play_init::$1 ] 13.93: zp ZP_BYTE:88 [ play_init::idx#2 play_init::idx#1 ] 13.75: zp ZP_WORD:86 [ play_init::pli#2 play_init::pli#1 ] +Uplift Scope [sprites_init] 25.3: zp ZP_BYTE:89 [ sprites_init::s#2 sprites_init::s#1 ] 22: zp ZP_BYTE:201 [ sprites_init::s2#0 ] 15.58: zp ZP_BYTE:90 [ sprites_init::xpos#2 sprites_init::xpos#1 ] +Uplift Scope [sprites_irq] 12.67: zp ZP_BYTE:107 [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] 4: zp ZP_BYTE:207 [ sprites_irq::ptr#4 ] 4: zp ZP_BYTE:211 [ sprites_irq::$4 ] 4: zp ZP_BYTE:216 [ sprites_irq::ptr#2 ] 2.67: zp ZP_BYTE:206 [ sprites_irq::ptr#3 ] 2.67: zp ZP_BYTE:215 [ sprites_irq::ptr#1 ] 2.5: zp ZP_BYTE:204 [ sprites_irq::ypos#0 ] 2.5: zp ZP_BYTE:205 [ sprites_irq::ptr#0 ] +Uplift Scope [keyboard_event_pressed] 4: zp ZP_BYTE:153 [ keyboard_event_pressed::return#12 ] 4: zp ZP_BYTE:178 [ keyboard_event_pressed::$0 ] 4: zp ZP_BYTE:180 [ keyboard_event_pressed::$1 ] 4: zp ZP_BYTE:185 [ keyboard_event_pressed::return#0 ] 4: zp ZP_BYTE:187 [ keyboard_event_pressed::return#1 ] 4: zp ZP_BYTE:189 [ keyboard_event_pressed::return#2 ] 4: zp ZP_BYTE:191 [ keyboard_event_pressed::return#10 ] 2: zp ZP_BYTE:179 [ keyboard_event_pressed::row_bits#0 ] 1.71: zp ZP_BYTE:181 [ keyboard_event_pressed::return#11 ] 1.33: zp ZP_BYTE:77 [ keyboard_event_pressed::keycode#5 ] +Uplift Scope [play_update_score] 4: zp ZP_BYTE:164 [ play_update_score::$2 ] 4: zp ZP_BYTE:166 [ play_update_score::$4 ] 4: zp ZP_BYTE:171 [ play_update_score::$5 ] 4: zp ZP_BYTE:172 [ play_update_score::lines_after#0 ] 1.33: zp ZP_DWORD:167 [ play_update_score::add_bcd#0 ] 1.14: zp ZP_BYTE:159 [ play_update_score::removed#0 ] 0.44: zp ZP_BYTE:165 [ play_update_score::lines_before#0 ] +Uplift Scope [play_increase_level] 4: zp ZP_BYTE:173 [ play_increase_level::$1 ] +Uplift Scope [render_show] 2: zp ZP_BYTE:84 [ render_show::d018val#3 ] Uplift Scope [render_score] 0.75: zp ZP_WORD:5 [ render_score::screen#2 ] Uplift Scope [sid_rnd_init] Uplift Scope [render_screen_swap] Uplift Scope [sprites_irq_init] -Uplifting [keyboard_event_scan] best 4529287 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:79 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] zp ZP_BYTE:80 [ 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:77 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] zp ZP_BYTE:182 [ keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:184 [ keyboard_event_scan::$14 ] zp ZP_BYTE:186 [ keyboard_event_scan::$18 ] zp ZP_BYTE:188 [ keyboard_event_scan::$22 ] zp ZP_BYTE:190 [ keyboard_event_scan::$26 ] +Uplifting [keyboard_event_scan] best 4529849 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:81 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] zp ZP_BYTE:82 [ 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:79 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] zp ZP_BYTE:184 [ keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:186 [ keyboard_event_scan::$14 ] zp ZP_BYTE:188 [ keyboard_event_scan::$18 ] zp ZP_BYTE:190 [ keyboard_event_scan::$22 ] zp ZP_BYTE:192 [ keyboard_event_scan::$26 ] Limited combination testing to 100 combinations of 5308416 possible. -Uplifting [play_collision] best 4379287 combination zp ZP_BYTE:41 [ 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:42 [ 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:145 [ play_collision::i#1 ] zp ZP_BYTE:39 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] zp ZP_BYTE:40 [ play_collision::l#6 play_collision::l#1 ] zp ZP_WORD:143 [ play_collision::playfield_line#0 ] zp ZP_WORD:141 [ play_collision::piece_gfx#0 ] zp ZP_BYTE:38 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] zp ZP_BYTE:36 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] zp ZP_BYTE:37 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] zp ZP_BYTE:138 [ play_collision::return#13 ] zp ZP_BYTE:147 [ play_collision::return#12 ] zp ZP_BYTE:149 [ play_collision::return#1 ] zp ZP_BYTE:153 [ play_collision::return#0 ] zp ZP_BYTE:44 [ play_collision::return#14 ] +Uplifting [play_collision] best 4379849 combination zp ZP_BYTE:41 [ 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:42 [ 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:147 [ play_collision::i#1 ] zp ZP_BYTE:39 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] zp ZP_BYTE:40 [ play_collision::l#6 play_collision::l#1 ] zp ZP_WORD:145 [ play_collision::playfield_line#0 ] zp ZP_WORD:143 [ play_collision::piece_gfx#0 ] zp ZP_BYTE:38 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] zp ZP_BYTE:36 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] zp ZP_BYTE:37 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] zp ZP_BYTE:140 [ play_collision::return#13 ] zp ZP_BYTE:149 [ play_collision::return#12 ] zp ZP_BYTE:151 [ play_collision::return#1 ] zp ZP_BYTE:155 [ play_collision::return#0 ] zp ZP_BYTE:44 [ play_collision::return#14 ] Limited combination testing to 100 combinations of 80621568 possible. -Uplifting [play_remove_lines] best 4242287 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:67 [ play_remove_lines::x#2 play_remove_lines::x#1 ] zp ZP_BYTE:68 [ play_remove_lines::full#4 play_remove_lines::full#2 ] zp ZP_BYTE:172 [ play_remove_lines::c#0 ] zp ZP_BYTE:65 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] zp ZP_BYTE:64 [ play_remove_lines::y#8 play_remove_lines::y#1 ] zp ZP_BYTE:155 [ play_remove_lines::return#0 ] +Uplifting [play_remove_lines] best 4242849 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:69 [ play_remove_lines::x#2 play_remove_lines::x#1 ] zp ZP_BYTE:70 [ play_remove_lines::full#4 play_remove_lines::full#2 ] zp ZP_BYTE:174 [ play_remove_lines::c#0 ] zp ZP_BYTE:67 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] zp ZP_BYTE:66 [ play_remove_lines::y#8 play_remove_lines::y#1 ] zp ZP_BYTE:157 [ play_remove_lines::return#0 ] Limited combination testing to 100 combinations of 20736 possible. -Uplifting [play_lock_current] best 4152287 combination zp ZP_BYTE:72 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] zp ZP_BYTE:73 [ 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:175 [ play_lock_current::i#1 ] zp ZP_BYTE:71 [ play_lock_current::l#6 play_lock_current::l#1 ] zp ZP_WORD:173 [ play_lock_current::playfield_line#0 ] zp ZP_BYTE:70 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] +Uplifting [play_lock_current] best 4152849 combination zp ZP_BYTE:74 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] zp ZP_BYTE:75 [ 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:177 [ play_lock_current::i#1 ] zp ZP_BYTE:73 [ play_lock_current::l#6 play_lock_current::l#1 ] zp ZP_WORD:175 [ play_lock_current::playfield_line#0 ] zp ZP_BYTE:72 [ 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 4151121 combination zp ZP_BYTE:81 [ 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:58 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 ] zp ZP_BYTE:61 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] reg byte x [ current_piece_char#64 current_piece_char#90 current_piece_char#91 ] zp ZP_WORD:18 [ current_piece_gfx#53 current_piece_gfx#102 current_piece_gfx#103 ] zp ZP_BYTE:60 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] reg byte x [ render_screen_render#21 render_screen_render#65 ] zp ZP_WORD:34 [ current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 ] zp ZP_BYTE:15 [ current_ypos#9 current_ypos#86 current_ypos#87 ] zp ZP_BYTE:191 [ keyboard_modifiers#5 ] zp ZP_BYTE:197 [ render_screen_showing#1 ] zp ZP_BYTE:207 [ irq_sprite_ypos#2 ] zp ZP_BYTE:208 [ irq_sprite_ptr#2 ] zp ZP_BYTE:210 [ irq_cnt#14 ] zp ZP_BYTE:211 [ irq_sprite_ypos#1 ] zp ZP_BYTE:212 [ irq_sprite_ptr#1 ] zp ZP_WORD:55 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 ] zp ZP_BYTE:54 [ level_bcd#21 level_bcd#14 level_bcd#16 level_bcd#11 level_bcd#13 level_bcd#4 ] zp ZP_BYTE:57 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] zp ZP_BYTE:47 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] zp ZP_DWORD:50 [ score_bcd#20 score_bcd#12 score_bcd#14 score_bcd#10 score_bcd#23 ] zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] zp ZP_BYTE:17 [ current_xpos#47 current_xpos#112 current_xpos#113 ] zp ZP_WORD:48 [ lines_bcd#20 lines_bcd#13 lines_bcd#15 lines_bcd#11 lines_bcd#23 ] zp ZP_BYTE:78 [ 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:104 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] zp ZP_BYTE:206 [ irq_cnt#1 ] zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] zp ZP_BYTE:108 [ irq_sprite_ypos#0 ] zp ZP_BYTE:106 [ render_screen_showing#0 ] zp ZP_BYTE:109 [ irq_sprite_ptr#0 ] zp ZP_BYTE:110 [ irq_cnt#0 ] zp ZP_BYTE:107 [ irq_raster_next#0 ] -Limited combination testing to 100 combinations of 995328 possible. -Uplifting [render_current] best 4145121 combination zp ZP_BYTE:23 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] zp ZP_BYTE:25 [ render_current::c#2 render_current::c#1 ] zp ZP_BYTE:24 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] reg byte a [ render_current::current_cell#0 ] zp ZP_BYTE:131 [ render_current::$5 ] zp ZP_BYTE:22 [ render_current::l#4 render_current::l#1 ] zp ZP_BYTE:21 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] zp ZP_WORD:132 [ render_current::screen_line#0 ] +Uplifting [] best 4151683 combination zp ZP_BYTE:83 [ 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:60 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 ] zp ZP_BYTE:63 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] reg byte x [ current_piece_char#64 current_piece_char#90 current_piece_char#91 ] zp ZP_WORD:18 [ current_piece_gfx#53 current_piece_gfx#102 current_piece_gfx#103 ] zp ZP_BYTE:62 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] reg byte x [ render_screen_render#21 render_screen_render#65 ] zp ZP_WORD:34 [ current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 ] zp ZP_BYTE:15 [ current_ypos#9 current_ypos#86 current_ypos#87 ] zp ZP_BYTE:56 [ level_bcd#25 level_bcd#15 level_bcd#20 level_bcd#13 level_bcd#18 level_bcd#17 level_bcd#6 ] zp ZP_BYTE:193 [ keyboard_modifiers#5 ] zp ZP_BYTE:199 [ render_screen_showing#1 ] zp ZP_BYTE:209 [ irq_sprite_ypos#2 ] zp ZP_BYTE:210 [ irq_sprite_ptr#2 ] zp ZP_BYTE:212 [ irq_cnt#14 ] zp ZP_BYTE:213 [ irq_sprite_ypos#1 ] zp ZP_BYTE:214 [ irq_sprite_ptr#1 ] zp ZP_WORD:57 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 ] zp ZP_BYTE:55 [ current_movedown_slow#30 current_movedown_slow#19 current_movedown_slow#12 current_movedown_slow#1 current_movedown_slow#17 current_movedown_slow#20 current_movedown_slow#8 ] zp ZP_BYTE:59 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] zp ZP_BYTE:47 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] zp ZP_DWORD:50 [ score_bcd#20 score_bcd#12 score_bcd#14 score_bcd#10 score_bcd#23 ] zp ZP_BYTE:54 [ level#24 level#14 level#19 level#12 level#16 ] zp ZP_BYTE:17 [ current_xpos#47 current_xpos#112 current_xpos#113 ] zp ZP_WORD:48 [ lines_bcd#20 lines_bcd#13 lines_bcd#15 lines_bcd#11 lines_bcd#23 ] zp ZP_BYTE:80 [ 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:106 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] zp ZP_BYTE:208 [ irq_cnt#1 ] zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] zp ZP_BYTE:110 [ irq_sprite_ypos#0 ] zp ZP_BYTE:108 [ render_screen_showing#0 ] zp ZP_BYTE:111 [ irq_sprite_ptr#0 ] zp ZP_BYTE:112 [ irq_cnt#0 ] zp ZP_BYTE:109 [ irq_raster_next#0 ] +Limited combination testing to 100 combinations of 3981312 possible. +Uplifting [render_moving] best 4145683 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:133 [ 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:134 [ render_moving::screen_line#0 ] Limited combination testing to 100 combinations of 3888 possible. -Uplifting [render_playfield] best 4144521 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 [render_playfield] best 4145083 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 4131511 combination reg byte x [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] reg byte a [ play_spawn_current::$1 ] zp ZP_BYTE:158 [ play_spawn_current::$3 ] -Uplifting [keyboard_matrix_read] best 4119505 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 4110502 combination reg byte a [ sid_rnd::return#2 ] reg byte a [ sid_rnd::return#0 ] -Uplifting [render_screen_original] best 4108402 combination zp ZP_WORD:99 [ 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:101 [ 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:95 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] zp ZP_WORD:97 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] zp ZP_BYTE:94 [ render_screen_original::y#6 render_screen_original::y#1 ] -Uplifting [main] best 4106002 combination reg byte a [ main::$12 ] reg byte a [ main::$13 ] reg byte a [ main::$14 ] reg byte a [ main::render#3 ] zp ZP_BYTE:116 [ main::render#1 ] zp ZP_BYTE:120 [ main::render#2 ] zp ZP_BYTE:112 [ main::key_event#0 ] +Uplifting [play_spawn_current] best 4132073 combination reg byte x [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] reg byte a [ play_spawn_current::$1 ] zp ZP_BYTE:160 [ play_spawn_current::$3 ] +Uplifting [keyboard_matrix_read] best 4120067 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 4111064 combination reg byte a [ sid_rnd::return#2 ] reg byte a [ sid_rnd::return#0 ] +Uplifting [render_screen_original] best 4108964 combination zp ZP_WORD:101 [ 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:103 [ 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:97 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] zp ZP_WORD:99 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] zp ZP_BYTE:96 [ render_screen_original::y#6 render_screen_original::y#1 ] +Uplifting [main] best 4106564 combination reg byte a [ main::$12 ] reg byte a [ main::$13 ] reg byte a [ main::$14 ] reg byte a [ main::render#3 ] zp ZP_BYTE:118 [ main::render#1 ] zp ZP_BYTE:122 [ main::render#2 ] zp ZP_BYTE:114 [ main::key_event#0 ] Limited combination testing to 100 combinations of 6912 possible. -Uplifting [play_move_down] best 4104993 combination reg byte a [ play_move_down::return#3 ] reg byte a [ play_move_down::key_event#0 ] reg byte x [ play_move_down::return#2 ] zp ZP_BYTE:46 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] zp ZP_BYTE:152 [ play_move_down::$2 ] zp ZP_BYTE:154 [ play_move_down::$12 ] zp ZP_BYTE:156 [ play_move_down::removed#0 ] +Uplifting [play_move_down] best 4105555 combination reg byte a [ play_move_down::return#3 ] reg byte a [ play_move_down::key_event#0 ] reg byte x [ play_move_down::return#2 ] zp ZP_BYTE:46 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] zp ZP_BYTE:154 [ play_move_down::$2 ] zp ZP_BYTE:156 [ play_move_down::$12 ] zp ZP_BYTE:158 [ play_move_down::removed#0 ] Limited combination testing to 100 combinations of 12288 possible. -Uplifting [play_move_rotate] best 4103781 combination reg byte a [ play_move_rotate::return#4 ] reg byte a [ play_move_rotate::key_event#0 ] reg byte a [ play_move_rotate::return#1 ] zp ZP_BYTE:33 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] zp ZP_BYTE:137 [ play_move_rotate::$2 ] zp ZP_BYTE:139 [ play_move_rotate::$6 ] zp ZP_BYTE:140 [ play_move_rotate::$4 ] +Uplifting [play_move_rotate] best 4104343 combination reg byte a [ play_move_rotate::return#4 ] reg byte a [ play_move_rotate::key_event#0 ] reg byte a [ play_move_rotate::return#1 ] zp ZP_BYTE:33 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] zp ZP_BYTE:139 [ play_move_rotate::$2 ] zp ZP_BYTE:141 [ play_move_rotate::$6 ] zp ZP_BYTE:142 [ play_move_rotate::$4 ] Limited combination testing to 100 combinations of 12288 possible. -Uplifting [play_move_leftright] best 4102563 combination reg byte a [ play_move_leftright::return#4 ] reg byte a [ play_move_leftright::key_event#0 ] reg byte a [ play_move_leftright::return#1 ] reg byte a [ play_move_leftright::$4 ] zp ZP_BYTE:150 [ play_move_leftright::$8 ] +Uplifting [play_move_leftright] best 4103125 combination reg byte a [ play_move_leftright::return#4 ] reg byte a [ play_move_leftright::key_event#0 ] reg byte a [ play_move_leftright::return#1 ] reg byte a [ play_move_leftright::$4 ] zp ZP_BYTE:152 [ play_move_leftright::$8 ] Limited combination testing to 100 combinations of 1024 possible. -Uplifting [keyboard_event_get] best 4101657 combination reg byte a [ keyboard_event_get::return#3 ] reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] -Uplifting [render_bcd] best 4101623 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:129 [ 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:128 [ render_bcd::$6 ] zp ZP_WORD:9 [ render_bcd::offset#6 ] zp ZP_BYTE:11 [ render_bcd::only_low#6 ] +Uplifting [keyboard_event_get] best 4102219 combination reg byte a [ keyboard_event_get::return#3 ] reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] +Uplifting [render_bcd] best 4102185 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:131 [ 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:130 [ 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 4101433 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:92 [ render_init::li_2#2 render_init::li_2#1 ] zp ZP_WORD:90 [ render_init::li_1#2 render_init::li_1#1 ] -Uplifting [play_init] best 4101263 combination reg byte x [ play_init::j#2 play_init::j#1 ] reg byte a [ play_init::$1 ] zp ZP_BYTE:86 [ play_init::idx#2 play_init::idx#1 ] zp ZP_WORD:84 [ play_init::pli#2 play_init::pli#1 ] -Uplifting [sprites_init] best 4101093 combination reg byte x [ sprites_init::s#2 sprites_init::s#1 ] reg byte a [ sprites_init::s2#0 ] zp ZP_BYTE:88 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Uplifting [sprites_irq] best 4101067 combination reg byte x [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] reg byte x [ sprites_irq::ptr#4 ] reg byte a [ sprites_irq::$4 ] reg byte a [ sprites_irq::ptr#2 ] zp ZP_BYTE:204 [ sprites_irq::ptr#3 ] zp ZP_BYTE:213 [ sprites_irq::ptr#1 ] zp ZP_BYTE:202 [ sprites_irq::ypos#0 ] zp ZP_BYTE:203 [ sprites_irq::ptr#0 ] +Uplifting [render_init] best 4101995 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:94 [ render_init::li_2#2 render_init::li_2#1 ] zp ZP_WORD:92 [ render_init::li_1#2 render_init::li_1#1 ] +Uplifting [play_init] best 4101825 combination reg byte x [ play_init::j#2 play_init::j#1 ] reg byte a [ play_init::$1 ] zp ZP_BYTE:88 [ play_init::idx#2 play_init::idx#1 ] zp ZP_WORD:86 [ play_init::pli#2 play_init::pli#1 ] +Uplifting [sprites_init] best 4101655 combination reg byte x [ sprites_init::s#2 sprites_init::s#1 ] reg byte a [ sprites_init::s2#0 ] zp ZP_BYTE:90 [ sprites_init::xpos#2 sprites_init::xpos#1 ] +Uplifting [sprites_irq] best 4101629 combination reg byte x [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] reg byte x [ sprites_irq::ptr#4 ] reg byte a [ sprites_irq::$4 ] reg byte a [ sprites_irq::ptr#2 ] zp ZP_BYTE:206 [ sprites_irq::ptr#3 ] zp ZP_BYTE:215 [ sprites_irq::ptr#1 ] zp ZP_BYTE:204 [ sprites_irq::ypos#0 ] zp ZP_BYTE:205 [ sprites_irq::ptr#0 ] Limited combination testing to 100 combinations of 36864 possible. -Uplifting [keyboard_event_pressed] best 4101047 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:185 [ keyboard_event_pressed::return#1 ] zp ZP_BYTE:187 [ keyboard_event_pressed::return#2 ] zp ZP_BYTE:189 [ keyboard_event_pressed::return#10 ] zp ZP_BYTE:177 [ keyboard_event_pressed::row_bits#0 ] zp ZP_BYTE:179 [ keyboard_event_pressed::return#11 ] zp ZP_BYTE:75 [ keyboard_event_pressed::keycode#5 ] +Uplifting [keyboard_event_pressed] best 4101609 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:187 [ keyboard_event_pressed::return#1 ] zp ZP_BYTE:189 [ keyboard_event_pressed::return#2 ] zp ZP_BYTE:191 [ keyboard_event_pressed::return#10 ] zp ZP_BYTE:179 [ keyboard_event_pressed::row_bits#0 ] zp ZP_BYTE:181 [ keyboard_event_pressed::return#11 ] zp ZP_BYTE:77 [ keyboard_event_pressed::keycode#5 ] Limited combination testing to 100 combinations of 589824 possible. -Uplifting [play_update_score] best 4101025 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_BYTE:171 [ play_update_score::$9 ] zp ZP_DWORD:165 [ play_update_score::add_bcd#0 ] zp ZP_BYTE:157 [ play_update_score::removed#0 ] zp ZP_BYTE:163 [ play_update_score::lines_before#0 ] -Limited combination testing to 100 combinations of 9216 possible. -Uplifting [render_show] best 4101016 combination reg byte a [ render_show::d018val#3 ] -Uplifting [render_score] best 4101016 combination zp ZP_WORD:5 [ render_score::screen#2 ] -Uplifting [sid_rnd_init] best 4101016 combination -Uplifting [render_screen_swap] best 4101016 combination -Uplifting [sprites_irq_init] best 4101016 combination -Attempting to uplift remaining variables inzp ZP_BYTE:81 [ 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 4101016 combination zp ZP_BYTE:81 [ 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 [play_update_score] best 4101587 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:167 [ play_update_score::add_bcd#0 ] zp ZP_BYTE:159 [ play_update_score::removed#0 ] zp ZP_BYTE:165 [ play_update_score::lines_before#0 ] +Limited combination testing to 100 combinations of 2304 possible. +Uplifting [play_increase_level] best 4101581 combination reg byte a [ play_increase_level::$1 ] +Uplifting [render_show] best 4101572 combination reg byte a [ render_show::d018val#3 ] +Uplifting [render_score] best 4101572 combination zp ZP_WORD:5 [ render_score::screen#2 ] +Uplifting [sid_rnd_init] best 4101572 combination +Uplifting [render_screen_swap] best 4101572 combination +Uplifting [sprites_irq_init] best 4101572 combination +Attempting to uplift remaining variables inzp ZP_BYTE:83 [ 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 4101572 combination zp ZP_BYTE:83 [ 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:41 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] -Uplifting [play_collision] best 4101016 combination zp ZP_BYTE:41 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] -Attempting to uplift remaining variables inzp ZP_BYTE:72 [ 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 4101016 combination zp ZP_BYTE:72 [ 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:79 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] -Uplifting [keyboard_event_scan] best 3951016 combination reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:67 [ play_remove_lines::x#2 play_remove_lines::x#1 ] -Uplifting [play_remove_lines] best 3951016 combination zp ZP_BYTE:67 [ play_remove_lines::x#2 play_remove_lines::x#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:73 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] -Uplifting [play_lock_current] best 3951016 combination zp ZP_BYTE:73 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] +Uplifting [play_collision] best 4101572 combination zp ZP_BYTE:41 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] +Attempting to uplift remaining variables inzp ZP_BYTE:74 [ 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 4101572 combination zp ZP_BYTE:74 [ 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:81 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +Uplifting [keyboard_event_scan] best 3951572 combination reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:69 [ play_remove_lines::x#2 play_remove_lines::x#1 ] +Uplifting [play_remove_lines] best 3951572 combination zp ZP_BYTE:69 [ play_remove_lines::x#2 play_remove_lines::x#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:75 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] +Uplifting [play_lock_current] best 3951572 combination zp ZP_BYTE:75 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:42 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] -Uplifting [play_collision] best 3951016 combination zp ZP_BYTE:42 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:80 [ 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 3951016 combination zp ZP_BYTE:80 [ 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:68 [ play_remove_lines::full#4 play_remove_lines::full#2 ] -Uplifting [play_remove_lines] best 3951016 combination zp ZP_BYTE:68 [ play_remove_lines::full#4 play_remove_lines::full#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:172 [ play_remove_lines::c#0 ] -Uplifting [play_remove_lines] best 3951016 combination zp ZP_BYTE:172 [ play_remove_lines::c#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:65 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] -Uplifting [play_remove_lines] best 3951016 combination zp ZP_BYTE:65 [ 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_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] -Uplifting [render_current] best 3951016 combination zp ZP_BYTE:23 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:175 [ play_lock_current::i#1 ] -Uplifting [play_lock_current] best 3951016 combination zp ZP_BYTE:175 [ play_lock_current::i#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:77 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Uplifting [keyboard_event_scan] best 3951016 combination zp ZP_BYTE:77 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Uplifting [play_collision] best 3951572 combination zp ZP_BYTE:42 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:82 [ 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 3951572 combination zp ZP_BYTE:82 [ 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:70 [ play_remove_lines::full#4 play_remove_lines::full#2 ] +Uplifting [play_remove_lines] best 3951572 combination zp ZP_BYTE:70 [ play_remove_lines::full#4 play_remove_lines::full#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:174 [ play_remove_lines::c#0 ] +Uplifting [play_remove_lines] best 3951572 combination zp ZP_BYTE:174 [ play_remove_lines::c#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:67 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] +Uplifting [play_remove_lines] best 3951572 combination zp ZP_BYTE:67 [ 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 3951572 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 ] +Attempting to uplift remaining variables inzp ZP_BYTE:177 [ play_lock_current::i#1 ] +Uplifting [play_lock_current] best 3951572 combination zp ZP_BYTE:177 [ play_lock_current::i#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:79 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Uplifting [keyboard_event_scan] best 3951572 combination zp ZP_BYTE:79 [ 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 3951016 combination zp ZP_BYTE:31 [ render_playfield::c#2 render_playfield::c#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:25 [ render_current::c#2 render_current::c#1 ] -Uplifting [render_current] best 3951016 combination zp ZP_BYTE:25 [ render_current::c#2 render_current::c#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:64 [ play_remove_lines::y#8 play_remove_lines::y#1 ] -Uplifting [play_remove_lines] best 3951016 combination zp ZP_BYTE:64 [ play_remove_lines::y#8 play_remove_lines::y#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:145 [ play_collision::i#1 ] -Uplifting [play_collision] best 3951016 combination zp ZP_BYTE:145 [ play_collision::i#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:24 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] -Uplifting [render_current] best 3951016 combination zp ZP_BYTE:24 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] +Uplifting [render_playfield] best 3951572 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 3951572 combination zp ZP_BYTE:25 [ render_moving::c#2 render_moving::c#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:66 [ play_remove_lines::y#8 play_remove_lines::y#1 ] +Uplifting [play_remove_lines] best 3951572 combination zp ZP_BYTE:66 [ play_remove_lines::y#8 play_remove_lines::y#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:147 [ play_collision::i#1 ] +Uplifting [play_collision] best 3951572 combination zp ZP_BYTE:147 [ 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 3951572 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:28 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] -Uplifting [render_playfield] best 3951016 combination zp ZP_BYTE:28 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] +Uplifting [render_playfield] best 3951572 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:39 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] -Uplifting [play_collision] best 3951016 combination zp ZP_BYTE:39 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:182 [ keyboard_event_scan::row_scan#0 ] -Uplifting [keyboard_event_scan] best 3951016 combination zp ZP_BYTE:182 [ keyboard_event_scan::row_scan#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:71 [ play_lock_current::l#6 play_lock_current::l#1 ] -Uplifting [play_lock_current] best 3951016 combination zp ZP_BYTE:71 [ play_lock_current::l#6 play_lock_current::l#1 ] +Uplifting [play_collision] best 3951572 combination zp ZP_BYTE:39 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:184 [ keyboard_event_scan::row_scan#0 ] +Uplifting [keyboard_event_scan] best 3951572 combination zp ZP_BYTE:184 [ keyboard_event_scan::row_scan#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:73 [ play_lock_current::l#6 play_lock_current::l#1 ] +Uplifting [play_lock_current] best 3951572 combination zp ZP_BYTE:73 [ play_lock_current::l#6 play_lock_current::l#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:40 [ play_collision::l#6 play_collision::l#1 ] -Uplifting [play_collision] best 3951016 combination zp ZP_BYTE:40 [ play_collision::l#6 play_collision::l#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:70 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -Uplifting [play_lock_current] best 3951016 combination zp ZP_BYTE:70 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:61 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] -Uplifting [] best 3951016 combination zp ZP_BYTE:61 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:131 [ render_current::$5 ] -Uplifting [render_current] best 3950616 combination reg byte a [ render_current::$5 ] +Uplifting [play_collision] best 3951572 combination zp ZP_BYTE:40 [ play_collision::l#6 play_collision::l#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:72 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] +Uplifting [play_lock_current] best 3951572 combination zp ZP_BYTE:72 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:63 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] +Uplifting [] best 3951572 combination zp ZP_BYTE:63 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:133 [ render_moving::$5 ] +Uplifting [render_moving] best 3951172 combination reg byte a [ render_moving::$5 ] Attempting to uplift remaining variables inzp ZP_BYTE:27 [ render_playfield::l#2 render_playfield::l#1 ] -Uplifting [render_playfield] best 3950616 combination zp ZP_BYTE:27 [ render_playfield::l#2 render_playfield::l#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:22 [ render_current::l#4 render_current::l#1 ] -Uplifting [render_current] best 3950616 combination zp ZP_BYTE:22 [ render_current::l#4 render_current::l#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:21 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] -Uplifting [render_current] best 3950616 combination zp ZP_BYTE:21 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] +Uplifting [render_playfield] best 3951172 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 3951172 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 3951172 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:38 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] -Uplifting [play_collision] best 3950616 combination zp ZP_BYTE:38 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] -Attempting to uplift remaining variables inzp ZP_BYTE:116 [ main::render#1 ] -Uplifting [main] best 3950616 combination zp ZP_BYTE:116 [ main::render#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:120 [ main::render#2 ] -Uplifting [main] best 3950616 combination zp ZP_BYTE:120 [ main::render#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:60 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] -Uplifting [] best 3950616 combination zp ZP_BYTE:60 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:112 [ main::key_event#0 ] -Uplifting [main] best 3950616 combination zp ZP_BYTE:112 [ main::key_event#0 ] +Uplifting [play_collision] best 3951172 combination zp ZP_BYTE:38 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] +Attempting to uplift remaining variables inzp ZP_BYTE:118 [ main::render#1 ] +Uplifting [main] best 3951172 combination zp ZP_BYTE:118 [ main::render#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:122 [ main::render#2 ] +Uplifting [main] best 3951172 combination zp ZP_BYTE:122 [ main::render#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:62 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] +Uplifting [] best 3951172 combination zp ZP_BYTE:62 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:114 [ main::key_event#0 ] +Uplifting [main] best 3951172 combination zp ZP_BYTE:114 [ main::key_event#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:15 [ current_ypos#9 current_ypos#86 current_ypos#87 ] -Uplifting [] best 3950582 combination reg byte y [ current_ypos#9 current_ypos#86 current_ypos#87 ] +Uplifting [] best 3951138 combination reg byte y [ current_ypos#9 current_ypos#86 current_ypos#87 ] +Attempting to uplift remaining variables inzp ZP_BYTE:56 [ level_bcd#25 level_bcd#15 level_bcd#20 level_bcd#13 level_bcd#18 level_bcd#17 level_bcd#6 ] +Uplifting [] best 3951138 combination zp ZP_BYTE:56 [ level_bcd#25 level_bcd#15 level_bcd#20 level_bcd#13 level_bcd#18 level_bcd#17 level_bcd#6 ] Attempting to uplift remaining variables inzp ZP_BYTE:46 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] -Uplifting [play_move_down] best 3950567 combination reg byte x [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] -Attempting to uplift remaining variables inzp ZP_BYTE:191 [ keyboard_modifiers#5 ] -Uplifting [] best 3950564 combination reg byte a [ keyboard_modifiers#5 ] -Attempting to uplift remaining variables inzp ZP_BYTE:197 [ render_screen_showing#1 ] -Uplifting [] best 3950564 combination zp ZP_BYTE:197 [ render_screen_showing#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:207 [ irq_sprite_ypos#2 ] -Uplifting [] best 3950564 combination zp ZP_BYTE:207 [ irq_sprite_ypos#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:208 [ irq_sprite_ptr#2 ] -Uplifting [] best 3950564 combination zp ZP_BYTE:208 [ irq_sprite_ptr#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:210 [ irq_cnt#14 ] -Uplifting [] best 3950564 combination zp ZP_BYTE:210 [ irq_cnt#14 ] -Attempting to uplift remaining variables inzp ZP_BYTE:211 [ irq_sprite_ypos#1 ] -Uplifting [] best 3950564 combination zp ZP_BYTE:211 [ irq_sprite_ypos#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:212 [ irq_sprite_ptr#1 ] -Uplifting [] best 3950564 combination zp ZP_BYTE:212 [ irq_sprite_ptr#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:54 [ level_bcd#21 level_bcd#14 level_bcd#16 level_bcd#11 level_bcd#13 level_bcd#4 ] -Uplifting [] best 3950564 combination zp ZP_BYTE:54 [ level_bcd#21 level_bcd#14 level_bcd#16 level_bcd#11 level_bcd#13 level_bcd#4 ] +Uplifting [play_move_down] best 3951123 combination reg byte x [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] +Attempting to uplift remaining variables inzp ZP_BYTE:193 [ keyboard_modifiers#5 ] +Uplifting [] best 3951120 combination reg byte a [ keyboard_modifiers#5 ] +Attempting to uplift remaining variables inzp ZP_BYTE:199 [ render_screen_showing#1 ] +Uplifting [] best 3951120 combination zp ZP_BYTE:199 [ render_screen_showing#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:209 [ irq_sprite_ypos#2 ] +Uplifting [] best 3951120 combination zp ZP_BYTE:209 [ irq_sprite_ypos#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:210 [ irq_sprite_ptr#2 ] +Uplifting [] best 3951120 combination zp ZP_BYTE:210 [ irq_sprite_ptr#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:212 [ irq_cnt#14 ] +Uplifting [] best 3951120 combination zp ZP_BYTE:212 [ irq_cnt#14 ] +Attempting to uplift remaining variables inzp ZP_BYTE:213 [ irq_sprite_ypos#1 ] +Uplifting [] best 3951120 combination zp ZP_BYTE:213 [ irq_sprite_ypos#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:214 [ irq_sprite_ptr#1 ] +Uplifting [] best 3951120 combination zp ZP_BYTE:214 [ irq_sprite_ptr#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:55 [ current_movedown_slow#30 current_movedown_slow#19 current_movedown_slow#12 current_movedown_slow#1 current_movedown_slow#17 current_movedown_slow#20 current_movedown_slow#8 ] +Uplifting [] best 3951120 combination zp ZP_BYTE:55 [ current_movedown_slow#30 current_movedown_slow#19 current_movedown_slow#12 current_movedown_slow#1 current_movedown_slow#17 current_movedown_slow#20 current_movedown_slow#8 ] Attempting to uplift remaining variables inzp ZP_BYTE:36 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] -Uplifting [play_collision] best 3950551 combination reg byte x [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] -Attempting to uplift remaining variables inzp ZP_BYTE:94 [ render_screen_original::y#6 render_screen_original::y#1 ] -Uplifting [render_screen_original] best 3950551 combination zp ZP_BYTE:94 [ render_screen_original::y#6 render_screen_original::y#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:57 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -Uplifting [] best 3950551 combination zp ZP_BYTE:57 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] +Uplifting [play_collision] best 3951107 combination reg byte x [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] +Attempting to uplift remaining variables inzp ZP_BYTE:96 [ render_screen_original::y#6 render_screen_original::y#1 ] +Uplifting [render_screen_original] best 3951107 combination zp ZP_BYTE:96 [ render_screen_original::y#6 render_screen_original::y#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:59 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] +Uplifting [] best 3951107 combination zp ZP_BYTE:59 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] Attempting to uplift remaining variables inzp ZP_BYTE:47 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] -Uplifting [] best 3950551 combination zp ZP_BYTE:47 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:88 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Uplifting [sprites_init] best 3950551 combination zp ZP_BYTE:88 [ sprites_init::xpos#2 sprites_init::xpos#1 ] +Uplifting [] best 3951107 combination zp ZP_BYTE:47 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:90 [ sprites_init::xpos#2 sprites_init::xpos#1 ] +Uplifting [sprites_init] best 3951107 combination zp ZP_BYTE:90 [ sprites_init::xpos#2 sprites_init::xpos#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] -Uplifting [] best 3950551 combination zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:86 [ play_init::idx#2 play_init::idx#1 ] -Uplifting [play_init] best 3950551 combination zp ZP_BYTE:86 [ play_init::idx#2 play_init::idx#1 ] +Uplifting [] best 3951107 combination zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:54 [ level#24 level#14 level#19 level#12 level#16 ] +Uplifting [] best 3951107 combination zp ZP_BYTE:54 [ level#24 level#14 level#19 level#12 level#16 ] +Attempting to uplift remaining variables inzp ZP_BYTE:88 [ play_init::idx#2 play_init::idx#1 ] +Uplifting [play_init] best 3951107 combination zp ZP_BYTE:88 [ play_init::idx#2 play_init::idx#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:17 [ current_xpos#47 current_xpos#112 current_xpos#113 ] -Uplifting [] best 3950551 combination zp ZP_BYTE:17 [ current_xpos#47 current_xpos#112 current_xpos#113 ] -Attempting to uplift remaining variables inzp ZP_BYTE:78 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] -Uplifting [] best 3950540 combination reg byte x [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] +Uplifting [] best 3951107 combination zp ZP_BYTE:17 [ current_xpos#47 current_xpos#112 current_xpos#113 ] +Attempting to uplift remaining variables inzp ZP_BYTE:80 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] +Uplifting [] best 3951096 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 3950540 combination zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 ] +Uplifting [] best 3951096 combination zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 ] Attempting to uplift remaining variables inzp ZP_BYTE:37 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] -Uplifting [play_collision] best 3950527 combination reg byte y [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] +Uplifting [play_collision] best 3951083 combination reg byte y [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] Attempting to uplift remaining variables inzp ZP_BYTE:33 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] -Uplifting [play_move_rotate] best 3950527 combination zp ZP_BYTE:33 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:104 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] -Uplifting [] best 3950527 combination zp ZP_BYTE:104 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] +Uplifting [play_move_rotate] best 3951083 combination zp ZP_BYTE:33 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:106 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] +Uplifting [] best 3951083 combination zp ZP_BYTE:106 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] -Uplifting [] best 3950527 combination zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] -Attempting to uplift remaining variables inzp ZP_BYTE:128 [ render_bcd::$6 ] -Uplifting [render_bcd] best 3950521 combination reg byte a [ render_bcd::$6 ] -Attempting to uplift remaining variables inzp ZP_BYTE:137 [ play_move_rotate::$2 ] -Uplifting [play_move_rotate] best 3950515 combination reg byte a [ play_move_rotate::$2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:138 [ play_collision::return#13 ] -Uplifting [play_collision] best 3950509 combination reg byte a [ play_collision::return#13 ] -Attempting to uplift remaining variables inzp ZP_BYTE:139 [ play_move_rotate::$6 ] -Uplifting [play_move_rotate] best 3950503 combination reg byte a [ play_move_rotate::$6 ] -Attempting to uplift remaining variables inzp ZP_BYTE:140 [ play_move_rotate::$4 ] -Uplifting [play_move_rotate] best 3950497 combination reg byte a [ play_move_rotate::$4 ] -Attempting to uplift remaining variables inzp ZP_BYTE:147 [ play_collision::return#12 ] -Uplifting [play_collision] best 3950491 combination reg byte a [ play_collision::return#12 ] -Attempting to uplift remaining variables inzp ZP_BYTE:149 [ play_collision::return#1 ] -Uplifting [play_collision] best 3950485 combination reg byte a [ play_collision::return#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:150 [ play_move_leftright::$8 ] -Uplifting [play_move_leftright] best 3950479 combination reg byte a [ play_move_leftright::$8 ] -Attempting to uplift remaining variables inzp ZP_BYTE:152 [ play_move_down::$2 ] -Uplifting [play_move_down] best 3950473 combination reg byte a [ play_move_down::$2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:153 [ play_collision::return#0 ] -Uplifting [play_collision] best 3950467 combination reg byte a [ play_collision::return#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:154 [ play_move_down::$12 ] -Uplifting [play_move_down] best 3950461 combination reg byte a [ play_move_down::$12 ] -Attempting to uplift remaining variables inzp ZP_BYTE:155 [ play_remove_lines::return#0 ] -Uplifting [play_remove_lines] best 3950455 combination reg byte a [ play_remove_lines::return#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:156 [ play_move_down::removed#0 ] -Uplifting [play_move_down] best 3950449 combination reg byte a [ play_move_down::removed#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:171 [ play_update_score::$9 ] -Uplifting [play_update_score] best 3950443 combination reg byte a [ play_update_score::$9 ] -Attempting to uplift remaining variables inzp ZP_BYTE:184 [ keyboard_event_scan::$14 ] -Uplifting [keyboard_event_scan] best 3950437 combination reg byte a [ keyboard_event_scan::$14 ] -Attempting to uplift remaining variables inzp ZP_BYTE:185 [ keyboard_event_pressed::return#1 ] -Uplifting [keyboard_event_pressed] best 3950431 combination reg byte a [ keyboard_event_pressed::return#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:186 [ keyboard_event_scan::$18 ] -Uplifting [keyboard_event_scan] best 3950425 combination reg byte a [ keyboard_event_scan::$18 ] -Attempting to uplift remaining variables inzp ZP_BYTE:187 [ keyboard_event_pressed::return#2 ] -Uplifting [keyboard_event_pressed] best 3950419 combination reg byte a [ keyboard_event_pressed::return#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:188 [ keyboard_event_scan::$22 ] -Uplifting [keyboard_event_scan] best 3950413 combination reg byte a [ keyboard_event_scan::$22 ] -Attempting to uplift remaining variables inzp ZP_BYTE:189 [ keyboard_event_pressed::return#10 ] -Uplifting [keyboard_event_pressed] best 3950407 combination reg byte a [ keyboard_event_pressed::return#10 ] -Attempting to uplift remaining variables inzp ZP_BYTE:190 [ keyboard_event_scan::$26 ] -Uplifting [keyboard_event_scan] best 3950401 combination reg byte a [ keyboard_event_scan::$26 ] -Attempting to uplift remaining variables inzp ZP_BYTE:206 [ irq_cnt#1 ] -Uplifting [] best 3950401 combination zp ZP_BYTE:206 [ irq_cnt#1 ] +Uplifting [] best 3951083 combination zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] +Attempting to uplift remaining variables inzp ZP_BYTE:130 [ render_bcd::$6 ] +Uplifting [render_bcd] best 3951077 combination reg byte a [ render_bcd::$6 ] +Attempting to uplift remaining variables inzp ZP_BYTE:139 [ play_move_rotate::$2 ] +Uplifting [play_move_rotate] best 3951071 combination reg byte a [ play_move_rotate::$2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:140 [ play_collision::return#13 ] +Uplifting [play_collision] best 3951065 combination reg byte a [ play_collision::return#13 ] +Attempting to uplift remaining variables inzp ZP_BYTE:141 [ play_move_rotate::$6 ] +Uplifting [play_move_rotate] best 3951059 combination reg byte a [ play_move_rotate::$6 ] +Attempting to uplift remaining variables inzp ZP_BYTE:142 [ play_move_rotate::$4 ] +Uplifting [play_move_rotate] best 3951053 combination reg byte a [ play_move_rotate::$4 ] +Attempting to uplift remaining variables inzp ZP_BYTE:149 [ play_collision::return#12 ] +Uplifting [play_collision] best 3951047 combination reg byte a [ play_collision::return#12 ] +Attempting to uplift remaining variables inzp ZP_BYTE:151 [ play_collision::return#1 ] +Uplifting [play_collision] best 3951041 combination reg byte a [ play_collision::return#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:152 [ play_move_leftright::$8 ] +Uplifting [play_move_leftright] best 3951035 combination reg byte a [ play_move_leftright::$8 ] +Attempting to uplift remaining variables inzp ZP_BYTE:154 [ play_move_down::$2 ] +Uplifting [play_move_down] best 3951029 combination reg byte a [ play_move_down::$2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:155 [ play_collision::return#0 ] +Uplifting [play_collision] best 3951023 combination reg byte a [ play_collision::return#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:156 [ play_move_down::$12 ] +Uplifting [play_move_down] best 3951017 combination reg byte a [ play_move_down::$12 ] +Attempting to uplift remaining variables inzp ZP_BYTE:157 [ play_remove_lines::return#0 ] +Uplifting [play_remove_lines] best 3951011 combination reg byte a [ play_remove_lines::return#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:158 [ play_move_down::removed#0 ] +Uplifting [play_move_down] best 3951005 combination reg byte a [ play_move_down::removed#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:186 [ keyboard_event_scan::$14 ] +Uplifting [keyboard_event_scan] best 3950999 combination reg byte a [ keyboard_event_scan::$14 ] +Attempting to uplift remaining variables inzp ZP_BYTE:187 [ keyboard_event_pressed::return#1 ] +Uplifting [keyboard_event_pressed] best 3950993 combination reg byte a [ keyboard_event_pressed::return#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:188 [ keyboard_event_scan::$18 ] +Uplifting [keyboard_event_scan] best 3950987 combination reg byte a [ keyboard_event_scan::$18 ] +Attempting to uplift remaining variables inzp ZP_BYTE:189 [ keyboard_event_pressed::return#2 ] +Uplifting [keyboard_event_pressed] best 3950981 combination reg byte a [ keyboard_event_pressed::return#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:190 [ keyboard_event_scan::$22 ] +Uplifting [keyboard_event_scan] best 3950975 combination reg byte a [ keyboard_event_scan::$22 ] +Attempting to uplift remaining variables inzp ZP_BYTE:191 [ keyboard_event_pressed::return#10 ] +Uplifting [keyboard_event_pressed] best 3950969 combination reg byte a [ keyboard_event_pressed::return#10 ] +Attempting to uplift remaining variables inzp ZP_BYTE:192 [ keyboard_event_scan::$26 ] +Uplifting [keyboard_event_scan] best 3950963 combination reg byte a [ keyboard_event_scan::$26 ] +Attempting to uplift remaining variables inzp ZP_BYTE:208 [ irq_cnt#1 ] +Uplifting [] best 3950963 combination zp ZP_BYTE:208 [ irq_cnt#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] -Uplifting [] best 3950401 combination zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] -Attempting to uplift remaining variables inzp ZP_BYTE:204 [ sprites_irq::ptr#3 ] -Uplifting [sprites_irq] best 3950389 combination reg byte x [ sprites_irq::ptr#3 ] -Attempting to uplift remaining variables inzp ZP_BYTE:213 [ sprites_irq::ptr#1 ] -Uplifting [sprites_irq] best 3950379 combination reg byte a [ sprites_irq::ptr#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:202 [ sprites_irq::ypos#0 ] -Uplifting [sprites_irq] best 3950364 combination reg byte a [ sprites_irq::ypos#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:203 [ sprites_irq::ptr#0 ] -Uplifting [sprites_irq] best 3950351 combination reg byte x [ sprites_irq::ptr#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:177 [ keyboard_event_pressed::row_bits#0 ] -Uplifting [keyboard_event_pressed] best 3950351 combination zp ZP_BYTE:177 [ keyboard_event_pressed::row_bits#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:179 [ keyboard_event_pressed::return#11 ] -Uplifting [keyboard_event_pressed] best 3950333 combination reg byte a [ keyboard_event_pressed::return#11 ] +Uplifting [] best 3950963 combination zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] +Attempting to uplift remaining variables inzp ZP_BYTE:206 [ sprites_irq::ptr#3 ] +Uplifting [sprites_irq] best 3950951 combination reg byte x [ sprites_irq::ptr#3 ] +Attempting to uplift remaining variables inzp ZP_BYTE:215 [ sprites_irq::ptr#1 ] +Uplifting [sprites_irq] best 3950941 combination reg byte a [ sprites_irq::ptr#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:204 [ sprites_irq::ypos#0 ] +Uplifting [sprites_irq] best 3950926 combination reg byte a [ sprites_irq::ypos#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:205 [ sprites_irq::ptr#0 ] +Uplifting [sprites_irq] best 3950913 combination reg byte x [ sprites_irq::ptr#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:179 [ keyboard_event_pressed::row_bits#0 ] +Uplifting [keyboard_event_pressed] best 3950913 combination zp ZP_BYTE:179 [ keyboard_event_pressed::row_bits#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:181 [ keyboard_event_pressed::return#11 ] +Uplifting [keyboard_event_pressed] best 3950895 combination reg byte a [ keyboard_event_pressed::return#11 ] Attempting to uplift remaining variables inzp ZP_BYTE:44 [ play_collision::return#14 ] -Uplifting [play_collision] best 3950306 combination reg byte a [ play_collision::return#14 ] -Attempting to uplift remaining variables inzp ZP_BYTE:75 [ keyboard_event_pressed::keycode#5 ] -Uplifting [keyboard_event_pressed] best 3950306 combination zp ZP_BYTE:75 [ keyboard_event_pressed::keycode#5 ] -Attempting to uplift remaining variables inzp ZP_BYTE:157 [ play_update_score::removed#0 ] -Uplifting [play_update_score] best 3950300 combination reg byte x [ play_update_score::removed#0 ] +Uplifting [play_collision] best 3950868 combination reg byte a [ play_collision::return#14 ] +Attempting to uplift remaining variables inzp ZP_BYTE:77 [ keyboard_event_pressed::keycode#5 ] +Uplifting [keyboard_event_pressed] best 3950868 combination zp ZP_BYTE:77 [ keyboard_event_pressed::keycode#5 ] +Attempting to uplift remaining variables inzp ZP_BYTE:159 [ play_update_score::removed#0 ] +Uplifting [play_update_score] best 3950862 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 3950279 combination reg byte y [ render_bcd::only_low#6 ] -Attempting to uplift remaining variables inzp ZP_BYTE:108 [ irq_sprite_ypos#0 ] -Uplifting [] best 3950279 combination zp ZP_BYTE:108 [ irq_sprite_ypos#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:106 [ render_screen_showing#0 ] -Uplifting [] best 3950279 combination zp ZP_BYTE:106 [ render_screen_showing#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:163 [ play_update_score::lines_before#0 ] -Uplifting [play_update_score] best 3950279 combination zp ZP_BYTE:163 [ play_update_score::lines_before#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:109 [ irq_sprite_ptr#0 ] -Uplifting [] best 3950279 combination zp ZP_BYTE:109 [ irq_sprite_ptr#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:110 [ irq_cnt#0 ] -Uplifting [] best 3950279 combination zp ZP_BYTE:110 [ irq_cnt#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:107 [ irq_raster_next#0 ] -Uplifting [] best 3950279 combination zp ZP_BYTE:107 [ irq_raster_next#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:158 [ play_spawn_current::$3 ] -Uplifting [play_spawn_current] best 3950279 combination zp ZP_BYTE:158 [ play_spawn_current::$3 ] +Uplifting [render_bcd] best 3950841 combination reg byte y [ render_bcd::only_low#6 ] +Attempting to uplift remaining variables inzp ZP_BYTE:110 [ irq_sprite_ypos#0 ] +Uplifting [] best 3950841 combination zp ZP_BYTE:110 [ irq_sprite_ypos#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:108 [ render_screen_showing#0 ] +Uplifting [] best 3950841 combination zp ZP_BYTE:108 [ render_screen_showing#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:165 [ play_update_score::lines_before#0 ] +Uplifting [play_update_score] best 3950841 combination zp ZP_BYTE:165 [ play_update_score::lines_before#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:111 [ irq_sprite_ptr#0 ] +Uplifting [] best 3950841 combination zp ZP_BYTE:111 [ irq_sprite_ptr#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:112 [ irq_cnt#0 ] +Uplifting [] best 3950841 combination zp ZP_BYTE:112 [ irq_cnt#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:109 [ irq_raster_next#0 ] +Uplifting [] best 3950841 combination zp ZP_BYTE:109 [ irq_raster_next#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:160 [ play_spawn_current::$3 ] +Uplifting [play_spawn_current] best 3950841 combination zp ZP_BYTE:160 [ 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_WORD:9 [ render_bcd::offset#6 ] ] with [ zp ZP_WORD:13 [ render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_WORD:34 [ current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 ] ] with [ zp ZP_WORD:141 [ play_collision::piece_gfx#0 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_BYTE:47 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] ] with [ zp ZP_BYTE:70 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_BYTE:104 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] ] with [ zp ZP_BYTE:107 [ irq_raster_next#0 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_BYTE:108 [ irq_sprite_ypos#0 ] ] with [ zp ZP_BYTE:207 [ irq_sprite_ypos#2 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_BYTE:109 [ irq_sprite_ptr#0 ] ] with [ zp ZP_BYTE:208 [ irq_sprite_ptr#2 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_BYTE:110 [ irq_cnt#0 ] ] with [ zp ZP_BYTE:206 [ irq_cnt#1 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_BYTE:116 [ main::render#1 ] ] with [ zp ZP_BYTE:120 [ main::render#2 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_WORD:9 [ render_bcd::offset#6 render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 ] ] with [ zp ZP_WORD:129 [ render_bcd::screen_pos#1 ] ] - score: 1 -Coalescing zero page register [ zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] ] with [ zp ZP_BYTE:86 [ play_init::idx#2 play_init::idx#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 play_init::idx#2 play_init::idx#1 ] ] with [ zp ZP_BYTE:88 [ sprites_init::xpos#2 sprites_init::xpos#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 ] ] with [ zp ZP_BYTE:94 [ render_screen_original::y#6 render_screen_original::y#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] ] with [ zp ZP_BYTE:64 [ play_remove_lines::y#8 play_remove_lines::y#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 ] ] with [ zp ZP_BYTE:71 [ play_lock_current::l#6 play_lock_current::l#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 ] ] with [ zp ZP_BYTE:158 [ play_spawn_current::$3 ] ] -Coalescing zero page register [ zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_spawn_current::$3 ] ] with [ zp ZP_BYTE:163 [ play_update_score::lines_before#0 ] ] +Coalescing zero page register with common assignment [ zp ZP_WORD:34 [ current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 ] ] with [ zp ZP_WORD:143 [ play_collision::piece_gfx#0 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_BYTE:47 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] ] with [ zp ZP_BYTE:72 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_BYTE:106 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] ] with [ zp ZP_BYTE:109 [ irq_raster_next#0 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_BYTE:110 [ irq_sprite_ypos#0 ] ] with [ zp ZP_BYTE:209 [ irq_sprite_ypos#2 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_BYTE:111 [ irq_sprite_ptr#0 ] ] with [ zp ZP_BYTE:210 [ irq_sprite_ptr#2 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_BYTE:112 [ irq_cnt#0 ] ] with [ zp ZP_BYTE:208 [ irq_cnt#1 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_BYTE:118 [ main::render#1 ] ] with [ zp ZP_BYTE:122 [ main::render#2 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_WORD:9 [ render_bcd::offset#6 render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 ] ] with [ zp ZP_WORD:131 [ render_bcd::screen_pos#1 ] ] - score: 1 +Coalescing zero page register [ zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] ] with [ zp ZP_BYTE:88 [ play_init::idx#2 play_init::idx#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 play_init::idx#2 play_init::idx#1 ] ] with [ zp ZP_BYTE:90 [ sprites_init::xpos#2 sprites_init::xpos#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 ] ] with [ zp ZP_BYTE:96 [ render_screen_original::y#6 render_screen_original::y#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] ] with [ zp ZP_BYTE:66 [ play_remove_lines::y#8 play_remove_lines::y#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 ] ] with [ zp ZP_BYTE:73 [ play_lock_current::l#6 play_lock_current::l#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 ] ] with [ zp ZP_BYTE:160 [ play_spawn_current::$3 ] ] +Coalescing zero page register [ zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_spawn_current::$3 ] ] with [ zp ZP_BYTE:165 [ 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#53 current_piece_gfx#102 current_piece_gfx#103 ] ] 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#53 current_piece_gfx#102 current_piece_gfx#103 ] ] 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#53 current_piece_gfx#102 current_piece_gfx#103 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] ] with [ zp ZP_WORD:34 [ current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 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#53 current_piece_gfx#102 current_piece_gfx#103 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 play_collision::piece_gfx#0 ] ] with [ zp ZP_WORD:84 [ 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#53 current_piece_gfx#102 current_piece_gfx#103 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 ] ] with [ zp ZP_WORD:90 [ 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#53 current_piece_gfx#102 current_piece_gfx#103 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 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:95 [ 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#53 current_piece_gfx#102 current_piece_gfx#103 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 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:173 [ 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:92 [ 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:97 [ 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:132 [ render_current::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_current::screen_line#0 ] ] with [ zp ZP_WORD:143 [ play_collision::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 current_piece_gfx#53 current_piece_gfx#102 current_piece_gfx#103 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 play_collision::piece_gfx#0 ] ] with [ zp ZP_WORD:86 [ 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#53 current_piece_gfx#102 current_piece_gfx#103 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 ] ] with [ zp ZP_WORD:92 [ 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#53 current_piece_gfx#102 current_piece_gfx#103 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 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:97 [ 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#53 current_piece_gfx#102 current_piece_gfx#103 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 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:175 [ 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:94 [ 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:99 [ 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:134 [ 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:145 [ play_collision::playfield_line#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:33 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#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_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] ] with [ zp ZP_BYTE:65 [ 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_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] ] with [ zp ZP_BYTE:72 [ 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_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#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:75 [ 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_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#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:77 [ keyboard_event_scan::row#2 keyboard_event_scan::row#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_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] ] with [ zp ZP_BYTE:67 [ 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_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] ] with [ zp ZP_BYTE:74 [ 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_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#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:77 [ 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_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#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:79 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] ] Coalescing zero page register [ zp ZP_BYTE:17 [ current_xpos#47 current_xpos#112 current_xpos#113 ] ] 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#47 current_xpos#112 current_xpos#113 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] ] with [ zp ZP_BYTE:38 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] ] -Coalescing zero page register [ zp ZP_BYTE:17 [ current_xpos#47 current_xpos#112 current_xpos#113 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] ] with [ zp ZP_BYTE:67 [ play_remove_lines::x#2 play_remove_lines::x#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:17 [ current_xpos#47 current_xpos#112 current_xpos#113 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::x#2 play_remove_lines::x#1 ] ] with [ zp ZP_BYTE:73 [ 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#47 current_xpos#112 current_xpos#113 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::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:80 [ 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#47 current_xpos#112 current_xpos#113 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::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:177 [ keyboard_event_pressed::row_bits#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:21 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] ] with [ zp ZP_BYTE:31 [ render_playfield::c#2 render_playfield::c#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:21 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 render_playfield::c#2 render_playfield::c#1 ] ] with [ zp ZP_BYTE:39 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:21 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] ] with [ zp ZP_BYTE:68 [ play_remove_lines::full#4 play_remove_lines::full#2 ] ] -Coalescing zero page register [ zp ZP_BYTE:21 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::full#4 play_remove_lines::full#2 ] ] with [ zp ZP_BYTE:175 [ play_lock_current::i#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:21 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::i#1 ] ] with [ zp ZP_BYTE:182 [ keyboard_event_scan::row_scan#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:22 [ render_current::l#4 render_current::l#1 ] ] with [ zp ZP_BYTE:40 [ play_collision::l#6 play_collision::l#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:22 [ render_current::l#4 render_current::l#1 play_collision::l#6 play_collision::l#1 ] ] with [ zp ZP_BYTE:172 [ play_remove_lines::c#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:23 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] ] with [ zp ZP_BYTE:41 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] ] -Coalescing zero page register [ zp ZP_BYTE:24 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] ] with [ zp ZP_BYTE:42 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:25 [ render_current::c#2 render_current::c#1 ] ] with [ zp ZP_BYTE:112 [ main::key_event#0 ] ] -Coalescing zero page register [ zp ZP_WORD:48 [ lines_bcd#20 lines_bcd#13 lines_bcd#15 lines_bcd#11 lines_bcd#23 ] ] with [ zp ZP_WORD:99 [ render_screen_original::screen#7 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#9 render_screen_original::screen#10 render_screen_original::screen#2 render_screen_original::screen#3 ] ] -Coalescing zero page register [ zp ZP_WORD:55 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 ] ] with [ zp ZP_WORD:101 [ 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 ] ] -Coalescing zero page register [ zp ZP_BYTE:106 [ render_screen_showing#0 ] ] with [ zp ZP_BYTE:197 [ render_screen_showing#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:108 [ irq_sprite_ypos#0 irq_sprite_ypos#2 ] ] with [ zp ZP_BYTE:211 [ irq_sprite_ypos#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:109 [ irq_sprite_ptr#0 irq_sprite_ptr#2 ] ] with [ zp ZP_BYTE:212 [ irq_sprite_ptr#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:110 [ irq_cnt#0 irq_cnt#1 ] ] with [ zp ZP_BYTE:210 [ irq_cnt#14 ] ] -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_current::screen_line#0 play_collision::playfield_line#0 ] +Coalescing zero page register [ zp ZP_BYTE:17 [ current_xpos#47 current_xpos#112 current_xpos#113 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] ] with [ zp ZP_BYTE:69 [ play_remove_lines::x#2 play_remove_lines::x#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:17 [ current_xpos#47 current_xpos#112 current_xpos#113 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::x#2 play_remove_lines::x#1 ] ] with [ zp ZP_BYTE:75 [ 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#47 current_xpos#112 current_xpos#113 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::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:82 [ 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#47 current_xpos#112 current_xpos#113 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::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:179 [ 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:39 [ 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::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] ] with [ zp ZP_BYTE:70 [ play_remove_lines::full#4 play_remove_lines::full#2 ] ] +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::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::full#4 play_remove_lines::full#2 ] ] with [ zp ZP_BYTE:177 [ play_lock_current::i#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::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:184 [ 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:40 [ play_collision::l#6 play_collision::l#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:22 [ render_moving::l#4 render_moving::l#1 play_collision::l#6 play_collision::l#1 ] ] with [ zp ZP_BYTE:174 [ 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::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] ] +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::col#2 play_collision::col#9 play_collision::col#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:25 [ render_moving::c#2 render_moving::c#1 ] ] with [ zp ZP_BYTE:114 [ main::key_event#0 ] ] +Coalescing zero page register [ zp ZP_WORD:48 [ lines_bcd#20 lines_bcd#13 lines_bcd#15 lines_bcd#11 lines_bcd#23 ] ] with [ zp ZP_WORD:101 [ render_screen_original::screen#7 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#9 render_screen_original::screen#10 render_screen_original::screen#2 render_screen_original::screen#3 ] ] +Coalescing zero page register [ zp ZP_WORD:57 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 ] ] with [ zp ZP_WORD:103 [ 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 ] ] +Coalescing zero page register [ zp ZP_BYTE:108 [ render_screen_showing#0 ] ] with [ zp ZP_BYTE:199 [ render_screen_showing#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:110 [ irq_sprite_ypos#0 irq_sprite_ypos#2 ] ] with [ zp ZP_BYTE:213 [ irq_sprite_ypos#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:111 [ irq_sprite_ptr#0 irq_sprite_ptr#2 ] ] with [ zp ZP_BYTE:214 [ irq_sprite_ptr#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:112 [ irq_cnt#0 irq_cnt#1 ] ] with [ zp ZP_BYTE:212 [ irq_cnt#14 ] ] +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#64 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::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#47 current_xpos#112 current_xpos#113 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::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_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::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_current::l#4 render_current::l#1 play_collision::l#6 play_collision::l#1 play_remove_lines::c#0 ] -Allocated (was zp ZP_BYTE:23) zp ZP_BYTE:13 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] -Allocated (was zp ZP_BYTE:24) zp ZP_BYTE:14 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 play_collision::col#2 play_collision::col#9 play_collision::col#1 ] -Allocated (was zp ZP_BYTE:25) zp ZP_BYTE:15 [ render_current::c#2 render_current::c#1 main::key_event#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::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::l#6 play_collision::l#1 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::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] +Allocated (was zp ZP_BYTE:24) zp ZP_BYTE:14 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 play_collision::col#2 play_collision::col#9 play_collision::col#1 ] +Allocated (was zp ZP_BYTE:25) zp ZP_BYTE:15 [ render_moving::c#2 render_moving::c#1 main::key_event#0 ] Allocated (was zp ZP_BYTE:47) zp ZP_BYTE:16 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] Allocated (was zp ZP_WORD:48) zp ZP_WORD:17 [ lines_bcd#20 lines_bcd#13 lines_bcd#15 lines_bcd#11 lines_bcd#23 render_screen_original::screen#7 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#9 render_screen_original::screen#10 render_screen_original::screen#2 render_screen_original::screen#3 ] Allocated (was zp ZP_DWORD:50) zp ZP_DWORD:19 [ score_bcd#20 score_bcd#12 score_bcd#14 score_bcd#10 score_bcd#23 ] -Allocated (was zp ZP_BYTE:54) zp ZP_BYTE:23 [ level_bcd#21 level_bcd#14 level_bcd#16 level_bcd#11 level_bcd#13 level_bcd#4 ] -Allocated (was zp ZP_WORD:55) zp ZP_WORD:24 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 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:57) zp ZP_BYTE:26 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -Allocated (was zp ZP_WORD:58) zp ZP_WORD:27 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 ] -Allocated (was zp ZP_BYTE:60) zp ZP_BYTE:29 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] -Allocated (was zp ZP_BYTE:61) zp ZP_BYTE:30 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] -Allocated (was zp ZP_BYTE:81) zp ZP_BYTE:31 [ 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:104) zp ZP_BYTE:32 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 irq_raster_next#0 ] -Allocated (was zp ZP_BYTE:106) zp ZP_BYTE:33 [ render_screen_showing#0 render_screen_showing#1 ] -Allocated (was zp ZP_BYTE:108) zp ZP_BYTE:34 [ irq_sprite_ypos#0 irq_sprite_ypos#2 irq_sprite_ypos#1 ] -Allocated (was zp ZP_BYTE:109) zp ZP_BYTE:35 [ irq_sprite_ptr#0 irq_sprite_ptr#2 irq_sprite_ptr#1 ] -Allocated (was zp ZP_BYTE:110) zp ZP_BYTE:36 [ irq_cnt#0 irq_cnt#1 irq_cnt#14 ] -Allocated (was zp ZP_BYTE:116) zp ZP_BYTE:37 [ main::render#1 main::render#2 ] -Allocated (was zp ZP_BYTE:145) zp ZP_BYTE:38 [ play_collision::i#1 ] -Allocated (was zp ZP_DWORD:165) zp ZP_DWORD:39 [ play_update_score::add_bcd#0 ] +Allocated (was zp ZP_BYTE:54) zp ZP_BYTE:23 [ level#24 level#14 level#19 level#12 level#16 ] +Allocated (was zp ZP_BYTE:55) zp ZP_BYTE:24 [ current_movedown_slow#30 current_movedown_slow#19 current_movedown_slow#12 current_movedown_slow#1 current_movedown_slow#17 current_movedown_slow#20 current_movedown_slow#8 ] +Allocated (was zp ZP_BYTE:56) zp ZP_BYTE:25 [ level_bcd#25 level_bcd#15 level_bcd#20 level_bcd#13 level_bcd#18 level_bcd#17 level_bcd#6 ] +Allocated (was zp ZP_WORD:57) zp ZP_WORD:26 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 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:59) zp ZP_BYTE:28 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] +Allocated (was zp ZP_WORD:60) zp ZP_WORD:29 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 ] +Allocated (was zp ZP_BYTE:62) zp ZP_BYTE:31 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] +Allocated (was zp ZP_BYTE:63) zp ZP_BYTE:32 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] +Allocated (was zp ZP_BYTE:83) zp ZP_BYTE:33 [ 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:106) zp ZP_BYTE:34 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 irq_raster_next#0 ] +Allocated (was zp ZP_BYTE:108) zp ZP_BYTE:35 [ render_screen_showing#0 render_screen_showing#1 ] +Allocated (was zp ZP_BYTE:110) zp ZP_BYTE:36 [ irq_sprite_ypos#0 irq_sprite_ypos#2 irq_sprite_ypos#1 ] +Allocated (was zp ZP_BYTE:111) zp ZP_BYTE:37 [ irq_sprite_ptr#0 irq_sprite_ptr#2 irq_sprite_ptr#1 ] +Allocated (was zp ZP_BYTE:112) zp ZP_BYTE:38 [ irq_cnt#0 irq_cnt#1 irq_cnt#14 ] +Allocated (was zp ZP_BYTE:118) zp ZP_BYTE:39 [ main::render#1 main::render#2 ] +Allocated (was zp ZP_BYTE:147) zp ZP_BYTE:40 [ play_collision::i#1 ] +Allocated (was zp ZP_DWORD:167) zp ZP_DWORD:41 [ play_update_score::add_bcd#0 ] Interrupt procedure sprites_irq clobbers AXCNZV -Removing interrupt register storage sty regy+1 in SEG1039 entry interrupt(HARDWARE_CLOBBER) -Removing interrupt register storage regy: in SEG1079 [515] return - exit interrupt(HARDWARE_CLOBBER) -Removing interrupt register storage ldy #00 in SEG1079 [515] return - exit interrupt(HARDWARE_CLOBBER) +Removing interrupt register storage sty regy+1 in SEG1072 entry interrupt(HARDWARE_CLOBBER) +Removing interrupt register storage regy: in SEG1112 [524] return - exit interrupt(HARDWARE_CLOBBER) +Removing interrupt register storage ldy #00 in SEG1112 [524] return - exit interrupt(HARDWARE_CLOBBER) ASSEMBLER BEFORE OPTIMIZATION //SEG0 Basic Upstart @@ -14837,8 +15429,7 @@ ASSEMBLER BEFORE OPTIMIZATION .const PLAYFIELD_LINES = $16 .const PLAYFIELD_COLS = $a .const IRQ_RASTER_FIRST = $31 - .const current_movedown_slow = $32 - .const current_movedown_fast = 5 + .const current_movedown_fast = 2 .const COLLISION_NONE = 0 .const COLLISION_PLAYFIELD = 1 .const COLLISION_BOTTOM = 2 @@ -14847,24 +15438,26 @@ ASSEMBLER BEFORE OPTIMIZATION .label PLAYFIELD_SPRITE_PTRS_1 = PLAYFIELD_SCREEN_1+SPRITE_PTRS .label PLAYFIELD_SPRITE_PTRS_2 = PLAYFIELD_SCREEN_2+SPRITE_PTRS .const toSpritePtr1_return = PLAYFIELD_SPRITES>>6 - .label keyboard_events_size = $1f - .label render_screen_showing = $21 - .label irq_raster_next = $20 - .label irq_sprite_ypos = $22 - .label irq_sprite_ptr = $23 - .label irq_cnt = $24 + .label keyboard_events_size = $21 + .label render_screen_showing = $23 + .label irq_raster_next = $22 + .label irq_sprite_ypos = $24 + .label irq_sprite_ptr = $25 + .label irq_cnt = $26 + .label current_movedown_slow = $18 .label current_movedown_counter = 4 .label current_ypos = $10 - .label current_piece_gfx = $1b - .label current_xpos = $1d - .label current_piece_char = $1e - .label current_orientation = $1a - .label level_bcd = $17 + .label current_piece_gfx = $1d + .label current_xpos = $1f + .label current_piece_char = $20 + .label current_orientation = $1c + .label level_bcd = $19 .label render_screen_render = 3 .label render_screen_show = 2 .label lines_bcd = $11 .label score_bcd = $13 - .label current_piece = $18 + .label level = $17 + .label current_piece = $1a .label current_piece_12 = 5 .label render_screen_render_30 = 9 .label current_xpos_47 = $a @@ -14907,33 +15500,33 @@ toSpritePtr1_from_b23: jmp toSpritePtr1 //SEG14 toSpritePtr1 toSpritePtr1: - jmp b36 -//SEG15 @36 -b36: + jmp b37 +//SEG15 @37 +b37: //SEG16 [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 -- vbuz1=vbuc1 lda #toSpritePtr1_return sta irq_sprite_ptr //SEG17 [10] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 lda #0 sta irq_cnt -//SEG18 [11] phi from @36 to @35 [phi:@36->@35] -b35_from_b36: - jmp b35 -//SEG19 @35 -b35: +//SEG18 [11] phi from @37 to @36 [phi:@37->@36] +b36_from_b37: + jmp b36 +//SEG19 @36 +b36: //SEG20 [12] call main -//SEG21 [14] phi from @35 to main [phi:@35->main] -main_from_b35: +//SEG21 [14] phi from @36 to main [phi:@36->main] +main_from_b36: jsr main -//SEG22 [13] phi from @35 to @end [phi:@35->@end] -bend_from_b35: +//SEG22 [13] phi from @36 to @end [phi:@36->@end] +bend_from_b36: jmp bend //SEG23 @end bend: //SEG24 main main: { .label key_event = $f - .label render = $25 + .label render = $27 //SEG25 [15] call sid_rnd_init jsr sid_rnd_init jmp b15 @@ -14942,7 +15535,7 @@ main: { //SEG27 asm { sei } sei //SEG28 [17] call render_init - //SEG29 [433] phi from main::@15 to render_init [phi:main::@15->render_init] + //SEG29 [442] phi from main::@15 to render_init [phi:main::@15->render_init] render_init_from_b15: jsr render_init //SEG30 [18] phi from main::@15 to main::@16 [phi:main::@15->main::@16] @@ -14965,7 +15558,7 @@ main: { //SEG37 main::@18 b18: //SEG38 [23] call play_init - //SEG39 [398] phi from main::@18 to play_init [phi:main::@18->play_init] + //SEG39 [406] phi from main::@18 to play_init [phi:main::@18->play_init] play_init_from_b18: jsr play_init //SEG40 [24] phi from main::@18 to main::@19 [phi:main::@18->main::@19] @@ -15003,17 +15596,17 @@ main: { sta current_piece_gfx_102+1 //SEG53 [31] (byte~) current_piece_char#90 ← (byte) current_piece_char#12 -- vbuxx=vbuz1 ldx current_piece_char - //SEG54 [32] call render_current - //SEG55 [110] phi from main::@21 to render_current [phi:main::@21->render_current] - render_current_from_b21: - //SEG56 [110] phi (byte) current_piece_char#64 = (byte~) current_piece_char#90 [phi:main::@21->render_current#0] -- register_copy - //SEG57 [110] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#102 [phi:main::@21->render_current#1] -- register_copy - //SEG58 [110] phi (byte) current_xpos#47 = (byte~) current_xpos#112 [phi:main::@21->render_current#2] -- register_copy - //SEG59 [110] phi (byte) render_screen_render#30 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->render_current#3] -- vbuz1=vbuc1 + //SEG54 [32] call render_moving + //SEG55 [110] phi from main::@21 to render_moving [phi:main::@21->render_moving] + render_moving_from_b21: + //SEG56 [110] phi (byte) current_piece_char#64 = (byte~) current_piece_char#90 [phi:main::@21->render_moving#0] -- register_copy + //SEG57 [110] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#102 [phi:main::@21->render_moving#1] -- register_copy + //SEG58 [110] phi (byte) current_xpos#47 = (byte~) current_xpos#112 [phi:main::@21->render_moving#2] -- register_copy + //SEG59 [110] phi (byte) render_screen_render#30 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->render_moving#3] -- vbuz1=vbuc1 lda #$40 sta render_screen_render_30 - //SEG60 [110] phi (byte) current_ypos#9 = (byte~) current_ypos#86 [phi:main::@21->render_current#4] -- register_copy - jsr render_current + //SEG60 [110] phi (byte) current_ypos#9 = (byte~) current_ypos#86 [phi:main::@21->render_moving#4] -- register_copy + jsr render_moving //SEG61 [33] (byte*~) current_piece#73 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy play_spawn_current._3 lda PIECES,y @@ -15022,392 +15615,400 @@ main: { sta current_piece+1 //SEG62 [34] phi from main::@21 to main::@1 [phi:main::@21->main::@1] b1_from_b21: - //SEG63 [34] phi (byte) level_bcd#16 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:main::@21->main::@1#0] -- vbuz1=vbuc1 - lda #1 + //SEG63 [34] phi (byte) level_bcd#20 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#0] -- vbuz1=vbuc1 + lda #0 sta level_bcd - //SEG64 [34] phi (dword) score_bcd#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#1] -- vduz1=vbuc1 + //SEG64 [34] phi (byte) level#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#1] -- vbuz1=vbuc1 + lda #0 + sta level + //SEG65 [34] phi (dword) score_bcd#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#2] -- vduz1=vbuc1 lda #0 sta score_bcd lda #0 sta score_bcd+1 sta score_bcd+2 sta score_bcd+3 - //SEG65 [34] phi (word) lines_bcd#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#2] -- vwuz1=vbuc1 + //SEG66 [34] phi (word) lines_bcd#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#3] -- vwuz1=vbuc1 lda #<0 sta lines_bcd lda #>0 sta lines_bcd+1 - //SEG66 [34] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#3] -- vbuz1=vbuc1 + //SEG67 [34] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#4] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG67 [34] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#4] -- vbuz1=vbuc1 + //SEG68 [34] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#5] -- vbuz1=vbuc1 lda #0 sta keyboard_events_size - //SEG68 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#12 [phi:main::@21->main::@1#5] -- register_copy - //SEG69 [34] phi (byte) current_ypos#21 = (byte) current_ypos#18 [phi:main::@21->main::@1#6] -- register_copy - //SEG70 [34] phi (byte) current_xpos#10 = (byte) current_xpos#23 [phi:main::@21->main::@1#7] -- register_copy - //SEG71 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#16 [phi:main::@21->main::@1#8] -- register_copy - //SEG72 [34] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#9] -- vbuz1=vbuc1 + //SEG69 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#12 [phi:main::@21->main::@1#6] -- register_copy + //SEG70 [34] phi (byte) current_ypos#21 = (byte) current_ypos#18 [phi:main::@21->main::@1#7] -- register_copy + //SEG71 [34] phi (byte) current_xpos#10 = (byte) current_xpos#23 [phi:main::@21->main::@1#8] -- register_copy + //SEG72 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#16 [phi:main::@21->main::@1#9] -- register_copy + //SEG73 [34] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#10] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG73 [34] phi (byte*) current_piece#16 = (byte*~) current_piece#73 [phi:main::@21->main::@1#10] -- register_copy - //SEG74 [34] phi (byte) render_screen_render#17 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->main::@1#11] -- vbuz1=vbuc1 + //SEG74 [34] phi (byte*) current_piece#16 = (byte*~) current_piece#73 [phi:main::@21->main::@1#11] -- register_copy + //SEG75 [34] phi (byte) current_movedown_slow#12 = (byte) current_movedown_slow#1 [phi:main::@21->main::@1#12] -- register_copy + //SEG76 [34] phi (byte) render_screen_render#17 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->main::@1#13] -- vbuz1=vbuc1 lda #$40 sta render_screen_render - //SEG75 [34] phi (byte) render_screen_show#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#12] -- vbuz1=vbuc1 + //SEG77 [34] phi (byte) render_screen_show#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#14] -- vbuz1=vbuc1 lda #0 sta render_screen_show jmp b1 - //SEG76 [34] phi from main::@28 to main::@1 [phi:main::@28->main::@1] + //SEG78 [34] phi from main::@28 to main::@1 [phi:main::@28->main::@1] b1_from_b28: - //SEG77 [34] phi (byte) level_bcd#16 = (byte) level_bcd#11 [phi:main::@28->main::@1#0] -- register_copy - //SEG78 [34] phi (dword) score_bcd#14 = (dword) score_bcd#10 [phi:main::@28->main::@1#1] -- register_copy - //SEG79 [34] phi (word) lines_bcd#15 = (word) lines_bcd#11 [phi:main::@28->main::@1#2] -- register_copy - //SEG80 [34] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@28->main::@1#3] -- register_copy - //SEG81 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@28->main::@1#4] -- register_copy - //SEG82 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@28->main::@1#5] -- register_copy - //SEG83 [34] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@28->main::@1#6] -- register_copy - //SEG84 [34] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@28->main::@1#7] -- register_copy - //SEG85 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@28->main::@1#8] -- register_copy - //SEG86 [34] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@28->main::@1#9] -- register_copy - //SEG87 [34] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@28->main::@1#10] -- register_copy + //SEG79 [34] phi (byte) level_bcd#20 = (byte) level_bcd#13 [phi:main::@28->main::@1#0] -- register_copy + //SEG80 [34] phi (byte) level#19 = (byte) level#12 [phi:main::@28->main::@1#1] -- register_copy + //SEG81 [34] phi (dword) score_bcd#14 = (dword) score_bcd#10 [phi:main::@28->main::@1#2] -- register_copy + //SEG82 [34] phi (word) lines_bcd#15 = (word) lines_bcd#11 [phi:main::@28->main::@1#3] -- register_copy + //SEG83 [34] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@28->main::@1#4] -- register_copy + //SEG84 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@28->main::@1#5] -- register_copy + //SEG85 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@28->main::@1#6] -- register_copy + //SEG86 [34] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@28->main::@1#7] -- register_copy + //SEG87 [34] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@28->main::@1#8] -- register_copy + //SEG88 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@28->main::@1#9] -- register_copy + //SEG89 [34] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@28->main::@1#10] -- register_copy + //SEG90 [34] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@28->main::@1#11] -- register_copy + //SEG91 [34] phi (byte) current_movedown_slow#12 = (byte) current_movedown_slow#17 [phi:main::@28->main::@1#12] -- register_copy jmp b1 - //SEG88 main::@1 + //SEG92 main::@1 b1: jmp b4 - //SEG89 main::@4 + //SEG93 main::@4 b4: - //SEG90 [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG94 [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 - //SEG91 [36] phi from main::@4 to main::@6 [phi:main::@4->main::@6] + //SEG95 [36] phi from main::@4 to main::@6 [phi:main::@4->main::@6] b6_from_b4: jmp b6 - //SEG92 main::@6 + //SEG96 main::@6 b6: - //SEG93 [37] call render_show + //SEG97 [37] call render_show jsr render_show - //SEG94 [38] phi from main::@6 to main::@23 [phi:main::@6->main::@23] + //SEG98 [38] phi from main::@6 to main::@23 [phi:main::@6->main::@23] b23_from_b6: jmp b23 - //SEG95 main::@23 + //SEG99 main::@23 b23: - //SEG96 [39] call keyboard_event_scan - //SEG97 [335] phi from main::@23 to keyboard_event_scan [phi:main::@23->keyboard_event_scan] + //SEG100 [39] call keyboard_event_scan + //SEG101 [343] phi from main::@23 to keyboard_event_scan [phi:main::@23->keyboard_event_scan] keyboard_event_scan_from_b23: jsr keyboard_event_scan - //SEG98 [40] phi from main::@23 to main::@24 [phi:main::@23->main::@24] + //SEG102 [40] phi from main::@23 to main::@24 [phi:main::@23->main::@24] b24_from_b23: jmp b24 - //SEG99 main::@24 + //SEG103 main::@24 b24: - //SEG100 [41] call keyboard_event_get + //SEG104 [41] call keyboard_event_get jsr keyboard_event_get - //SEG101 [42] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + //SEG105 [42] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 // (byte) keyboard_event_get::return#3 = (byte) keyboard_event_get::return#2 // register copy reg byte a jmp b25 - //SEG102 main::@25 + //SEG106 main::@25 b25: - //SEG103 [43] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa + //SEG107 [43] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa sta key_event - //SEG104 [44] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG108 [44] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG105 [45] call play_move_down + //SEG109 [45] call play_move_down jsr play_move_down - //SEG106 [46] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuaa=vbuxx + //SEG110 [46] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuaa=vbuxx txa jmp b26 - //SEG107 main::@26 + //SEG111 main::@26 b26: - //SEG108 [47] (byte~) main::$12 ← (byte) play_move_down::return#3 + //SEG112 [47] (byte~) main::$12 ← (byte) play_move_down::return#3 // (byte~) main::$12 = (byte) play_move_down::return#3 // register copy reg byte a - //SEG109 [48] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 -- vbuz1=vbuc1_plus_vbuaa + //SEG113 [48] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 -- vbuz1=vbuc1_plus_vbuaa clc adc #0 sta render - //SEG110 [49] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG114 [49] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG111 [50] call play_move_leftright + //SEG115 [50] call play_move_leftright jsr play_move_leftright - //SEG112 [51] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 + //SEG116 [51] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 // (byte) play_move_leftright::return#4 = (byte) play_move_leftright::return#1 // register copy reg byte a jmp b27 - //SEG113 main::@27 + //SEG117 main::@27 b27: - //SEG114 [52] (byte~) main::$13 ← (byte) play_move_leftright::return#4 + //SEG118 [52] (byte~) main::$13 ← (byte) play_move_leftright::return#4 // (byte~) main::$13 = (byte) play_move_leftright::return#4 // register copy reg byte a - //SEG115 [53] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 -- vbuz1=vbuz1_plus_vbuaa + //SEG119 [53] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 -- vbuz1=vbuz1_plus_vbuaa clc adc render sta render - //SEG116 [54] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG120 [54] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG117 [55] call play_move_rotate + //SEG121 [55] call play_move_rotate jsr play_move_rotate - //SEG118 [56] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 + //SEG122 [56] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 // (byte) play_move_rotate::return#4 = (byte) play_move_rotate::return#1 // register copy reg byte a jmp b28 - //SEG119 main::@28 + //SEG123 main::@28 b28: - //SEG120 [57] (byte~) main::$14 ← (byte) play_move_rotate::return#4 + //SEG124 [57] (byte~) main::$14 ← (byte) play_move_rotate::return#4 // (byte~) main::$14 = (byte) play_move_rotate::return#4 // register copy reg byte a - //SEG121 [58] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 -- vbuaa=vbuz1_plus_vbuaa + //SEG125 [58] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 -- vbuaa=vbuz1_plus_vbuaa clc adc render - //SEG122 [59] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 -- vbuaa_eq_0_then_la1 + //SEG126 [59] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 -- vbuaa_eq_0_then_la1 cmp #0 beq b1_from_b28 jmp b13 - //SEG123 main::@13 + //SEG127 main::@13 b13: - //SEG124 [60] (byte~) render_screen_render#65 ← (byte) render_screen_render#17 -- vbuxx=vbuz1 + //SEG128 [60] (byte~) render_screen_render#65 ← (byte) render_screen_render#17 -- vbuxx=vbuz1 ldx render_screen_render - //SEG125 [61] call render_playfield - //SEG126 [133] phi from main::@13 to render_playfield [phi:main::@13->render_playfield] + //SEG129 [61] call render_playfield + //SEG130 [133] phi from main::@13 to render_playfield [phi:main::@13->render_playfield] render_playfield_from_b13: - //SEG127 [133] phi (byte) render_screen_render#21 = (byte~) render_screen_render#65 [phi:main::@13->render_playfield#0] -- register_copy + //SEG131 [133] phi (byte) render_screen_render#21 = (byte~) render_screen_render#65 [phi:main::@13->render_playfield#0] -- register_copy jsr render_playfield jmp b29 - //SEG128 main::@29 + //SEG132 main::@29 b29: - //SEG129 [62] (byte~) current_ypos#87 ← (byte) current_ypos#13 -- vbuyy=vbuz1 + //SEG133 [62] (byte~) current_ypos#87 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos - //SEG130 [63] (byte~) render_screen_render#64 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 + //SEG134 [63] (byte~) render_screen_render#64 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 lda render_screen_render sta render_screen_render_64 - //SEG131 [64] (byte~) current_xpos#113 ← (byte) current_xpos#19 -- vbuz1=vbuz2 + //SEG135 [64] (byte~) current_xpos#113 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda current_xpos sta current_xpos_113 - //SEG132 [65] (byte*~) current_piece_gfx#103 ← (byte*) current_piece_gfx#14 -- pbuz1=pbuz2 + //SEG136 [65] (byte*~) current_piece_gfx#103 ← (byte*) current_piece_gfx#14 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_103 lda current_piece_gfx+1 sta current_piece_gfx_103+1 - //SEG133 [66] (byte~) current_piece_char#91 ← (byte) current_piece_char#1 -- vbuxx=vbuz1 + //SEG137 [66] (byte~) current_piece_char#91 ← (byte) current_piece_char#1 -- vbuxx=vbuz1 ldx current_piece_char - //SEG134 [67] call render_current - //SEG135 [110] phi from main::@29 to render_current [phi:main::@29->render_current] - render_current_from_b29: - //SEG136 [110] phi (byte) current_piece_char#64 = (byte~) current_piece_char#91 [phi:main::@29->render_current#0] -- register_copy - //SEG137 [110] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#103 [phi:main::@29->render_current#1] -- register_copy - //SEG138 [110] phi (byte) current_xpos#47 = (byte~) current_xpos#113 [phi:main::@29->render_current#2] -- register_copy - //SEG139 [110] phi (byte) render_screen_render#30 = (byte~) render_screen_render#64 [phi:main::@29->render_current#3] -- register_copy - //SEG140 [110] phi (byte) current_ypos#9 = (byte~) current_ypos#87 [phi:main::@29->render_current#4] -- register_copy - jsr render_current - //SEG141 [68] phi from main::@29 to main::@30 [phi:main::@29->main::@30] + //SEG138 [67] call render_moving + //SEG139 [110] phi from main::@29 to render_moving [phi:main::@29->render_moving] + render_moving_from_b29: + //SEG140 [110] phi (byte) current_piece_char#64 = (byte~) current_piece_char#91 [phi:main::@29->render_moving#0] -- register_copy + //SEG141 [110] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#103 [phi:main::@29->render_moving#1] -- register_copy + //SEG142 [110] phi (byte) current_xpos#47 = (byte~) current_xpos#113 [phi:main::@29->render_moving#2] -- register_copy + //SEG143 [110] phi (byte) render_screen_render#30 = (byte~) render_screen_render#64 [phi:main::@29->render_moving#3] -- register_copy + //SEG144 [110] phi (byte) current_ypos#9 = (byte~) current_ypos#87 [phi:main::@29->render_moving#4] -- register_copy + jsr render_moving + //SEG145 [68] phi from main::@29 to main::@30 [phi:main::@29->main::@30] b30_from_b29: jmp b30 - //SEG142 main::@30 + //SEG146 main::@30 b30: - //SEG143 [69] call render_score + //SEG147 [69] call render_score jsr render_score - //SEG144 [70] phi from main::@30 to main::@31 [phi:main::@30->main::@31] + //SEG148 [70] phi from main::@30 to main::@31 [phi:main::@30->main::@31] b31_from_b30: jmp b31 - //SEG145 main::@31 + //SEG149 main::@31 b31: - //SEG146 [71] call render_screen_swap + //SEG150 [71] call render_screen_swap jsr render_screen_swap - //SEG147 [34] phi from main::@31 to main::@1 [phi:main::@31->main::@1] + //SEG151 [34] phi from main::@31 to main::@1 [phi:main::@31->main::@1] b1_from_b31: - //SEG148 [34] phi (byte) level_bcd#16 = (byte) level_bcd#11 [phi:main::@31->main::@1#0] -- register_copy - //SEG149 [34] phi (dword) score_bcd#14 = (dword) score_bcd#10 [phi:main::@31->main::@1#1] -- register_copy - //SEG150 [34] phi (word) lines_bcd#15 = (word) lines_bcd#11 [phi:main::@31->main::@1#2] -- register_copy - //SEG151 [34] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@31->main::@1#3] -- register_copy - //SEG152 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@31->main::@1#4] -- register_copy - //SEG153 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@31->main::@1#5] -- register_copy - //SEG154 [34] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@31->main::@1#6] -- register_copy - //SEG155 [34] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@31->main::@1#7] -- register_copy - //SEG156 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@31->main::@1#8] -- register_copy - //SEG157 [34] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@31->main::@1#9] -- register_copy - //SEG158 [34] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@31->main::@1#10] -- register_copy - //SEG159 [34] phi (byte) render_screen_render#17 = (byte) render_screen_render#11 [phi:main::@31->main::@1#11] -- register_copy - //SEG160 [34] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@31->main::@1#12] -- register_copy + //SEG152 [34] phi (byte) level_bcd#20 = (byte) level_bcd#13 [phi:main::@31->main::@1#0] -- register_copy + //SEG153 [34] phi (byte) level#19 = (byte) level#12 [phi:main::@31->main::@1#1] -- register_copy + //SEG154 [34] phi (dword) score_bcd#14 = (dword) score_bcd#10 [phi:main::@31->main::@1#2] -- register_copy + //SEG155 [34] phi (word) lines_bcd#15 = (word) lines_bcd#11 [phi:main::@31->main::@1#3] -- register_copy + //SEG156 [34] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@31->main::@1#4] -- register_copy + //SEG157 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@31->main::@1#5] -- register_copy + //SEG158 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@31->main::@1#6] -- register_copy + //SEG159 [34] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@31->main::@1#7] -- register_copy + //SEG160 [34] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@31->main::@1#8] -- register_copy + //SEG161 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@31->main::@1#9] -- register_copy + //SEG162 [34] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@31->main::@1#10] -- register_copy + //SEG163 [34] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@31->main::@1#11] -- register_copy + //SEG164 [34] phi (byte) current_movedown_slow#12 = (byte) current_movedown_slow#17 [phi:main::@31->main::@1#12] -- register_copy + //SEG165 [34] phi (byte) render_screen_render#17 = (byte) render_screen_render#11 [phi:main::@31->main::@1#13] -- register_copy + //SEG166 [34] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@31->main::@1#14] -- register_copy jmp b1 } -//SEG161 render_screen_swap +//SEG167 render_screen_swap render_screen_swap: { - //SEG162 [72] (byte) render_screen_render#11 ← (byte) render_screen_render#17 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 + //SEG168 [72] (byte) render_screen_render#11 ← (byte) render_screen_render#17 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 lda render_screen_render eor #$40 sta render_screen_render - //SEG163 [73] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 + //SEG169 [73] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 lda render_screen_show eor #$40 sta render_screen_show jmp breturn - //SEG164 render_screen_swap::@return + //SEG170 render_screen_swap::@return breturn: - //SEG165 [74] return + //SEG171 [74] return rts } -//SEG166 render_score +//SEG172 render_score render_score: { .label score_bytes = score_bcd .const score_offset = $28*5+$1c .const lines_offset = $28*1+$16 .const level_offset = $28*$13+$1f .label screen = 5 - //SEG167 [75] if((byte) render_screen_render#17==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_score::@2 -- vbuz1_eq_0_then_la1 + //SEG173 [75] if((byte) render_screen_render#17==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_score::@2 -- vbuz1_eq_0_then_la1 lda render_screen_render cmp #0 beq b2_from_render_score - //SEG168 [76] phi from render_score to render_score::@3 [phi:render_score->render_score::@3] + //SEG174 [76] phi from render_score to render_score::@3 [phi:render_score->render_score::@3] b3_from_render_score: jmp b3 - //SEG169 render_score::@3 + //SEG175 render_score::@3 b3: - //SEG170 [77] phi from render_score::@3 to render_score::@2 [phi:render_score::@3->render_score::@2] + //SEG176 [77] phi from render_score::@3 to render_score::@2 [phi:render_score::@3->render_score::@2] b2_from_b3: - //SEG171 [77] phi (byte*) render_score::screen#2 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_score::@3->render_score::@2#0] -- pbuz1=pbuc1 + //SEG177 [77] phi (byte*) render_score::screen#2 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_score::@3->render_score::@2#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2 sta screen+1 jmp b2 - //SEG172 [77] phi from render_score to render_score::@2 [phi:render_score->render_score::@2] + //SEG178 [77] phi from render_score to render_score::@2 [phi:render_score->render_score::@2] b2_from_render_score: - //SEG173 [77] phi (byte*) render_score::screen#2 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_score->render_score::@2#0] -- pbuz1=pbuc1 + //SEG179 [77] phi (byte*) render_score::screen#2 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_score->render_score::@2#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1 sta screen+1 jmp b2 - //SEG174 render_score::@2 + //SEG180 render_score::@2 b2: - //SEG175 [78] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 + //SEG181 [78] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 // (byte*) render_bcd::screen#0 = (byte*) render_score::screen#2 // register copy zp ZP_WORD:5 - //SEG176 [79] (byte) render_bcd::bcd#0 ← *((const byte*) render_score::score_bytes#0+(byte/signed byte/word/signed word/dword/signed dword) 2) -- vbuxx=_deref_pbuc1 + //SEG182 [79] (byte) render_bcd::bcd#0 ← *((const byte*) render_score::score_bytes#0+(byte/signed byte/word/signed word/dword/signed dword) 2) -- vbuxx=_deref_pbuc1 ldx score_bytes+2 - //SEG177 [80] call render_bcd - //SEG178 [97] phi from render_score::@2 to render_bcd [phi:render_score::@2->render_bcd] + //SEG183 [80] call render_bcd + //SEG184 [97] phi from render_score::@2 to render_bcd [phi:render_score::@2->render_bcd] render_bcd_from_b2: - //SEG179 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#0 [phi:render_score::@2->render_bcd#0] -- register_copy - //SEG180 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@2->render_bcd#1] -- vbuyy=vbuc1 + //SEG185 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#0 [phi:render_score::@2->render_bcd#0] -- register_copy + //SEG186 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@2->render_bcd#1] -- vbuyy=vbuc1 ldy #0 - //SEG181 [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset#0 [phi:render_score::@2->render_bcd#2] -- vwuz1=vwuc1 + //SEG187 [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset#0 [phi:render_score::@2->render_bcd#2] -- vwuz1=vwuc1 lda #score_offset sta render_bcd.offset+1 - //SEG182 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#0 [phi:render_score::@2->render_bcd#3] -- register_copy + //SEG188 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#0 [phi:render_score::@2->render_bcd#3] -- register_copy jsr render_bcd jmp b5 - //SEG183 render_score::@5 + //SEG189 render_score::@5 b5: - //SEG184 [81] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#2 + //SEG190 [81] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#2 // (byte*) render_bcd::screen#1 = (byte*) render_score::screen#2 // register copy zp ZP_WORD:5 - //SEG185 [82] (byte) render_bcd::bcd#1 ← *((const byte*) render_score::score_bytes#0+(byte/signed byte/word/signed word/dword/signed dword) 1) -- vbuxx=_deref_pbuc1 + //SEG191 [82] (byte) render_bcd::bcd#1 ← *((const byte*) render_score::score_bytes#0+(byte/signed byte/word/signed word/dword/signed dword) 1) -- vbuxx=_deref_pbuc1 ldx score_bytes+1 - //SEG186 [83] call render_bcd - //SEG187 [97] phi from render_score::@5 to render_bcd [phi:render_score::@5->render_bcd] + //SEG192 [83] call render_bcd + //SEG193 [97] phi from render_score::@5 to render_bcd [phi:render_score::@5->render_bcd] render_bcd_from_b5: - //SEG188 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#1 [phi:render_score::@5->render_bcd#0] -- register_copy - //SEG189 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@5->render_bcd#1] -- vbuyy=vbuc1 + //SEG194 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#1 [phi:render_score::@5->render_bcd#0] -- register_copy + //SEG195 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@5->render_bcd#1] -- vbuyy=vbuc1 ldy #0 - //SEG190 [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_score::@5->render_bcd#2] -- vwuz1=vbuc1 + //SEG196 [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_score::@5->render_bcd#2] -- vwuz1=vbuc1 lda #score_offset+2 sta render_bcd.offset+1 - //SEG191 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#1 [phi:render_score::@5->render_bcd#3] -- register_copy + //SEG197 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#1 [phi:render_score::@5->render_bcd#3] -- register_copy jsr render_bcd jmp b6 - //SEG192 render_score::@6 + //SEG198 render_score::@6 b6: - //SEG193 [84] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#2 + //SEG199 [84] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#2 // (byte*) render_bcd::screen#2 = (byte*) render_score::screen#2 // register copy zp ZP_WORD:5 - //SEG194 [85] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes#0) -- vbuxx=_deref_pbuc1 + //SEG200 [85] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes#0) -- vbuxx=_deref_pbuc1 ldx score_bytes - //SEG195 [86] call render_bcd - //SEG196 [97] phi from render_score::@6 to render_bcd [phi:render_score::@6->render_bcd] + //SEG201 [86] call render_bcd + //SEG202 [97] phi from render_score::@6 to render_bcd [phi:render_score::@6->render_bcd] render_bcd_from_b6: - //SEG197 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#2 [phi:render_score::@6->render_bcd#0] -- register_copy - //SEG198 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@6->render_bcd#1] -- vbuyy=vbuc1 + //SEG203 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#2 [phi:render_score::@6->render_bcd#0] -- register_copy + //SEG204 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@6->render_bcd#1] -- vbuyy=vbuc1 ldy #0 - //SEG199 [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 4 [phi:render_score::@6->render_bcd#2] -- vwuz1=vbuc1 + //SEG205 [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 4 [phi:render_score::@6->render_bcd#2] -- vwuz1=vbuc1 lda #score_offset+4 sta render_bcd.offset+1 - //SEG200 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#2 [phi:render_score::@6->render_bcd#3] -- register_copy + //SEG206 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#2 [phi:render_score::@6->render_bcd#3] -- register_copy jsr render_bcd jmp b7 - //SEG201 render_score::@7 + //SEG207 render_score::@7 b7: - //SEG202 [87] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#11 -- vbuxx=_hi_vwuz1 + //SEG208 [87] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#11 -- vbuxx=_hi_vwuz1 lda lines_bcd+1 tax - //SEG203 [88] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#2 + //SEG209 [88] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#2 // (byte*) render_bcd::screen#3 = (byte*) render_score::screen#2 // register copy zp ZP_WORD:5 - //SEG204 [89] call render_bcd - //SEG205 [97] phi from render_score::@7 to render_bcd [phi:render_score::@7->render_bcd] + //SEG210 [89] call render_bcd + //SEG211 [97] phi from render_score::@7 to render_bcd [phi:render_score::@7->render_bcd] render_bcd_from_b7: - //SEG206 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#3 [phi:render_score::@7->render_bcd#0] -- register_copy - //SEG207 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:render_score::@7->render_bcd#1] -- vbuyy=vbuc1 + //SEG212 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#3 [phi:render_score::@7->render_bcd#0] -- register_copy + //SEG213 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:render_score::@7->render_bcd#1] -- vbuyy=vbuc1 ldy #1 - //SEG208 [97] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset#0 [phi:render_score::@7->render_bcd#2] -- vwuz1=vwuc1 + //SEG214 [97] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset#0 [phi:render_score::@7->render_bcd#2] -- vwuz1=vwuc1 lda #lines_offset sta render_bcd.offset+1 - //SEG209 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#3 [phi:render_score::@7->render_bcd#3] -- register_copy + //SEG215 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#3 [phi:render_score::@7->render_bcd#3] -- register_copy jsr render_bcd jmp b8 - //SEG210 render_score::@8 + //SEG216 render_score::@8 b8: - //SEG211 [90] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#11 -- vbuxx=_lo_vwuz1 + //SEG217 [90] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#11 -- vbuxx=_lo_vwuz1 lda lines_bcd tax - //SEG212 [91] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#2 + //SEG218 [91] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#2 // (byte*) render_bcd::screen#4 = (byte*) render_score::screen#2 // register copy zp ZP_WORD:5 - //SEG213 [92] call render_bcd - //SEG214 [97] phi from render_score::@8 to render_bcd [phi:render_score::@8->render_bcd] + //SEG219 [92] call render_bcd + //SEG220 [97] phi from render_score::@8 to render_bcd [phi:render_score::@8->render_bcd] render_bcd_from_b8: - //SEG215 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#4 [phi:render_score::@8->render_bcd#0] -- register_copy - //SEG216 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@8->render_bcd#1] -- vbuyy=vbuc1 + //SEG221 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#4 [phi:render_score::@8->render_bcd#0] -- register_copy + //SEG222 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@8->render_bcd#1] -- vbuyy=vbuc1 ldy #0 - //SEG217 [97] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:render_score::@8->render_bcd#2] -- vwuz1=vbuc1 + //SEG223 [97] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:render_score::@8->render_bcd#2] -- vwuz1=vbuc1 lda #lines_offset+1 sta render_bcd.offset+1 - //SEG218 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#4 [phi:render_score::@8->render_bcd#3] -- register_copy + //SEG224 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#4 [phi:render_score::@8->render_bcd#3] -- register_copy jsr render_bcd jmp b9 - //SEG219 render_score::@9 + //SEG225 render_score::@9 b9: - //SEG220 [93] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#2 + //SEG226 [93] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#2 // (byte*) render_bcd::screen#5 = (byte*) render_score::screen#2 // register copy zp ZP_WORD:5 - //SEG221 [94] (byte) render_bcd::bcd#5 ← (byte) level_bcd#11 -- vbuxx=vbuz1 + //SEG227 [94] (byte) render_bcd::bcd#5 ← (byte) level_bcd#13 -- vbuxx=vbuz1 ldx level_bcd - //SEG222 [95] call render_bcd - //SEG223 [97] phi from render_score::@9 to render_bcd [phi:render_score::@9->render_bcd] + //SEG228 [95] call render_bcd + //SEG229 [97] phi from render_score::@9 to render_bcd [phi:render_score::@9->render_bcd] render_bcd_from_b9: - //SEG224 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#5 [phi:render_score::@9->render_bcd#0] -- register_copy - //SEG225 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@9->render_bcd#1] -- vbuyy=vbuc1 + //SEG230 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#5 [phi:render_score::@9->render_bcd#0] -- register_copy + //SEG231 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@9->render_bcd#1] -- vbuyy=vbuc1 ldy #0 - //SEG226 [97] phi (word) render_bcd::offset#6 = (const word) render_score::level_offset#0 [phi:render_score::@9->render_bcd#2] -- vwuz1=vwuc1 + //SEG232 [97] phi (word) render_bcd::offset#6 = (const word) render_score::level_offset#0 [phi:render_score::@9->render_bcd#2] -- vwuz1=vwuc1 lda #level_offset sta render_bcd.offset+1 - //SEG227 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#5 [phi:render_score::@9->render_bcd#3] -- register_copy + //SEG233 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#5 [phi:render_score::@9->render_bcd#3] -- register_copy jsr render_bcd jmp breturn - //SEG228 render_score::@return + //SEG234 render_score::@return breturn: - //SEG229 [96] return + //SEG235 [96] return rts } -//SEG230 render_bcd +//SEG236 render_bcd render_bcd: { .const ZERO_CHAR = $33 .label screen = 5 .label screen_pos = 7 .label offset = 7 - //SEG231 [98] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 -- pbuz1=pbuz2_plus_vwuz1 + //SEG237 [98] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 -- pbuz1=pbuz2_plus_vwuz1 lda screen_pos clc adc screen @@ -15415,357 +16016,357 @@ render_bcd: { lda screen_pos+1 adc screen+1 sta screen_pos+1 - //SEG232 [99] if((byte) render_bcd::only_low#6!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_bcd::@1 -- vbuyy_neq_0_then_la1 + //SEG238 [99] if((byte) render_bcd::only_low#6!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_bcd::@1 -- vbuyy_neq_0_then_la1 cpy #0 bne b1_from_render_bcd jmp b2 - //SEG233 render_bcd::@2 + //SEG239 render_bcd::@2 b2: - //SEG234 [100] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuaa=vbuxx_ror_4 + //SEG240 [100] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuaa=vbuxx_ror_4 txa lsr lsr lsr lsr - //SEG235 [101] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$3 -- vbuaa=vbuc1_plus_vbuaa + //SEG241 [101] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$3 -- vbuaa=vbuc1_plus_vbuaa clc adc #ZERO_CHAR - //SEG236 [102] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 -- _deref_pbuz1=vbuaa + //SEG242 [102] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 -- _deref_pbuz1=vbuaa ldy #0 sta (screen_pos),y - //SEG237 [103] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 -- pbuz1=_inc_pbuz1 + //SEG243 [103] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 -- pbuz1=_inc_pbuz1 inc screen_pos bne !+ inc screen_pos+1 !: - //SEG238 [104] phi from render_bcd render_bcd::@2 to render_bcd::@1 [phi:render_bcd/render_bcd::@2->render_bcd::@1] + //SEG244 [104] phi from render_bcd render_bcd::@2 to render_bcd::@1 [phi:render_bcd/render_bcd::@2->render_bcd::@1] b1_from_render_bcd: b1_from_b2: - //SEG239 [104] phi (byte*) render_bcd::screen_pos#3 = (byte*) render_bcd::screen_pos#0 [phi:render_bcd/render_bcd::@2->render_bcd::@1#0] -- register_copy + //SEG245 [104] phi (byte*) render_bcd::screen_pos#3 = (byte*) render_bcd::screen_pos#0 [phi:render_bcd/render_bcd::@2->render_bcd::@1#0] -- register_copy jmp b1 - //SEG240 render_bcd::@1 + //SEG246 render_bcd::@1 b1: - //SEG241 [105] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG247 [105] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 txa and #$f - //SEG242 [106] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 -- vbuaa=vbuc1_plus_vbuaa + //SEG248 [106] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 -- vbuaa=vbuc1_plus_vbuaa clc adc #ZERO_CHAR - //SEG243 [107] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 -- _deref_pbuz1=vbuaa + //SEG249 [107] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 -- _deref_pbuz1=vbuaa ldy #0 sta (screen_pos),y - //SEG244 [108] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 -- pbuz1=_inc_pbuz1 + //SEG250 [108] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 -- pbuz1=_inc_pbuz1 inc screen_pos bne !+ inc screen_pos+1 !: jmp breturn - //SEG245 render_bcd::@return + //SEG251 render_bcd::@return breturn: - //SEG246 [109] return + //SEG252 [109] return rts } -//SEG247 render_current -render_current: { +//SEG253 render_moving +render_moving: { .label ypos2 = $b .label screen_line = 7 .label xpos = $e .label i = $d .label l = $c .label c = $f - //SEG248 [111] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 + //SEG254 [111] (byte) render_moving::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 tya asl sta ypos2 - //SEG249 [112] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] - b1_from_render_current: - //SEG250 [112] phi (byte) render_current::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 + //SEG255 [112] phi from render_moving to render_moving::@1 [phi:render_moving->render_moving::@1] + b1_from_render_moving: + //SEG256 [112] phi (byte) render_moving::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving->render_moving::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG251 [112] phi (byte) render_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 + //SEG257 [112] phi (byte) render_moving::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving->render_moving::@1#1] -- vbuz1=vbuc1 lda #0 sta i - //SEG252 [112] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy + //SEG258 [112] phi (byte) render_moving::ypos2#2 = (byte) render_moving::ypos2#0 [phi:render_moving->render_moving::@1#2] -- register_copy jmp b1 - //SEG253 [112] phi from render_current::@3 to render_current::@1 [phi:render_current::@3->render_current::@1] + //SEG259 [112] phi from render_moving::@3 to render_moving::@1 [phi:render_moving::@3->render_moving::@1] b1_from_b3: - //SEG254 [112] phi (byte) render_current::l#4 = (byte) render_current::l#1 [phi:render_current::@3->render_current::@1#0] -- register_copy - //SEG255 [112] phi (byte) render_current::i#3 = (byte) render_current::i#8 [phi:render_current::@3->render_current::@1#1] -- register_copy - //SEG256 [112] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@3->render_current::@1#2] -- register_copy + //SEG260 [112] phi (byte) render_moving::l#4 = (byte) render_moving::l#1 [phi:render_moving::@3->render_moving::@1#0] -- register_copy + //SEG261 [112] phi (byte) render_moving::i#3 = (byte) render_moving::i#8 [phi:render_moving::@3->render_moving::@1#1] -- register_copy + //SEG262 [112] phi (byte) render_moving::ypos2#2 = (byte) render_moving::ypos2#1 [phi:render_moving::@3->render_moving::@1#2] -- register_copy jmp b1 - //SEG257 render_current::@1 + //SEG263 render_moving::@1 b1: - //SEG258 [113] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 -- vbuz1_gt_vbuc1_then_la1 + //SEG264 [113] 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 lda ypos2 cmp #2 beq !+ bcs b13 !: jmp b7 - //SEG259 render_current::@7 + //SEG265 render_moving::@7 b7: - //SEG260 [114] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz1_plus_vbuc1 + //SEG266 [114] (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 - //SEG261 [115] phi from render_current::@5 render_current::@7 to render_current::@3 [phi:render_current::@5/render_current::@7->render_current::@3] + //SEG267 [115] phi from render_moving::@5 render_moving::@7 to render_moving::@3 [phi:render_moving::@5/render_moving::@7->render_moving::@3] b3_from_b5: b3_from_b7: - //SEG262 [115] phi (byte) render_current::i#8 = (byte) render_current::i#10 [phi:render_current::@5/render_current::@7->render_current::@3#0] -- register_copy + //SEG268 [115] phi (byte) render_moving::i#8 = (byte) render_moving::i#10 [phi:render_moving::@5/render_moving::@7->render_moving::@3#0] -- register_copy jmp b3 - //SEG263 render_current::@3 + //SEG269 render_moving::@3 b3: - //SEG264 [116] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG270 [116] (byte) render_moving::ypos2#1 ← (byte) render_moving::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG265 [117] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 -- vbuz1=_inc_vbuz1 + //SEG271 [117] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG266 [118] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG272 [118] if((byte) render_moving::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b1_from_b3 jmp breturn - //SEG267 render_current::@return + //SEG273 render_moving::@return breturn: - //SEG268 [119] return + //SEG274 [119] return rts - //SEG269 render_current::@13 + //SEG275 render_moving::@13 b13: - //SEG270 [120] if((byte) render_current::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG276 [120] 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 - //SEG271 render_current::@2 + //SEG277 render_moving::@2 b2: - //SEG272 [121] (byte~) render_current::$5 ← (byte) render_screen_render#30 + (byte) render_current::ypos2#2 -- vbuaa=vbuz1_plus_vbuz2 + //SEG278 [121] (byte~) render_moving::$5 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 -- vbuaa=vbuz1_plus_vbuz2 lda render_screen_render_30 clc adc ypos2 - //SEG273 [122] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) -- pbuz1=pptc1_derefidx_vbuaa + //SEG279 [122] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$5) -- pbuz1=pptc1_derefidx_vbuaa tay lda screen_lines_1,y sta screen_line lda screen_lines_1+1,y sta screen_line+1 - //SEG274 [123] (byte) render_current::xpos#0 ← (byte) current_xpos#47 -- vbuz1=vbuz2 + //SEG280 [123] (byte) render_moving::xpos#0 ← (byte) current_xpos#47 -- vbuz1=vbuz2 lda current_xpos_47 sta xpos - //SEG275 [124] phi from render_current::@2 to render_current::@4 [phi:render_current::@2->render_current::@4] + //SEG281 [124] phi from render_moving::@2 to render_moving::@4 [phi:render_moving::@2->render_moving::@4] b4_from_b2: - //SEG276 [124] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@2->render_current::@4#0] -- vbuz1=vbuc1 + //SEG282 [124] 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 - //SEG277 [124] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@2->render_current::@4#1] -- register_copy - //SEG278 [124] phi (byte) render_current::i#4 = (byte) render_current::i#3 [phi:render_current::@2->render_current::@4#2] -- register_copy + //SEG283 [124] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#0 [phi:render_moving::@2->render_moving::@4#1] -- register_copy + //SEG284 [124] phi (byte) render_moving::i#4 = (byte) render_moving::i#3 [phi:render_moving::@2->render_moving::@4#2] -- register_copy jmp b4 - //SEG279 [124] phi from render_current::@5 to render_current::@4 [phi:render_current::@5->render_current::@4] + //SEG285 [124] phi from render_moving::@5 to render_moving::@4 [phi:render_moving::@5->render_moving::@4] b4_from_b5: - //SEG280 [124] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@5->render_current::@4#0] -- register_copy - //SEG281 [124] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@5->render_current::@4#1] -- register_copy - //SEG282 [124] phi (byte) render_current::i#4 = (byte) render_current::i#10 [phi:render_current::@5->render_current::@4#2] -- register_copy + //SEG286 [124] phi (byte) render_moving::c#2 = (byte) render_moving::c#1 [phi:render_moving::@5->render_moving::@4#0] -- register_copy + //SEG287 [124] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#1 [phi:render_moving::@5->render_moving::@4#1] -- register_copy + //SEG288 [124] phi (byte) render_moving::i#4 = (byte) render_moving::i#10 [phi:render_moving::@5->render_moving::@4#2] -- register_copy jmp b4 - //SEG283 render_current::@4 + //SEG289 render_moving::@4 b4: - //SEG284 [125] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 + //SEG290 [125] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_moving::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 ldy i lda (current_piece_gfx_53),y - //SEG285 [126] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 -- vbuz1=_inc_vbuz1 + //SEG291 [126] (byte) render_moving::i#10 ← ++ (byte) render_moving::i#4 -- vbuz1=_inc_vbuz1 inc i - //SEG286 [127] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 -- vbuaa_eq_0_then_la1 + //SEG292 [127] 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 - //SEG287 render_current::@9 + //SEG293 render_moving::@9 b9: - //SEG288 [128] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 -- vbuz1_ge_vbuc1_then_la1 + //SEG294 [128] 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 - //SEG289 render_current::@10 + //SEG295 render_moving::@10 b10: - //SEG290 [129] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#64 -- pbuz1_derefidx_vbuz2=vbuxx + //SEG296 [129] *((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 - //SEG291 render_current::@5 + //SEG297 render_moving::@5 b5: - //SEG292 [130] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG298 [130] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG293 [131] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuz1=_inc_vbuz1 + //SEG299 [131] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG294 [132] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG300 [132] 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 } -//SEG295 render_playfield +//SEG301 render_playfield render_playfield: { .label screen_line = 5 .label i = $a .label c = $b .label l = 9 - //SEG296 [134] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + //SEG302 [134] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] b1_from_render_playfield: - //SEG297 [134] 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 + //SEG303 [134] 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 - //SEG298 [134] 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 + //SEG304 [134] 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 - //SEG299 [134] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG305 [134] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] b1_from_b3: - //SEG300 [134] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG301 [134] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //SEG306 [134] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + //SEG307 [134] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy jmp b1 - //SEG302 render_playfield::@1 + //SEG308 render_playfield::@1 b1: - //SEG303 [135] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 + //SEG309 [135] (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 - //SEG304 [136] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 -- vbuaa=vbuxx_plus_vbuaa + //SEG310 [136] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 -- vbuaa=vbuxx_plus_vbuaa stx $ff clc adc $ff - //SEG305 [137] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuaa + //SEG311 [137] (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 - //SEG306 [138] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG312 [138] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] b2_from_b1: - //SEG307 [138] 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 + //SEG313 [138] 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 - //SEG308 [138] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG309 [138] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //SEG314 [138] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + //SEG315 [138] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy jmp b2 - //SEG310 [138] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG316 [138] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] b2_from_b2: - //SEG311 [138] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG312 [138] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG313 [138] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //SEG317 [138] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + //SEG318 [138] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + //SEG319 [138] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy jmp b2 - //SEG314 render_playfield::@2 + //SEG320 render_playfield::@2 b2: - //SEG315 [139] *((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 + //SEG321 [139] *((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 - //SEG316 [140] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 + //SEG322 [140] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 inc screen_line bne !+ inc screen_line+1 !: - //SEG317 [141] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG323 [141] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG318 [142] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 + //SEG324 [142] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG319 [143] 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 + //SEG325 [143] 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 - //SEG320 render_playfield::@3 + //SEG326 render_playfield::@3 b3: - //SEG321 [144] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG327 [144] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG322 [145] 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 + //SEG328 [145] 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 - //SEG323 render_playfield::@return + //SEG329 render_playfield::@return breturn: - //SEG324 [146] return + //SEG330 [146] return rts } -//SEG325 play_move_rotate +//SEG331 play_move_rotate play_move_rotate: { .label orientation = 9 - //SEG326 [147] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG332 [147] 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 - //SEG327 play_move_rotate::@6 + //SEG333 play_move_rotate::@6 b6: - //SEG328 [148] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 + //SEG334 [148] 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 - //SEG329 [149] 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] + //SEG335 [149] 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: - //SEG330 [149] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#1 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy - //SEG331 [149] phi (byte) current_orientation#19 = (byte) current_orientation#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy - //SEG332 [149] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 + //SEG336 [149] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#1 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + //SEG337 [149] phi (byte) current_orientation#19 = (byte) current_orientation#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy + //SEG338 [149] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #0 jmp breturn - //SEG333 play_move_rotate::@return + //SEG339 play_move_rotate::@return breturn: - //SEG334 [150] return + //SEG340 [150] return rts - //SEG335 play_move_rotate::@2 + //SEG341 play_move_rotate::@2 b2: - //SEG336 [151] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 + //SEG342 [151] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 lda #$10 clc adc current_orientation - //SEG337 [152] (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 + //SEG343 [152] (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 - //SEG338 [153] 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] + //SEG344 [153] 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: - //SEG339 [153] 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 + //SEG345 [153] 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 - //SEG340 play_move_rotate::@4 + //SEG346 play_move_rotate::@4 b4: - //SEG341 [154] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 -- vbuz1=vbuz2 + //SEG347 [154] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG342 [155] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 -- vbuyy=vbuz1 + //SEG348 [155] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos - //SEG343 [156] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 + //SEG349 [156] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 ldx orientation - //SEG344 [157] (byte*~) current_piece#79 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG350 [157] (byte*~) current_piece#79 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_79 lda current_piece+1 sta current_piece_79+1 - //SEG345 [158] call play_collision - //SEG346 [166] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] + //SEG351 [158] call play_collision + //SEG352 [166] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] play_collision_from_b4: - //SEG347 [166] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy - //SEG348 [166] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy - //SEG349 [166] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy - //SEG350 [166] phi (byte*) current_piece#12 = (byte*~) current_piece#79 [phi:play_move_rotate::@4->play_collision#3] -- register_copy + //SEG353 [166] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy + //SEG354 [166] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy + //SEG355 [166] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy + //SEG356 [166] phi (byte*) current_piece#12 = (byte*~) current_piece#79 [phi:play_move_rotate::@4->play_collision#3] -- register_copy jsr play_collision - //SEG351 [159] (byte) play_collision::return#13 ← (byte) play_collision::return#14 + //SEG357 [159] (byte) play_collision::return#13 ← (byte) play_collision::return#14 // (byte) play_collision::return#13 = (byte) play_collision::return#14 // register copy reg byte a jmp b14 - //SEG352 play_move_rotate::@14 + //SEG358 play_move_rotate::@14 b14: - //SEG353 [160] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 + //SEG359 [160] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 // (byte~) play_move_rotate::$6 = (byte) play_collision::return#13 // register copy reg byte a - //SEG354 [161] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG360 [161] 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 - //SEG355 play_move_rotate::@11 + //SEG361 play_move_rotate::@11 b11: - //SEG356 [162] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG362 [162] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG357 [163] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 + //SEG363 [163] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 lda current_orientation clc adc current_piece @@ -15773,38 +16374,38 @@ play_move_rotate: { lda #0 adc current_piece+1 sta current_piece_gfx+1 - //SEG358 [149] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG364 [149] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] breturn_from_b11: - //SEG359 [149] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#3 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG360 [149] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG361 [149] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 + //SEG365 [149] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#3 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG366 [149] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy + //SEG367 [149] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG362 play_move_rotate::@1 + //SEG368 play_move_rotate::@1 b1: - //SEG363 [164] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 + //SEG369 [164] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 lda current_orientation sec sbc #$10 - //SEG364 [165] (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 + //SEG370 [165] (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 } -//SEG365 play_collision +//SEG371 play_collision play_collision: { .label xpos = $a .label piece_gfx = 5 .label ypos2 = $b .label playfield_line = 7 - .label i = $26 + .label i = $28 .label col = $e .label l = $c .label i_2 = $d .label i_3 = $d .label i_11 = $d .label i_13 = $d - //SEG366 [167] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx + //SEG372 [167] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx txa clc adc piece_gfx @@ -15812,578 +16413,586 @@ play_collision: { lda #0 adc piece_gfx+1 sta piece_gfx+1 - //SEG367 [168] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 + //SEG373 [168] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 tya asl sta ypos2 - //SEG368 [169] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] + //SEG374 [169] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] b1_from_play_collision: - //SEG369 [169] 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 + //SEG375 [169] 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 - //SEG370 [169] 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 + //SEG376 [169] 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 - //SEG371 [169] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy + //SEG377 [169] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy jmp b1 - //SEG372 play_collision::@1 + //SEG378 play_collision::@1 b1: - //SEG373 [170] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG379 [170] (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 - //SEG374 [171] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 + //SEG380 [171] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 lda xpos sta col - //SEG375 [172] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] + //SEG381 [172] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] b2_from_b1: - //SEG376 [172] 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 + //SEG382 [172] 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 - //SEG377 [172] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy - //SEG378 [172] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy + //SEG383 [172] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy + //SEG384 [172] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy jmp b2 - //SEG379 play_collision::@2 + //SEG385 play_collision::@2 b2: - //SEG380 [173] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG386 [173] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG381 [174] 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 + //SEG387 [174] 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 - //SEG382 play_collision::@8 + //SEG388 play_collision::@8 b8: - //SEG383 [175] 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 + //SEG389 [175] 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 - //SEG384 [176] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] + //SEG390 [176] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] breturn_from_b8: - //SEG385 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG391 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_BOTTOM jmp breturn - //SEG386 play_collision::@return + //SEG392 play_collision::@return breturn: - //SEG387 [177] return + //SEG393 [177] return rts - //SEG388 play_collision::@4 + //SEG394 play_collision::@4 b4: - //SEG389 [178] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG395 [178] (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 - //SEG390 [179] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuaa_eq_0_then_la1 + //SEG396 [179] 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 - //SEG391 [176] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] + //SEG397 [176] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] breturn_from_b4: - //SEG392 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG398 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_LEFT jmp breturn - //SEG393 play_collision::@5 + //SEG399 play_collision::@5 b5: - //SEG394 [180] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG400 [180] 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 - //SEG395 [176] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] + //SEG401 [176] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] breturn_from_b5: - //SEG396 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG402 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_RIGHT jmp breturn - //SEG397 play_collision::@6 + //SEG403 play_collision::@6 b6: - //SEG398 [181] 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 + //SEG404 [181] 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 - //SEG399 [176] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] + //SEG405 [176] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] breturn_from_b6: - //SEG400 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG406 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_PLAYFIELD jmp breturn - //SEG401 play_collision::@3 + //SEG407 play_collision::@3 b3: - //SEG402 [182] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG408 [182] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG403 [183] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx + //SEG409 [183] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx inx - //SEG404 [184] 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 + //SEG410 [184] 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 - //SEG405 play_collision::@17 + //SEG411 play_collision::@17 b17: - //SEG406 [185] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG412 [185] (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 - //SEG407 [186] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG413 [186] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG408 [187] 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 + //SEG414 [187] 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 - //SEG409 [176] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] + //SEG415 [176] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] breturn_from_b17: - //SEG410 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG416 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_NONE jmp breturn - //SEG411 play_collision::@20 + //SEG417 play_collision::@20 b20: - //SEG412 [188] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG418 [188] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG413 [169] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] + //SEG419 [169] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] b1_from_b20: - //SEG414 [169] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy - //SEG415 [169] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy - //SEG416 [169] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy + //SEG420 [169] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy + //SEG421 [169] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy + //SEG422 [169] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy jmp b1 - //SEG417 play_collision::@21 + //SEG423 play_collision::@21 b21: - //SEG418 [189] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG424 [189] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG419 [172] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] + //SEG425 [172] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] b2_from_b21: - //SEG420 [172] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy - //SEG421 [172] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy - //SEG422 [172] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy + //SEG426 [172] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy + //SEG427 [172] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy + //SEG428 [172] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy jmp b2 } -//SEG423 play_move_leftright +//SEG429 play_move_leftright play_move_leftright: { - //SEG424 [190] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG430 [190] 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 - //SEG425 play_move_leftright::@6 + //SEG431 play_move_leftright::@6 b6: - //SEG426 [191] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG432 [191] 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 - //SEG427 play_move_leftright::@7 + //SEG433 play_move_leftright::@7 b7: - //SEG428 [192] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG434 [192] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_xpos iny sty play_collision.xpos - //SEG429 [193] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 -- vbuyy=vbuz1 + //SEG435 [193] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos - //SEG430 [194] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuxx=vbuz1 + //SEG436 [194] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuxx=vbuz1 ldx current_orientation - //SEG431 [195] (byte*~) current_piece#78 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG437 [195] (byte*~) current_piece#78 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_78 lda current_piece+1 sta current_piece_78+1 - //SEG432 [196] call play_collision - //SEG433 [166] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] + //SEG438 [196] call play_collision + //SEG439 [166] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] play_collision_from_b7: - //SEG434 [166] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy - //SEG435 [166] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy - //SEG436 [166] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy - //SEG437 [166] phi (byte*) current_piece#12 = (byte*~) current_piece#78 [phi:play_move_leftright::@7->play_collision#3] -- register_copy + //SEG440 [166] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy + //SEG441 [166] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy + //SEG442 [166] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy + //SEG443 [166] phi (byte*) current_piece#12 = (byte*~) current_piece#78 [phi:play_move_leftright::@7->play_collision#3] -- register_copy jsr play_collision - //SEG438 [197] (byte) play_collision::return#12 ← (byte) play_collision::return#14 + //SEG444 [197] (byte) play_collision::return#12 ← (byte) play_collision::return#14 // (byte) play_collision::return#12 = (byte) play_collision::return#14 // register copy reg byte a jmp b15 - //SEG439 play_move_leftright::@15 + //SEG445 play_move_leftright::@15 b15: - //SEG440 [198] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 + //SEG446 [198] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 // (byte~) play_move_leftright::$4 = (byte) play_collision::return#12 // register copy reg byte a - //SEG441 [199] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG447 [199] 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 - //SEG442 play_move_leftright::@8 + //SEG448 play_move_leftright::@8 b8: - //SEG443 [200] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 -- vbuz1=_inc_vbuz1 + //SEG449 [200] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 -- vbuz1=_inc_vbuz1 inc current_xpos - //SEG444 [201] 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] + //SEG450 [201] 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: - //SEG445 [201] phi (byte) current_xpos#19 = (byte) current_xpos#4 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy - //SEG446 [201] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 + //SEG451 [201] phi (byte) current_xpos#19 = (byte) current_xpos#4 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy + //SEG452 [201] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG447 [201] 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] + //SEG453 [201] 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: - //SEG448 [201] phi (byte) current_xpos#19 = (byte) current_xpos#1 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy - //SEG449 [201] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 + //SEG454 [201] phi (byte) current_xpos#19 = (byte) current_xpos#1 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy + //SEG455 [201] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #0 jmp breturn - //SEG450 play_move_leftright::@return + //SEG456 play_move_leftright::@return breturn: - //SEG451 [202] return + //SEG457 [202] return rts - //SEG452 play_move_leftright::@1 + //SEG458 play_move_leftright::@1 b1: - //SEG453 [203] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //SEG459 [203] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 ldx current_xpos dex stx play_collision.xpos - //SEG454 [204] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 -- vbuyy=vbuz1 + //SEG460 [204] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos - //SEG455 [205] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuxx=vbuz1 + //SEG461 [205] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuxx=vbuz1 ldx current_orientation - //SEG456 [206] (byte*~) current_piece#77 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG462 [206] (byte*~) current_piece#77 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_77 lda current_piece+1 sta current_piece_77+1 - //SEG457 [207] call play_collision - //SEG458 [166] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] + //SEG463 [207] call play_collision + //SEG464 [166] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] play_collision_from_b1: - //SEG459 [166] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy - //SEG460 [166] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy - //SEG461 [166] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy - //SEG462 [166] phi (byte*) current_piece#12 = (byte*~) current_piece#77 [phi:play_move_leftright::@1->play_collision#3] -- register_copy + //SEG465 [166] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy + //SEG466 [166] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy + //SEG467 [166] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy + //SEG468 [166] phi (byte*) current_piece#12 = (byte*~) current_piece#77 [phi:play_move_leftright::@1->play_collision#3] -- register_copy jsr play_collision - //SEG463 [208] (byte) play_collision::return#1 ← (byte) play_collision::return#14 + //SEG469 [208] (byte) play_collision::return#1 ← (byte) play_collision::return#14 // (byte) play_collision::return#1 = (byte) play_collision::return#14 // register copy reg byte a jmp b14 - //SEG464 play_move_leftright::@14 + //SEG470 play_move_leftright::@14 b14: - //SEG465 [209] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + //SEG471 [209] (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 - //SEG466 [210] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG472 [210] 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 - //SEG467 play_move_leftright::@11 + //SEG473 play_move_leftright::@11 b11: - //SEG468 [211] (byte) current_xpos#4 ← -- (byte) current_xpos#1 -- vbuz1=_dec_vbuz1 + //SEG474 [211] (byte) current_xpos#4 ← -- (byte) current_xpos#1 -- vbuz1=_dec_vbuz1 dec current_xpos jmp breturn_from_b11 } -//SEG469 play_move_down +//SEG475 play_move_down play_move_down: { - //SEG470 [212] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 + //SEG476 [212] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG471 [213] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 + //SEG477 [213] 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 - //SEG472 [214] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG478 [214] 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 - //SEG473 play_move_down::@8 + //SEG479 play_move_down::@8 b8: - //SEG474 [215] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG480 [215] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] b1_from_b8: - //SEG475 [215] 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 + //SEG481 [215] 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 - //SEG476 [215] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG482 [215] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b1_from_play_move_down: - //SEG477 [215] 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 + //SEG483 [215] 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 - //SEG478 play_move_down::@1 + //SEG484 play_move_down::@1 b1: - //SEG479 [216] call keyboard_event_pressed - //SEG480 [324] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG485 [216] call keyboard_event_pressed + //SEG486 [332] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] keyboard_event_pressed_from_b1: - //SEG481 [324] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG487 [332] 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 - //SEG482 [217] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + //SEG488 [217] (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 - //SEG483 play_move_down::@17 + //SEG489 play_move_down::@17 b17: - //SEG484 [218] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + //SEG490 [218] (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 - //SEG485 [219] 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 + //SEG491 [219] 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 - //SEG486 play_move_down::@9 + //SEG492 play_move_down::@9 b9: - //SEG487 [220] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG493 [220] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 lda current_movedown_counter cmp #current_movedown_fast bcc b2_from_b9 jmp b10 - //SEG488 play_move_down::@10 + //SEG494 play_move_down::@10 b10: - //SEG489 [221] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx + //SEG495 [221] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx inx - //SEG490 [222] 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] + //SEG496 [222] 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: - //SEG491 [222] 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 + //SEG497 [222] 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 - //SEG492 play_move_down::@2 + //SEG498 play_move_down::@2 b2: - //SEG493 [223] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG499 [223] if((byte) current_movedown_counter#1<(byte) current_movedown_slow#12) goto play_move_down::@4 -- vbuz1_lt_vbuz2_then_la1 lda current_movedown_counter - cmp #current_movedown_slow + cmp current_movedown_slow bcc b4_from_b2 jmp b11 - //SEG494 play_move_down::@11 + //SEG500 play_move_down::@11 b11: - //SEG495 [224] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx + //SEG501 [224] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx inx - //SEG496 [225] 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] + //SEG502 [225] 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: - //SEG497 [225] 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 + //SEG503 [225] 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 - //SEG498 play_move_down::@4 + //SEG504 play_move_down::@4 b4: - //SEG499 [226] 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 + //SEG505 [226] 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 - //SEG500 play_move_down::@12 + //SEG506 play_move_down::@12 b12: - //SEG501 [227] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 + //SEG507 [227] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 ldy current_ypos iny - //SEG502 [228] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 + //SEG508 [228] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG503 [229] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuxx=vbuz1 + //SEG509 [229] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuxx=vbuz1 ldx current_orientation - //SEG504 [230] (byte*~) current_piece#76 ← (byte*) current_piece#16 -- pbuz1=pbuz2 + //SEG510 [230] (byte*~) current_piece#76 ← (byte*) current_piece#16 -- pbuz1=pbuz2 lda current_piece sta current_piece_76 lda current_piece+1 sta current_piece_76+1 - //SEG505 [231] call play_collision - //SEG506 [166] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] + //SEG511 [231] call play_collision + //SEG512 [166] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] play_collision_from_b12: - //SEG507 [166] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy - //SEG508 [166] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy - //SEG509 [166] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy - //SEG510 [166] phi (byte*) current_piece#12 = (byte*~) current_piece#76 [phi:play_move_down::@12->play_collision#3] -- register_copy + //SEG513 [166] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy + //SEG514 [166] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy + //SEG515 [166] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy + //SEG516 [166] phi (byte*) current_piece#12 = (byte*~) current_piece#76 [phi:play_move_down::@12->play_collision#3] -- register_copy jsr play_collision - //SEG511 [232] (byte) play_collision::return#0 ← (byte) play_collision::return#14 + //SEG517 [232] (byte) play_collision::return#0 ← (byte) play_collision::return#14 // (byte) play_collision::return#0 = (byte) play_collision::return#14 // register copy reg byte a jmp b18 - //SEG512 play_move_down::@18 + //SEG518 play_move_down::@18 b18: - //SEG513 [233] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + //SEG519 [233] (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 - //SEG514 [234] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuaa_eq_vbuc1_then_la1 + //SEG520 [234] 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 - //SEG515 [235] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG521 [235] 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 - //SEG516 play_move_down::@13 + //SEG522 play_move_down::@13 b13: - //SEG517 [236] call play_lock_current + //SEG523 [236] call play_lock_current jsr play_lock_current - //SEG518 [237] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG524 [237] 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 - //SEG519 play_move_down::@19 + //SEG525 play_move_down::@19 b19: - //SEG520 [238] call play_remove_lines - //SEG521 [284] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] + //SEG526 [238] call play_remove_lines + //SEG527 [292] 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 - //SEG522 [239] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 -- vbuaa=vbuz1 + //SEG528 [239] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 -- vbuaa=vbuz1 lda play_remove_lines.removed jmp b20 - //SEG523 play_move_down::@20 + //SEG529 play_move_down::@20 b20: - //SEG524 [240] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 + //SEG530 [240] (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 - //SEG525 [241] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuxx=vbuaa + //SEG531 [241] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuxx=vbuaa tax - //SEG526 [242] call play_update_score + //SEG532 [242] call play_update_score jsr play_update_score - //SEG527 [243] phi from play_move_down::@20 to play_move_down::@21 [phi:play_move_down::@20->play_move_down::@21] + //SEG533 [243] 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 - //SEG528 play_move_down::@21 + //SEG534 play_move_down::@21 b21: - //SEG529 [244] call play_spawn_current - //SEG530 [250] phi from play_move_down::@21 to play_spawn_current [phi:play_move_down::@21->play_spawn_current] + //SEG535 [244] call play_spawn_current + //SEG536 [250] phi from play_move_down::@21 to play_spawn_current [phi:play_move_down::@21->play_spawn_current] play_spawn_current_from_b21: jsr play_spawn_current - //SEG531 [245] (byte*~) current_piece#80 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG537 [245] (byte*~) current_piece#80 ← (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 - //SEG532 [246] phi from play_move_down::@21 to play_move_down::@7 [phi:play_move_down::@21->play_move_down::@7] + //SEG538 [246] phi from play_move_down::@21 to play_move_down::@7 [phi:play_move_down::@21->play_move_down::@7] b7_from_b21: - //SEG533 [246] phi (byte) current_piece_char#20 = (byte) current_piece_char#12 [phi:play_move_down::@21->play_move_down::@7#0] -- register_copy - //SEG534 [246] phi (byte) current_xpos#33 = (byte) current_xpos#23 [phi:play_move_down::@21->play_move_down::@7#1] -- register_copy - //SEG535 [246] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#16 [phi:play_move_down::@21->play_move_down::@7#2] -- register_copy - //SEG536 [246] phi (byte) current_orientation#29 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@21->play_move_down::@7#3] -- vbuz1=vbuc1 + //SEG539 [246] phi (byte) current_piece_char#20 = (byte) current_piece_char#12 [phi:play_move_down::@21->play_move_down::@7#0] -- register_copy + //SEG540 [246] phi (byte) current_xpos#33 = (byte) current_xpos#23 [phi:play_move_down::@21->play_move_down::@7#1] -- register_copy + //SEG541 [246] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#16 [phi:play_move_down::@21->play_move_down::@7#2] -- register_copy + //SEG542 [246] phi (byte) current_orientation#29 = (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 - //SEG537 [246] phi (byte*) current_piece#20 = (byte*~) current_piece#80 [phi:play_move_down::@21->play_move_down::@7#4] -- register_copy - //SEG538 [246] phi (byte) level_bcd#21 = (byte) level_bcd#14 [phi:play_move_down::@21->play_move_down::@7#5] -- register_copy - //SEG539 [246] phi (dword) score_bcd#20 = (dword) score_bcd#12 [phi:play_move_down::@21->play_move_down::@7#6] -- register_copy - //SEG540 [246] phi (word) lines_bcd#20 = (word) lines_bcd#13 [phi:play_move_down::@21->play_move_down::@7#7] -- register_copy - //SEG541 [246] phi (byte) current_ypos#29 = (byte) current_ypos#18 [phi:play_move_down::@21->play_move_down::@7#8] -- register_copy + //SEG543 [246] phi (byte*) current_piece#20 = (byte*~) current_piece#80 [phi:play_move_down::@21->play_move_down::@7#4] -- register_copy + //SEG544 [246] phi (byte) level_bcd#25 = (byte) level_bcd#15 [phi:play_move_down::@21->play_move_down::@7#5] -- register_copy + //SEG545 [246] phi (byte) current_movedown_slow#30 = (byte) current_movedown_slow#19 [phi:play_move_down::@21->play_move_down::@7#6] -- register_copy + //SEG546 [246] phi (byte) level#24 = (byte) level#14 [phi:play_move_down::@21->play_move_down::@7#7] -- register_copy + //SEG547 [246] phi (dword) score_bcd#20 = (dword) score_bcd#12 [phi:play_move_down::@21->play_move_down::@7#8] -- register_copy + //SEG548 [246] phi (word) lines_bcd#20 = (word) lines_bcd#13 [phi:play_move_down::@21->play_move_down::@7#9] -- register_copy + //SEG549 [246] phi (byte) current_ypos#29 = (byte) current_ypos#18 [phi:play_move_down::@21->play_move_down::@7#10] -- register_copy jmp b7 - //SEG542 play_move_down::@7 + //SEG550 play_move_down::@7 b7: - //SEG543 [247] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG551 [247] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] breturn_from_b7: - //SEG544 [247] phi (byte) current_piece_char#1 = (byte) current_piece_char#20 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG545 [247] phi (byte) current_xpos#1 = (byte) current_xpos#33 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG546 [247] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#26 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG547 [247] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG548 [247] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG549 [247] phi (byte) level_bcd#11 = (byte) level_bcd#21 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG550 [247] phi (dword) score_bcd#10 = (dword) score_bcd#20 [phi:play_move_down::@7->play_move_down::@return#6] -- register_copy - //SEG551 [247] phi (word) lines_bcd#11 = (word) lines_bcd#20 [phi:play_move_down::@7->play_move_down::@return#7] -- register_copy - //SEG552 [247] phi (byte) current_ypos#13 = (byte) current_ypos#29 [phi:play_move_down::@7->play_move_down::@return#8] -- register_copy - //SEG553 [247] phi (byte) current_movedown_counter#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#9] -- vbuz1=vbuc1 + //SEG552 [247] phi (byte) current_piece_char#1 = (byte) current_piece_char#20 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG553 [247] phi (byte) current_xpos#1 = (byte) current_xpos#33 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG554 [247] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#26 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG555 [247] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy + //SEG556 [247] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy + //SEG557 [247] phi (byte) level_bcd#13 = (byte) level_bcd#25 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG558 [247] phi (byte) current_movedown_slow#17 = (byte) current_movedown_slow#30 [phi:play_move_down::@7->play_move_down::@return#6] -- register_copy + //SEG559 [247] phi (byte) level#12 = (byte) level#24 [phi:play_move_down::@7->play_move_down::@return#7] -- register_copy + //SEG560 [247] phi (dword) score_bcd#10 = (dword) score_bcd#20 [phi:play_move_down::@7->play_move_down::@return#8] -- register_copy + //SEG561 [247] phi (word) lines_bcd#11 = (word) lines_bcd#20 [phi:play_move_down::@7->play_move_down::@return#9] -- register_copy + //SEG562 [247] phi (byte) current_ypos#13 = (byte) current_ypos#29 [phi:play_move_down::@7->play_move_down::@return#10] -- register_copy + //SEG563 [247] phi (byte) current_movedown_counter#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#11] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG554 [247] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#10] -- vbuxx=vbuc1 + //SEG564 [247] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#12] -- vbuxx=vbuc1 ldx #1 jmp breturn - //SEG555 [247] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG565 [247] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] breturn_from_b4: - //SEG556 [247] phi (byte) current_piece_char#1 = (byte) current_piece_char#15 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG557 [247] phi (byte) current_xpos#1 = (byte) current_xpos#10 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG558 [247] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#20 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG559 [247] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG560 [247] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG561 [247] phi (byte) level_bcd#11 = (byte) level_bcd#16 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG562 [247] phi (dword) score_bcd#10 = (dword) score_bcd#14 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG563 [247] phi (word) lines_bcd#11 = (word) lines_bcd#15 [phi:play_move_down::@4->play_move_down::@return#7] -- register_copy - //SEG564 [247] phi (byte) current_ypos#13 = (byte) current_ypos#21 [phi:play_move_down::@4->play_move_down::@return#8] -- register_copy - //SEG565 [247] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#9] -- register_copy - //SEG566 [247] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#10] -- vbuxx=vbuc1 + //SEG566 [247] phi (byte) current_piece_char#1 = (byte) current_piece_char#15 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG567 [247] phi (byte) current_xpos#1 = (byte) current_xpos#10 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG568 [247] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#20 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG569 [247] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy + //SEG570 [247] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy + //SEG571 [247] phi (byte) level_bcd#13 = (byte) level_bcd#20 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG572 [247] phi (byte) current_movedown_slow#17 = (byte) current_movedown_slow#12 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy + //SEG573 [247] phi (byte) level#12 = (byte) level#19 [phi:play_move_down::@4->play_move_down::@return#7] -- register_copy + //SEG574 [247] phi (dword) score_bcd#10 = (dword) score_bcd#14 [phi:play_move_down::@4->play_move_down::@return#8] -- register_copy + //SEG575 [247] phi (word) lines_bcd#11 = (word) lines_bcd#15 [phi:play_move_down::@4->play_move_down::@return#9] -- register_copy + //SEG576 [247] phi (byte) current_ypos#13 = (byte) current_ypos#21 [phi:play_move_down::@4->play_move_down::@return#10] -- register_copy + //SEG577 [247] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#11] -- register_copy + //SEG578 [247] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#12] -- vbuxx=vbuc1 ldx #0 jmp breturn - //SEG567 play_move_down::@return + //SEG579 play_move_down::@return breturn: - //SEG568 [248] return + //SEG580 [248] return rts - //SEG569 play_move_down::@6 + //SEG581 play_move_down::@6 b6: - //SEG570 [249] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 -- vbuz1=_inc_vbuz1 + //SEG582 [249] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG571 [246] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG583 [246] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] b7_from_b6: - //SEG572 [246] phi (byte) current_piece_char#20 = (byte) current_piece_char#15 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG573 [246] phi (byte) current_xpos#33 = (byte) current_xpos#10 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG574 [246] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#20 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG575 [246] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG576 [246] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG577 [246] phi (byte) level_bcd#21 = (byte) level_bcd#16 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy - //SEG578 [246] phi (dword) score_bcd#20 = (dword) score_bcd#14 [phi:play_move_down::@6->play_move_down::@7#6] -- register_copy - //SEG579 [246] phi (word) lines_bcd#20 = (word) lines_bcd#15 [phi:play_move_down::@6->play_move_down::@7#7] -- register_copy - //SEG580 [246] phi (byte) current_ypos#29 = (byte) current_ypos#0 [phi:play_move_down::@6->play_move_down::@7#8] -- register_copy + //SEG584 [246] phi (byte) current_piece_char#20 = (byte) current_piece_char#15 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG585 [246] phi (byte) current_xpos#33 = (byte) current_xpos#10 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG586 [246] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#20 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG587 [246] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy + //SEG588 [246] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy + //SEG589 [246] phi (byte) level_bcd#25 = (byte) level_bcd#20 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG590 [246] phi (byte) current_movedown_slow#30 = (byte) current_movedown_slow#12 [phi:play_move_down::@6->play_move_down::@7#6] -- register_copy + //SEG591 [246] phi (byte) level#24 = (byte) level#19 [phi:play_move_down::@6->play_move_down::@7#7] -- register_copy + //SEG592 [246] phi (dword) score_bcd#20 = (dword) score_bcd#14 [phi:play_move_down::@6->play_move_down::@7#8] -- register_copy + //SEG593 [246] phi (word) lines_bcd#20 = (word) lines_bcd#15 [phi:play_move_down::@6->play_move_down::@7#9] -- register_copy + //SEG594 [246] phi (byte) current_ypos#29 = (byte) current_ypos#0 [phi:play_move_down::@6->play_move_down::@7#10] -- register_copy jmp b7 } -//SEG581 play_spawn_current +//SEG595 play_spawn_current play_spawn_current: { .label _3 = 4 - //SEG582 [251] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] + //SEG596 [251] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] b1_from_play_spawn_current: - //SEG583 [251] 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 + //SEG597 [251] 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 - //SEG584 play_spawn_current::@1 + //SEG598 play_spawn_current::@1 b1: - //SEG585 [252] 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 + //SEG599 [252] 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 - //SEG586 play_spawn_current::@3 + //SEG600 play_spawn_current::@3 b3: - //SEG587 [253] (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 + //SEG601 [253] (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 - //SEG588 [254] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 + //SEG602 [254] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 ldy _3 lda PIECES,y sta current_piece_gfx lda PIECES+1,y sta current_piece_gfx+1 - //SEG589 [255] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG603 [255] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_START_X,x sta current_xpos - //SEG590 [256] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG604 [256] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_START_Y,x sta current_ypos - //SEG591 [257] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG605 [257] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_CHARS,x sta current_piece_char jmp breturn - //SEG592 play_spawn_current::@return + //SEG606 play_spawn_current::@return breturn: - //SEG593 [258] return + //SEG607 [258] return rts - //SEG594 [259] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] + //SEG608 [259] 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 - //SEG595 play_spawn_current::@2 + //SEG609 play_spawn_current::@2 b2: - //SEG596 [260] call sid_rnd + //SEG610 [260] call sid_rnd jsr sid_rnd - //SEG597 [261] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + //SEG611 [261] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 // (byte) sid_rnd::return#2 = (byte) sid_rnd::return#0 // register copy reg byte a jmp b7 - //SEG598 play_spawn_current::@7 + //SEG612 play_spawn_current::@7 b7: - //SEG599 [262] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 + //SEG613 [262] (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 - //SEG600 [263] (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 + //SEG614 [263] (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 - //SEG601 [251] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] + //SEG615 [251] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] b1_from_b7: - //SEG602 [251] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@7->play_spawn_current::@1#0] -- register_copy + //SEG616 [251] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@7->play_spawn_current::@1#0] -- register_copy jmp b1 } -//SEG603 sid_rnd +//SEG617 sid_rnd sid_rnd: { - //SEG604 [264] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 + //SEG618 [264] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 lda SID_VOICE3_OSC jmp breturn - //SEG605 sid_rnd::@return + //SEG619 sid_rnd::@return breturn: - //SEG606 [265] return + //SEG620 [265] return rts } -//SEG607 play_update_score +//SEG621 play_update_score play_update_score: { .label lines_before = 4 - .label add_bcd = $27 - //SEG608 [266] 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 + .label add_bcd = $29 + //SEG622 [266] 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 b4 - //SEG609 play_update_score::@4 - b4: - //SEG610 [267] (byte~) play_update_score::$2 ← < (word) lines_bcd#15 -- vbuaa=_lo_vwuz1 + jmp b3 + //SEG623 play_update_score::@3 + b3: + //SEG624 [267] (byte~) play_update_score::$2 ← < (word) lines_bcd#15 -- vbuaa=_lo_vwuz1 lda lines_bcd - //SEG611 [268] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuaa_band_vbuc1 + //SEG625 [268] (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 - //SEG612 [269] (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 + //SEG626 [269] (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 - //SEG613 [270] (dword) play_update_score::add_bcd#0 ← *((const dword[]) score_add_bcd#0 + (byte~) play_update_score::$4) -- vduz1=pduc1_derefidx_vbuaa + //SEG627 [270] (dword) play_update_score::add_bcd#0 ← *((const dword[]) score_add_bcd#0 + (byte~) play_update_score::$4) -- vduz1=pduc1_derefidx_vbuaa tay lda score_add_bcd,y sta add_bcd @@ -16393,9 +17002,9 @@ play_update_score: { sta add_bcd+2 lda score_add_bcd+3,y sta add_bcd+3 - //SEG614 asm { sed } + //SEG628 asm { sed } sed - //SEG615 [272] (word) lines_bcd#23 ← (word) lines_bcd#15 + (byte) play_update_score::removed#0 -- vwuz1=vwuz1_plus_vbuxx + //SEG629 [272] (word) lines_bcd#23 ← (word) lines_bcd#15 + (byte) play_update_score::removed#0 -- vwuz1=vwuz1_plus_vbuxx txa clc adc lines_bcd @@ -16403,7 +17012,7 @@ play_update_score: { lda #0 adc lines_bcd+1 sta lines_bcd+1 - //SEG616 [273] (dword) score_bcd#23 ← (dword) score_bcd#14 + (dword) play_update_score::add_bcd#0 -- vduz1=vduz1_plus_vduz2 + //SEG630 [273] (dword) score_bcd#23 ← (dword) score_bcd#14 + (dword) play_update_score::add_bcd#0 -- vduz1=vduz1_plus_vduz2 lda score_bcd clc adc add_bcd @@ -16417,190 +17026,234 @@ play_update_score: { lda score_bcd+3 adc add_bcd+3 sta score_bcd+3 - //SEG617 asm { cld } + //SEG631 asm { cld } cld - //SEG618 [275] (byte~) play_update_score::$5 ← < (word) lines_bcd#23 -- vbuaa=_lo_vwuz1 + //SEG632 [275] (byte~) play_update_score::$5 ← < (word) lines_bcd#23 -- vbuaa=_lo_vwuz1 lda lines_bcd - //SEG619 [276] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 -- vbuaa=vbuaa_band_vbuc1 + //SEG633 [276] (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 - //SEG620 [277] 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 + //SEG634 [277] 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_b4 - jmp b5 - //SEG621 play_update_score::@5 - b5: - //SEG622 [278] (byte) level_bcd#13 ← ++ (byte) level_bcd#16 -- vbuz1=_inc_vbuz1 + beq breturn_from_b3 + //SEG635 [278] 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 + //SEG636 play_update_score::@4 + b4: + //SEG637 [279] call play_increase_level + jsr play_increase_level + //SEG638 [280] 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: + //SEG639 [280] phi (byte) level_bcd#15 = (byte) level_bcd#20 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#0] -- register_copy + //SEG640 [280] phi (byte) current_movedown_slow#19 = (byte) current_movedown_slow#12 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#1] -- register_copy + //SEG641 [280] phi (byte) level#14 = (byte) level#19 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#2] -- register_copy + //SEG642 [280] phi (dword) score_bcd#12 = (dword) score_bcd#14 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#3] -- register_copy + //SEG643 [280] phi (word) lines_bcd#13 = (word) lines_bcd#15 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#4] -- register_copy + jmp breturn + //SEG644 play_update_score::@return + breturn: + //SEG645 [281] return + rts +} +//SEG646 play_increase_level +play_increase_level: { + //SEG647 [282] (byte) level#16 ← ++ (byte) level#19 -- vbuz1=_inc_vbuz1 + inc level + //SEG648 [283] if((byte) level#16>(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 b4 + //SEG649 play_increase_level::@4 + b4: + //SEG650 [284] (byte) current_movedown_slow#8 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#16) -- vbuz1=pbuc1_derefidx_vbuz2 + ldy level + lda MOVEDOWN_SLOW_SPEEDS,y + sta current_movedown_slow + //SEG651 [285] phi from play_increase_level::@4 to play_increase_level::@2 [phi:play_increase_level::@4->play_increase_level::@2] + b2_from_b4: + //SEG652 [285] phi (byte) current_movedown_slow#20 = (byte) current_movedown_slow#8 [phi:play_increase_level::@4->play_increase_level::@2#0] -- register_copy + jmp b2 + //SEG653 [285] phi from play_increase_level to play_increase_level::@2 [phi:play_increase_level->play_increase_level::@2] + b2_from_play_increase_level: + //SEG654 [285] phi (byte) current_movedown_slow#20 = (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 + //SEG655 play_increase_level::@2 + b2: + //SEG656 [286] (byte) level_bcd#17 ← ++ (byte) level_bcd#20 -- vbuz1=_inc_vbuz1 inc level_bcd - //SEG623 [279] (byte~) play_update_score::$9 ← (byte) level_bcd#13 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG657 [287] (byte~) play_increase_level::$1 ← (byte) level_bcd#17 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 lda #$f and level_bcd - //SEG624 [280] if((byte~) play_update_score::$9!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_update_score::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG658 [288] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@return -- vbuaa_neq_vbuc1_then_la1 cmp #$a - bne breturn_from_b5 + bne breturn_from_b2 jmp b6 - //SEG625 play_update_score::@6 + //SEG659 play_increase_level::@6 b6: - //SEG626 [281] (byte) level_bcd#4 ← (byte) level_bcd#13 + (byte/signed byte/word/signed word/dword/signed dword) 6 -- vbuz1=vbuz1_plus_vbuc1 + //SEG660 [289] (byte) level_bcd#6 ← (byte) level_bcd#17 + (byte/signed byte/word/signed word/dword/signed dword) 6 -- vbuz1=vbuz1_plus_vbuc1 lda #6 clc adc level_bcd sta level_bcd - //SEG627 [282] phi from play_update_score play_update_score::@4 play_update_score::@5 play_update_score::@6 to play_update_score::@return [phi:play_update_score/play_update_score::@4/play_update_score::@5/play_update_score::@6->play_update_score::@return] - breturn_from_play_update_score: - breturn_from_b4: - breturn_from_b5: + //SEG661 [290] phi from play_increase_level::@2 play_increase_level::@6 to play_increase_level::@return [phi:play_increase_level::@2/play_increase_level::@6->play_increase_level::@return] + breturn_from_b2: breturn_from_b6: - //SEG628 [282] phi (byte) level_bcd#14 = (byte) level_bcd#16 [phi:play_update_score/play_update_score::@4/play_update_score::@5/play_update_score::@6->play_update_score::@return#0] -- register_copy - //SEG629 [282] phi (dword) score_bcd#12 = (dword) score_bcd#14 [phi:play_update_score/play_update_score::@4/play_update_score::@5/play_update_score::@6->play_update_score::@return#1] -- register_copy - //SEG630 [282] phi (word) lines_bcd#13 = (word) lines_bcd#15 [phi:play_update_score/play_update_score::@4/play_update_score::@5/play_update_score::@6->play_update_score::@return#2] -- register_copy + //SEG662 [290] phi (byte) level_bcd#18 = (byte) level_bcd#17 [phi:play_increase_level::@2/play_increase_level::@6->play_increase_level::@return#0] -- register_copy jmp breturn - //SEG631 play_update_score::@return + //SEG663 play_increase_level::@return breturn: - //SEG632 [283] return + //SEG664 [291] return rts } -//SEG633 play_remove_lines +//SEG665 play_remove_lines play_remove_lines: { .label c = $c .label x = $a .label y = 4 .label removed = 9 .label full = $b - //SEG634 [285] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] + //SEG666 [293] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] b1_from_play_remove_lines: - //SEG635 [285] 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 + //SEG667 [293] 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 - //SEG636 [285] 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 + //SEG668 [293] 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 - //SEG637 [285] 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 + //SEG669 [293] 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 - //SEG638 [285] 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 + //SEG670 [293] 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 - //SEG639 [285] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] + //SEG671 [293] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] b1_from_b4: - //SEG640 [285] 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 - //SEG641 [285] 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 - //SEG642 [285] 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 - //SEG643 [285] 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 + //SEG672 [293] 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 + //SEG673 [293] 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 + //SEG674 [293] 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 + //SEG675 [293] 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 - //SEG644 play_remove_lines::@1 + //SEG676 play_remove_lines::@1 b1: - //SEG645 [286] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] + //SEG677 [294] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] b2_from_b1: - //SEG646 [286] 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 + //SEG678 [294] 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 - //SEG647 [286] 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 + //SEG679 [294] 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 - //SEG648 [286] 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 - //SEG649 [286] 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 + //SEG680 [294] 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 + //SEG681 [294] 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 - //SEG650 [286] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] + //SEG682 [294] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] b2_from_b3: - //SEG651 [286] 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 - //SEG652 [286] 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 - //SEG653 [286] 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 - //SEG654 [286] 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 + //SEG683 [294] 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 + //SEG684 [294] 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 + //SEG685 [294] 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 + //SEG686 [294] 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 - //SEG655 play_remove_lines::@2 + //SEG687 play_remove_lines::@2 b2: - //SEG656 [287] (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 + //SEG688 [295] (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 - //SEG657 [288] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy + //SEG689 [296] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy dey - //SEG658 [289] 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 + //SEG690 [297] 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 - //SEG659 [290] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] + //SEG691 [298] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] b3_from_b2: - //SEG660 [290] 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 + //SEG692 [298] 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 - //SEG661 play_remove_lines::@3 + //SEG693 play_remove_lines::@3 b3: - //SEG662 [291] *((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 + //SEG694 [299] *((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 - //SEG663 [292] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx + //SEG695 [300] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx dex - //SEG664 [293] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 + //SEG696 [301] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG665 [294] 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 + //SEG697 [302] 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 - //SEG666 play_remove_lines::@9 + //SEG698 play_remove_lines::@9 b9: - //SEG667 [295] 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 + //SEG699 [303] 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 - //SEG668 play_remove_lines::@10 + //SEG700 play_remove_lines::@10 b10: - //SEG669 [296] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuxx=vbuxx_plus_vbuc1 + //SEG701 [304] (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 - //SEG670 [297] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 + //SEG702 [305] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 inc removed - //SEG671 [298] 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] + //SEG703 [306] 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: - //SEG672 [298] 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 - //SEG673 [298] 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 + //SEG704 [306] 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 + //SEG705 [306] 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 - //SEG674 play_remove_lines::@4 + //SEG706 play_remove_lines::@4 b4: - //SEG675 [299] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 + //SEG707 [307] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG676 [300] 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 + //SEG708 [308] 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 - //SEG677 [301] 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] + //SEG709 [309] 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: - //SEG678 [301] 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 + //SEG710 [309] 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 - //SEG679 play_remove_lines::@5 + //SEG711 play_remove_lines::@5 b5: - //SEG680 [302] 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 + //SEG712 [310] 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 - //SEG681 play_remove_lines::@return + //SEG713 play_remove_lines::@return breturn: - //SEG682 [303] return + //SEG714 [311] return rts - //SEG683 play_remove_lines::@6 + //SEG715 play_remove_lines::@6 b6: - //SEG684 [304] *((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 + //SEG716 [312] *((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 - //SEG685 [305] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx + //SEG717 [313] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx dex jmp b5_from_b6 - //SEG686 [306] phi from play_remove_lines::@2 to play_remove_lines::@18 [phi:play_remove_lines::@2->play_remove_lines::@18] + //SEG718 [314] 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 - //SEG687 play_remove_lines::@18 + //SEG719 play_remove_lines::@18 b18: - //SEG688 [290] phi from play_remove_lines::@18 to play_remove_lines::@3 [phi:play_remove_lines::@18->play_remove_lines::@3] + //SEG720 [298] phi from play_remove_lines::@18 to play_remove_lines::@3 [phi:play_remove_lines::@18->play_remove_lines::@3] b3_from_b18: - //SEG689 [290] 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 + //SEG721 [298] 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 } -//SEG690 play_lock_current +//SEG722 play_lock_current play_lock_current: { .label ypos2 = $10 .label playfield_line = 5 @@ -16611,530 +17264,530 @@ play_lock_current: { .label i_3 = 9 .label i_7 = 9 .label i_9 = 9 - //SEG691 [307] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 + //SEG723 [315] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 asl ypos2 - //SEG692 [308] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] + //SEG724 [316] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] b1_from_play_lock_current: - //SEG693 [308] 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 + //SEG725 [316] 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 - //SEG694 [308] 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 + //SEG726 [316] 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 - //SEG695 [308] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy + //SEG727 [316] 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 - //SEG696 play_lock_current::@1 + //SEG728 play_lock_current::@1 b1: - //SEG697 [309] (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 + //SEG729 [317] (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 - //SEG698 [310] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 + //SEG730 [318] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG699 [311] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] + //SEG731 [319] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] b2_from_b1: - //SEG700 [311] 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 + //SEG732 [319] 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 - //SEG701 [311] 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 - //SEG702 [311] 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 + //SEG733 [319] 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 + //SEG734 [319] 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 - //SEG703 play_lock_current::@2 + //SEG735 play_lock_current::@2 b2: - //SEG704 [312] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG736 [320] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG705 [313] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG737 [321] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (current_piece_gfx),y cmp #0 beq b3 jmp b4 - //SEG706 play_lock_current::@4 + //SEG738 play_lock_current::@4 b4: - //SEG707 [314] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG739 [322] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_char ldy col sta (playfield_line),y jmp b3 - //SEG708 play_lock_current::@3 + //SEG740 play_lock_current::@3 b3: - //SEG709 [315] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG741 [323] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG710 [316] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx + //SEG742 [324] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG711 [317] 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 + //SEG743 [325] 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 - //SEG712 play_lock_current::@5 + //SEG744 play_lock_current::@5 b5: - //SEG713 [318] (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 + //SEG745 [326] (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 - //SEG714 [319] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG746 [327] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG715 [320] 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 + //SEG747 [328] 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 - //SEG716 play_lock_current::@return + //SEG748 play_lock_current::@return breturn: - //SEG717 [321] return + //SEG749 [329] return rts - //SEG718 play_lock_current::@7 + //SEG750 play_lock_current::@7 b7: - //SEG719 [322] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG751 [330] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG720 [308] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] + //SEG752 [316] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] b1_from_b7: - //SEG721 [308] 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 - //SEG722 [308] 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 - //SEG723 [308] 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 + //SEG753 [316] 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 + //SEG754 [316] 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 + //SEG755 [316] 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 - //SEG724 play_lock_current::@8 + //SEG756 play_lock_current::@8 b8: - //SEG725 [323] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG757 [331] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG726 [311] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] + //SEG758 [319] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] b2_from_b8: - //SEG727 [311] 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 - //SEG728 [311] 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 - //SEG729 [311] 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 + //SEG759 [319] 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 + //SEG760 [319] 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 + //SEG761 [319] 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 } -//SEG730 keyboard_event_pressed +//SEG762 keyboard_event_pressed keyboard_event_pressed: { .label row_bits = $a .label keycode = 9 - //SEG731 [325] (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 + //SEG763 [333] (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 - //SEG732 [326] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa + //SEG764 [334] (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 - //SEG733 [327] (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 + //SEG765 [335] (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 - //SEG734 [328] (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 + //SEG766 [336] (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 - //SEG735 keyboard_event_pressed::@return + //SEG767 keyboard_event_pressed::@return breturn: - //SEG736 [329] return + //SEG768 [337] return rts } -//SEG737 keyboard_event_get +//SEG769 keyboard_event_get keyboard_event_get: { - //SEG738 [330] 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 + //SEG770 [338] 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 - //SEG739 keyboard_event_get::@3 + //SEG771 keyboard_event_get::@3 b3: - //SEG740 [331] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG772 [339] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG741 [332] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuaa=pbuc1_derefidx_vbuz1 + //SEG773 [340] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuaa=pbuc1_derefidx_vbuz1 ldy keyboard_events_size lda keyboard_events,y - //SEG742 [333] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG774 [341] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] breturn_from_b3: - //SEG743 [333] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG744 [333] 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 + //SEG775 [341] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG776 [341] 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 - //SEG745 [333] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG777 [341] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] breturn_from_keyboard_event_get: - //SEG746 [333] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG747 [333] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuaa=vbuc1 + //SEG778 [341] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG779 [341] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuaa=vbuc1 lda #$ff jmp breturn - //SEG748 keyboard_event_get::@return + //SEG780 keyboard_event_get::@return breturn: - //SEG749 [334] return + //SEG781 [342] return rts } -//SEG750 keyboard_event_scan +//SEG782 keyboard_event_scan keyboard_event_scan: { .label row_scan = $b .label keycode = $a .label row = 9 - //SEG751 [336] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + //SEG783 [344] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] b1_from_keyboard_event_scan: - //SEG752 [336] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG753 [336] 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 + //SEG784 [344] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG785 [344] 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 - //SEG754 [336] 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 + //SEG786 [344] 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 - //SEG755 [336] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG787 [344] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] b1_from_b3: - //SEG756 [336] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG757 [336] 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 - //SEG758 [336] 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 + //SEG788 [344] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG789 [344] 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 + //SEG790 [344] 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 - //SEG759 keyboard_event_scan::@1 + //SEG791 keyboard_event_scan::@1 b1: - //SEG760 [337] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 + //SEG792 [345] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 ldx row - //SEG761 [338] call keyboard_matrix_read + //SEG793 [346] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG762 [339] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + //SEG794 [347] (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 - //SEG763 keyboard_event_scan::@25 + //SEG795 keyboard_event_scan::@25 b25: - //SEG764 [340] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa + //SEG796 [348] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa sta row_scan - //SEG765 [341] 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 + //SEG797 [349] 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 - //SEG766 keyboard_event_scan::@13 + //SEG798 keyboard_event_scan::@13 b13: - //SEG767 [342] (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 + //SEG799 [350] (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 - //SEG768 [343] 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] + //SEG800 [351] 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: - //SEG769 [343] 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 - //SEG770 [343] 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 + //SEG801 [351] 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 + //SEG802 [351] 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 - //SEG771 keyboard_event_scan::@3 + //SEG803 keyboard_event_scan::@3 b3: - //SEG772 [344] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG804 [352] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG773 [345] 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 + //SEG805 [353] 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 - //SEG774 [346] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG806 [354] 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 - //SEG775 keyboard_event_scan::@20 + //SEG807 keyboard_event_scan::@20 b20: - //SEG776 [347] call keyboard_event_pressed - //SEG777 [324] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG808 [355] call keyboard_event_pressed + //SEG809 [332] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] keyboard_event_pressed_from_b20: - //SEG778 [324] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG810 [332] 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 - //SEG779 [348] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + //SEG811 [356] (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 - //SEG780 keyboard_event_scan::@26 + //SEG812 keyboard_event_scan::@26 b26: - //SEG781 [349] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + //SEG813 [357] (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 - //SEG782 [350] 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 + //SEG814 [358] 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 - //SEG783 [351] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG815 [359] 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 - //SEG784 keyboard_event_scan::@21 + //SEG816 keyboard_event_scan::@21 b21: - //SEG785 [352] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] + //SEG817 [360] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] b9_from_b21: - //SEG786 [352] 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 + //SEG818 [360] 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 - //SEG787 [352] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG819 [360] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] b9_from_b26: - //SEG788 [352] 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 + //SEG820 [360] 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 - //SEG789 keyboard_event_scan::@9 + //SEG821 keyboard_event_scan::@9 b9: - //SEG790 [353] call keyboard_event_pressed - //SEG791 [324] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG822 [361] call keyboard_event_pressed + //SEG823 [332] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] keyboard_event_pressed_from_b9: - //SEG792 [324] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG824 [332] 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 - //SEG793 [354] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + //SEG825 [362] (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 - //SEG794 keyboard_event_scan::@27 + //SEG826 keyboard_event_scan::@27 b27: - //SEG795 [355] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + //SEG827 [363] (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 - //SEG796 [356] 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 + //SEG828 [364] 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 - //SEG797 keyboard_event_scan::@22 + //SEG829 keyboard_event_scan::@22 b22: - //SEG798 [357] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG830 [365] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_RSHIFT tax - //SEG799 [358] 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] + //SEG831 [366] 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: - //SEG800 [358] 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 + //SEG832 [366] 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 - //SEG801 keyboard_event_scan::@10 + //SEG833 keyboard_event_scan::@10 b10: - //SEG802 [359] call keyboard_event_pressed - //SEG803 [324] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG834 [367] call keyboard_event_pressed + //SEG835 [332] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] keyboard_event_pressed_from_b10: - //SEG804 [324] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG836 [332] 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 - //SEG805 [360] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + //SEG837 [368] (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 - //SEG806 keyboard_event_scan::@28 + //SEG838 keyboard_event_scan::@28 b28: - //SEG807 [361] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + //SEG839 [369] (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 - //SEG808 [362] 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 + //SEG840 [370] 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 - //SEG809 keyboard_event_scan::@23 + //SEG841 keyboard_event_scan::@23 b23: - //SEG810 [363] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG842 [371] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_CTRL tax - //SEG811 [364] 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] + //SEG843 [372] 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: - //SEG812 [364] 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 + //SEG844 [372] 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 - //SEG813 keyboard_event_scan::@11 + //SEG845 keyboard_event_scan::@11 b11: - //SEG814 [365] call keyboard_event_pressed - //SEG815 [324] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG846 [373] call keyboard_event_pressed + //SEG847 [332] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] keyboard_event_pressed_from_b11: - //SEG816 [324] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG848 [332] 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 - //SEG817 [366] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + //SEG849 [374] (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 - //SEG818 keyboard_event_scan::@29 + //SEG850 keyboard_event_scan::@29 b29: - //SEG819 [367] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + //SEG851 [375] (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 - //SEG820 [368] 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 + //SEG852 [376] 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 - //SEG821 keyboard_event_scan::@24 + //SEG853 keyboard_event_scan::@24 b24: - //SEG822 [369] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuaa=vbuxx_bor_vbuc1 + //SEG854 [377] (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 - //SEG823 keyboard_event_scan::@return + //SEG855 keyboard_event_scan::@return breturn: - //SEG824 [370] return + //SEG856 [378] return rts - //SEG825 [371] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG857 [379] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b4_from_b25: - //SEG826 [371] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG827 [371] 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 - //SEG828 [371] 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 + //SEG858 [379] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG859 [379] 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 + //SEG860 [379] 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 - //SEG829 [371] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG861 [379] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] b4_from_b5: - //SEG830 [371] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG831 [371] 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 - //SEG832 [371] 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 + //SEG862 [379] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG863 [379] 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 + //SEG864 [379] 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 - //SEG833 keyboard_event_scan::@4 + //SEG865 keyboard_event_scan::@4 b4: - //SEG834 [372] (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 + //SEG866 [380] (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 - //SEG835 [373] (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 + //SEG867 [381] (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 - //SEG836 [374] 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 + //SEG868 [382] 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 - //SEG837 keyboard_event_scan::@15 + //SEG869 keyboard_event_scan::@15 b15: - //SEG838 [375] 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 + //SEG870 [383] 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 - //SEG839 keyboard_event_scan::@16 + //SEG871 keyboard_event_scan::@16 b16: - //SEG840 [376] (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 + //SEG872 [384] (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 - //SEG841 [377] 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 + //SEG873 [385] 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 - //SEG842 keyboard_event_scan::@17 + //SEG874 keyboard_event_scan::@17 b17: - //SEG843 [378] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG875 [386] *((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 - //SEG844 [379] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG876 [387] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG845 [380] 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] + //SEG877 [388] 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: - //SEG846 [380] 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 + //SEG878 [388] 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 - //SEG847 keyboard_event_scan::@5 + //SEG879 keyboard_event_scan::@5 b5: - //SEG848 [381] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG880 [389] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG849 [382] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx + //SEG881 [390] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx inx - //SEG850 [383] 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 + //SEG882 [391] 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 - //SEG851 keyboard_event_scan::@19 + //SEG883 keyboard_event_scan::@19 b19: - //SEG852 [384] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG884 [392] *((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 - //SEG853 keyboard_event_scan::@7 + //SEG885 keyboard_event_scan::@7 b7: - //SEG854 [385] (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 + //SEG886 [393] (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 - //SEG855 [386] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa + //SEG887 [394] *((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 - //SEG856 [387] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG888 [395] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5_from_b7 } -//SEG857 keyboard_matrix_read +//SEG889 keyboard_matrix_read keyboard_matrix_read: { - //SEG858 [388] *((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 + //SEG890 [396] *((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 - //SEG859 [389] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 + //SEG891 [397] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff jmp breturn - //SEG860 keyboard_matrix_read::@return + //SEG892 keyboard_matrix_read::@return breturn: - //SEG861 [390] return + //SEG893 [398] return rts } -//SEG862 render_show +//SEG894 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 - //SEG863 [391] 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 + //SEG895 [399] 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 - //SEG864 [392] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] + //SEG896 [400] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] toD0182_from_render_show: jmp toD0182 - //SEG865 render_show::toD0182 + //SEG897 render_show::toD0182 toD0182: - //SEG866 [393] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] + //SEG898 [401] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] b2_from_toD0182: - //SEG867 [393] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@2#0] -- vbuaa=vbuc1 + //SEG899 [401] 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 - //SEG868 render_show::@2 + //SEG900 render_show::@2 b2: - //SEG869 [394] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuaa + //SEG901 [402] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuaa sta D018 - //SEG870 [395] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 + //SEG902 [403] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 lda render_screen_show sta render_screen_showing jmp breturn - //SEG871 render_show::@return + //SEG903 render_show::@return breturn: - //SEG872 [396] return + //SEG904 [404] return rts - //SEG873 [397] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] + //SEG905 [405] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] toD0181_from_render_show: jmp toD0181 - //SEG874 render_show::toD0181 + //SEG906 render_show::toD0181 toD0181: - //SEG875 [393] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] + //SEG907 [401] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] b2_from_toD0181: - //SEG876 [393] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@2#0] -- vbuaa=vbuc1 + //SEG908 [401] 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 } -//SEG877 play_init +//SEG909 play_init play_init: { .label pli = 5 .label idx = 2 - //SEG878 [399] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] + //SEG910 [407] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] b1_from_play_init: - //SEG879 [399] 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 + //SEG911 [407] 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 - //SEG880 [399] 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 + //SEG912 [407] 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 - //SEG881 [399] 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 + //SEG913 [407] 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 - //SEG882 [399] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] + //SEG914 [407] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] b1_from_b1: - //SEG883 [399] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy - //SEG884 [399] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy - //SEG885 [399] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy + //SEG915 [407] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy + //SEG916 [407] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy + //SEG917 [407] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy jmp b1 - //SEG886 play_init::@1 + //SEG918 play_init::@1 b1: - //SEG887 [400] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG919 [408] (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 - //SEG888 [401] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG920 [409] *((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 - //SEG889 [402] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG921 [410] *((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 - //SEG890 [403] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG922 [411] (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 @@ -17142,233 +17795,236 @@ play_init: { bcc !+ inc pli+1 !: - //SEG891 [404] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG923 [412] (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 - //SEG892 [405] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx + //SEG924 [413] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx inx - //SEG893 [406] 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 + //SEG925 [414] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_init::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_LINES-1+1 bne b1_from_b1 jmp b2 - //SEG894 play_init::@2 + //SEG926 play_init::@2 b2: - //SEG895 [407] *((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 + //SEG927 [415] *((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 + //SEG928 [416] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0) -- vbuz1=_deref_pbuc1 + lda MOVEDOWN_SLOW_SPEEDS + sta current_movedown_slow jmp breturn - //SEG896 play_init::@return + //SEG929 play_init::@return breturn: - //SEG897 [408] return + //SEG930 [417] return rts } -//SEG898 sprites_irq_init +//SEG931 sprites_irq_init sprites_irq_init: { - //SEG899 asm { sei } + //SEG932 asm { sei } sei - //SEG900 [410] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG933 [419] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG901 asm { ldaCIA1_INTERRUPT } + //SEG934 asm { ldaCIA1_INTERRUPT } lda CIA1_INTERRUPT - //SEG902 [412] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 + //SEG935 [421] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_DDR_MEMORY_MASK sta PROCPORT_DDR - //SEG903 [413] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 + //SEG936 [422] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - //SEG904 [414] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 + //SEG937 [423] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG905 [415] *((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 + //SEG938 [424] *((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 - //SEG906 [416] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 + //SEG939 [425] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER_FIRST sta RASTER - //SEG907 [417] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG940 [426] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_ENABLE - //SEG908 [418] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 + //SEG941 [427] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 lda #sprites_irq sta HARDWARE_IRQ+1 - //SEG909 asm { cli } + //SEG942 asm { cli } cli jmp breturn - //SEG910 sprites_irq_init::@return + //SEG943 sprites_irq_init::@return breturn: - //SEG911 [420] return + //SEG944 [429] return rts } -//SEG912 sprites_init +//SEG945 sprites_init sprites_init: { .label xpos = 2 - //SEG913 [421] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + //SEG946 [430] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 lda #$f sta SPRITES_ENABLE - //SEG914 [422] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG947 [431] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SPRITES_MC - //SEG915 [423] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG948 [432] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 lda SPRITES_MC sta SPRITES_EXPAND_Y - //SEG916 [424] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG949 [433] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 lda SPRITES_EXPAND_Y sta SPRITES_EXPAND_X - //SEG917 [425] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] + //SEG950 [434] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] b1_from_sprites_init: - //SEG918 [425] 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 + //SEG951 [434] 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 - //SEG919 [425] 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 + //SEG952 [434] 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 - //SEG920 [425] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] + //SEG953 [434] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] b1_from_b1: - //SEG921 [425] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy - //SEG922 [425] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy + //SEG954 [434] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy + //SEG955 [434] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy jmp b1 - //SEG923 sprites_init::@1 + //SEG956 sprites_init::@1 b1: - //SEG924 [426] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG957 [435] (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 - //SEG925 [427] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG958 [436] *((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 - //SEG926 [428] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG959 [437] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #BLACK sta SPRITES_COLS,x - //SEG927 [429] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG960 [438] (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 - //SEG928 [430] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuxx=_inc_vbuxx + //SEG961 [439] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuxx=_inc_vbuxx inx - //SEG929 [431] 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 + //SEG962 [440] 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 - //SEG930 sprites_init::@return + //SEG963 sprites_init::@return breturn: - //SEG931 [432] return + //SEG964 [441] return rts } -//SEG932 render_init +//SEG965 render_init render_init: { .const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_CHARSET)>>6 .label li_1 = 5 .label li_2 = 7 jmp vicSelectGfxBank1 - //SEG933 render_init::vicSelectGfxBank1 + //SEG966 render_init::vicSelectGfxBank1 vicSelectGfxBank1: - //SEG934 [434] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG967 [443] *((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 - //SEG935 [435] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] + //SEG968 [444] 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 - //SEG936 render_init::vicSelectGfxBank1_toDd001 + //SEG969 render_init::vicSelectGfxBank1_toDd001 vicSelectGfxBank1_toDd001: jmp vicSelectGfxBank1_b1 - //SEG937 render_init::vicSelectGfxBank1_@1 + //SEG970 render_init::vicSelectGfxBank1_@1 vicSelectGfxBank1_b1: - //SEG938 [436] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 + //SEG971 [445] *((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 - //SEG939 render_init::@3 + //SEG972 render_init::@3 b3: - //SEG940 [437] *((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 + //SEG973 [446] *((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 - //SEG941 [438] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG974 [447] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BORDERCOL - //SEG942 [439] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG975 [448] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BGCOL1 - //SEG943 [440] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 + //SEG976 [449] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 lda #BLUE sta BGCOL2 - //SEG944 [441] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 + //SEG977 [450] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 lda #CYAN sta BGCOL3 - //SEG945 [442] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 + //SEG978 [451] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 lda #GREY sta BGCOL4 - //SEG946 [443] call render_screen_original - //SEG947 [456] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] + //SEG979 [452] call render_screen_original + //SEG980 [465] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] render_screen_original_from_b3: - //SEG948 [456] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 + //SEG981 [465] 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 - //SEG949 [444] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] + //SEG982 [453] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] b4_from_b3: jmp b4 - //SEG950 render_init::@4 + //SEG983 render_init::@4 b4: - //SEG951 [445] call render_screen_original - //SEG952 [456] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] + //SEG984 [454] call render_screen_original + //SEG985 [465] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] render_screen_original_from_b4: - //SEG953 [456] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_init::@4->render_screen_original#0] -- pbuz1=pbuc1 + //SEG986 [465] 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 - //SEG954 [446] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] + //SEG987 [455] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] b1_from_b4: - //SEG955 [446] 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 + //SEG988 [455] 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 - //SEG956 [446] 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 + //SEG989 [455] 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 - //SEG957 [446] 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 + //SEG990 [455] 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 - //SEG958 [446] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + //SEG991 [455] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] b1_from_b1: - //SEG959 [446] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - //SEG960 [446] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy - //SEG961 [446] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy + //SEG992 [455] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG993 [455] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + //SEG994 [455] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy jmp b1 - //SEG962 render_init::@1 + //SEG995 render_init::@1 b1: - //SEG963 [447] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG996 [456] (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 - //SEG964 [448] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG997 [457] *((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 - //SEG965 [449] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG998 [458] (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 - //SEG966 [450] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG999 [459] *((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 - //SEG967 [451] (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 + //SEG1000 [460] (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 @@ -17376,7 +18032,7 @@ render_init: { bcc !+ inc li_1+1 !: - //SEG968 [452] (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 + //SEG1001 [461] (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 @@ -17384,360 +18040,360 @@ render_init: { bcc !+ inc li_2+1 !: - //SEG969 [453] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx + //SEG1002 [462] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx inx - //SEG970 [454] 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 + //SEG1003 [463] 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 - //SEG971 render_init::@return + //SEG1004 render_init::@return breturn: - //SEG972 [455] return + //SEG1005 [464] return rts } -//SEG973 render_screen_original +//SEG1006 render_screen_original render_screen_original: { .const SPACE = 0 .label screen = $11 - .label cols = $18 + .label cols = $1a .label oscr = 5 .label ocols = 7 .label y = 2 - //SEG974 [457] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] + //SEG1007 [466] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] b1_from_render_screen_original: - //SEG975 [457] 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 + //SEG1008 [466] 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 - //SEG976 [457] 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 + //SEG1009 [466] 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 - //SEG977 [457] 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 + //SEG1010 [466] 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 - //SEG978 [457] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS#0 [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 + //SEG1011 [466] 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 - //SEG979 [457] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#4] -- register_copy + //SEG1012 [466] 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 - //SEG980 [457] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] + //SEG1013 [466] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] b1_from_b7: - //SEG981 [457] 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 - //SEG982 [457] 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 - //SEG983 [457] 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 - //SEG984 [457] 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 - //SEG985 [457] 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 + //SEG1014 [466] 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 + //SEG1015 [466] 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 + //SEG1016 [466] 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 + //SEG1017 [466] 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 + //SEG1018 [466] 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 - //SEG986 render_screen_original::@1 + //SEG1019 render_screen_original::@1 b1: - //SEG987 [458] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] + //SEG1020 [467] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] b2_from_b1: - //SEG988 [458] 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 + //SEG1021 [467] 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 - //SEG989 [458] 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 - //SEG990 [458] 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 + //SEG1022 [467] 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 + //SEG1023 [467] 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 - //SEG991 [458] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] + //SEG1024 [467] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] b2_from_b2: - //SEG992 [458] 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 - //SEG993 [458] 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 - //SEG994 [458] 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 + //SEG1025 [467] 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 + //SEG1026 [467] 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 + //SEG1027 [467] 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 - //SEG995 render_screen_original::@2 + //SEG1028 render_screen_original::@2 b2: - //SEG996 [459] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG1029 [468] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG997 [460] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 + //SEG1030 [469] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG998 [461] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG1031 [470] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG999 [462] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 + //SEG1032 [471] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1000 [463] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx + //SEG1033 [472] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx inx - //SEG1001 [464] 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 + //SEG1034 [473] 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 - //SEG1002 [465] 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] + //SEG1035 [474] 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: - //SEG1003 [465] 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 - //SEG1004 [465] 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 - //SEG1005 [465] 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 - //SEG1006 [465] 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 - //SEG1007 [465] 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 + //SEG1036 [474] 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 + //SEG1037 [474] 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 + //SEG1038 [474] 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 + //SEG1039 [474] 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 + //SEG1040 [474] 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 - //SEG1008 render_screen_original::@3 + //SEG1041 render_screen_original::@3 b3: - //SEG1009 [466] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG1042 [475] *((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 - //SEG1010 [467] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 + //SEG1043 [476] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG1011 [468] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 + //SEG1044 [477] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 inc oscr bne !+ inc oscr+1 !: - //SEG1012 [469] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG1045 [478] *((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 - //SEG1013 [470] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 + //SEG1046 [479] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1014 [471] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 + //SEG1047 [480] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 inc ocols bne !+ inc ocols+1 !: - //SEG1015 [472] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx + //SEG1048 [481] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx inx - //SEG1016 [473] 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 + //SEG1049 [482] 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 - //SEG1017 [474] 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] + //SEG1050 [483] 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: - //SEG1018 [474] 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 - //SEG1019 [474] 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 - //SEG1020 [474] 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 + //SEG1051 [483] 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 + //SEG1052 [483] 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 + //SEG1053 [483] 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 - //SEG1021 render_screen_original::@4 + //SEG1054 render_screen_original::@4 b4: - //SEG1022 [475] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG1055 [484] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG1023 [476] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 + //SEG1056 [485] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG1024 [477] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG1057 [486] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG1025 [478] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 + //SEG1058 [487] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1026 [479] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx + //SEG1059 [488] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx inx - //SEG1027 [480] 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 + //SEG1060 [489] 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 - //SEG1028 render_screen_original::@7 + //SEG1061 render_screen_original::@7 b7: - //SEG1029 [481] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 + //SEG1062 [490] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG1030 [482] 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 + //SEG1063 [491] 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 - //SEG1031 render_screen_original::@return + //SEG1064 render_screen_original::@return breturn: - //SEG1032 [483] return + //SEG1065 [492] return rts } -//SEG1033 sid_rnd_init +//SEG1066 sid_rnd_init sid_rnd_init: { - //SEG1034 [484] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 + //SEG1067 [493] *((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 - //SEG1035 [485] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG1068 [494] *((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 - //SEG1036 sid_rnd_init::@return + //SEG1069 sid_rnd_init::@return breturn: - //SEG1037 [486] return + //SEG1070 [495] return rts } -//SEG1038 sprites_irq +//SEG1071 sprites_irq sprites_irq: { .const toSpritePtr2_return = PLAYFIELD_SPRITES>>6 - //SEG1039 entry interrupt(HARDWARE_CLOBBER) + //SEG1072 entry interrupt(HARDWARE_CLOBBER) sta rega+1 stx regx+1 - //SEG1040 asm { cld } + //SEG1073 asm { cld } cld - //SEG1041 [488] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuaa=vbuz1 + //SEG1074 [497] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuaa=vbuz1 lda irq_sprite_ypos - //SEG1042 [489] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1075 [498] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS - //SEG1043 [490] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1076 [499] *((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 - //SEG1044 [491] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1077 [500] *((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 - //SEG1045 [492] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1078 [501] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS+6 jmp b1 - //SEG1046 sprites_irq::@1 + //SEG1079 sprites_irq::@1 b1: - //SEG1047 [493] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 + //SEG1080 [502] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 lda RASTER cmp irq_sprite_ypos bcc b1 jmp b7 - //SEG1048 sprites_irq::@7 + //SEG1081 sprites_irq::@7 b7: - //SEG1049 [494] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuxx=vbuz1 + //SEG1082 [503] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuxx=vbuz1 ldx irq_sprite_ptr - //SEG1050 [495] 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 + //SEG1083 [504] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 -- vbuz1_eq_0_then_la1 lda render_screen_showing cmp #0 beq b2 jmp b8 - //SEG1051 sprites_irq::@8 + //SEG1084 sprites_irq::@8 b8: - //SEG1052 [496] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx + //SEG1085 [505] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_2 - //SEG1053 [497] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuxx=_inc_vbuxx + //SEG1086 [506] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuxx=_inc_vbuxx inx - //SEG1054 [498] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuxx + //SEG1087 [507] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_2+1 - //SEG1055 [499] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuxx + //SEG1088 [508] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_2+2 - //SEG1056 [500] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuxx=_inc_vbuxx + //SEG1089 [509] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuxx=_inc_vbuxx inx - //SEG1057 [501] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 -- _deref_pbuc1=vbuxx + //SEG1090 [510] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_2+3 jmp b3 - //SEG1058 sprites_irq::@3 + //SEG1091 sprites_irq::@3 b3: - //SEG1059 [502] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz1 + //SEG1092 [511] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz1 inc irq_cnt - //SEG1060 [503] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 + //SEG1093 [512] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 lda irq_cnt cmp #$a beq b4 jmp b10 - //SEG1061 sprites_irq::@10 + //SEG1094 sprites_irq::@10 b10: - //SEG1062 [504] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1095 [513] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_raster_next sta irq_raster_next - //SEG1063 [505] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1096 [514] (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 - //SEG1064 [506] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1097 [515] (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 - //SEG1065 [507] phi from sprites_irq::@10 sprites_irq::@13 to sprites_irq::@5 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5] + //SEG1098 [516] phi from sprites_irq::@10 sprites_irq::@13 to sprites_irq::@5 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5] b5_from_b10: b5_from_b13: - //SEG1066 [507] phi (byte) irq_raster_next#13 = (byte) irq_raster_next#2 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5#0] -- register_copy + //SEG1099 [516] phi (byte) irq_raster_next#13 = (byte) irq_raster_next#2 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5#0] -- register_copy jmp b5 - //SEG1067 sprites_irq::@5 + //SEG1100 sprites_irq::@5 b5: - //SEG1068 [508] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 -- vbuxx=vbuz1 + //SEG1101 [517] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 -- vbuxx=vbuz1 ldx irq_raster_next - //SEG1069 [509] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 + //SEG1102 [518] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 txa and #7 - //SEG1070 [510] if((byte~) sprites_irq::$4!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto sprites_irq::@6 -- vbuaa_neq_vbuc1_then_la1 + //SEG1103 [519] if((byte~) sprites_irq::$4!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto sprites_irq::@6 -- vbuaa_neq_vbuc1_then_la1 cmp #3 bne b6_from_b5 jmp b12 - //SEG1071 sprites_irq::@12 + //SEG1104 sprites_irq::@12 b12: - //SEG1072 [511] (byte) sprites_irq::raster_next#1 ← (byte) sprites_irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuxx_minus_1 + //SEG1105 [520] (byte) sprites_irq::raster_next#1 ← (byte) sprites_irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuxx_minus_1 dex - //SEG1073 [512] phi from sprites_irq::@12 sprites_irq::@5 to sprites_irq::@6 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6] + //SEG1106 [521] phi from sprites_irq::@12 sprites_irq::@5 to sprites_irq::@6 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6] b6_from_b12: b6_from_b5: - //SEG1074 [512] phi (byte) sprites_irq::raster_next#2 = (byte) sprites_irq::raster_next#1 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6#0] -- register_copy + //SEG1107 [521] phi (byte) sprites_irq::raster_next#2 = (byte) sprites_irq::raster_next#1 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6#0] -- register_copy jmp b6 - //SEG1075 sprites_irq::@6 + //SEG1108 sprites_irq::@6 b6: - //SEG1076 [513] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 -- _deref_pbuc1=vbuxx + //SEG1109 [522] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 -- _deref_pbuc1=vbuxx stx RASTER - //SEG1077 [514] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG1110 [523] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS jmp breturn - //SEG1078 sprites_irq::@return + //SEG1111 sprites_irq::@return breturn: - //SEG1079 [515] return - exit interrupt(HARDWARE_CLOBBER) + //SEG1112 [524] return - exit interrupt(HARDWARE_CLOBBER) rega: lda #00 regx: ldx #00 rti - //SEG1080 sprites_irq::@4 + //SEG1113 sprites_irq::@4 b4: - //SEG1081 [516] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 + //SEG1114 [525] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 lda #0 sta irq_cnt - //SEG1082 [517] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 + //SEG1115 [526] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next - //SEG1083 [518] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 + //SEG1116 [527] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 lda #$32 sta irq_sprite_ypos - //SEG1084 [519] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] + //SEG1117 [528] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] toSpritePtr2_from_b4: jmp toSpritePtr2 - //SEG1085 sprites_irq::toSpritePtr2 + //SEG1118 sprites_irq::toSpritePtr2 toSpritePtr2: jmp b13 - //SEG1086 sprites_irq::@13 + //SEG1119 sprites_irq::@13 b13: - //SEG1087 [520] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 + //SEG1120 [529] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 lda #toSpritePtr2_return sta irq_sprite_ptr jmp b5_from_b13 - //SEG1088 sprites_irq::@2 + //SEG1121 sprites_irq::@2 b2: - //SEG1089 [521] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx + //SEG1122 [530] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_1 - //SEG1090 [522] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx + //SEG1123 [531] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx txa clc adc #1 - //SEG1091 [523] *((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 + //SEG1124 [532] *((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 - //SEG1092 [524] *((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 + //SEG1125 [533] *((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 - //SEG1093 [525] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuaa=_inc_vbuaa + //SEG1126 [534] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuaa=_inc_vbuaa clc adc #1 - //SEG1094 [526] *((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 + //SEG1127 [535] *((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 } @@ -17763,6 +18419,7 @@ sprites_irq: { PIECES_START_X: .byte 4, 4, 4, 4, 4, 4, 4 PIECES_START_Y: .byte 1, 1, 1, 1, 1, 0, 1 score_add_bcd: .dword 0, $40, $100, $300, $1200 + MOVEDOWN_SLOW_SPEEDS: .byte $30, $2b, $26, $21, $1c, $17, $12, $d, 8, 6, 5, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 .align $80 screen_lines_1: .fill 2*PLAYFIELD_LINES, 0 .align $40 @@ -17807,8 +18464,8 @@ Removing instruction jmp b14 Removing instruction jmp b22 Removing instruction jmp b23 Removing instruction jmp toSpritePtr1 +Removing instruction jmp b37 Removing instruction jmp b36 -Removing instruction jmp b35 Removing instruction jmp bend Removing instruction jmp b15 Removing instruction jmp b16 @@ -17893,8 +18550,11 @@ Removing instruction jmp breturn Removing instruction jmp b2 Removing instruction jmp b7 Removing instruction jmp breturn +Removing instruction jmp b3 Removing instruction jmp b4 -Removing instruction jmp b5 +Removing instruction jmp breturn +Removing instruction jmp b4 +Removing instruction jmp b2 Removing instruction jmp b6 Removing instruction jmp breturn Removing instruction jmp b1 @@ -17976,6 +18636,8 @@ Removing instruction jmp toSpritePtr2 Removing instruction jmp b13 Succesful ASM optimization Pass5NextJumpElimination Removing instruction lda #0 +Removing instruction lda #0 +Removing instruction lda #0 Removing instruction lda #<0 Removing instruction lda #>0 Removing instruction lda #0 @@ -18016,8 +18678,8 @@ Replacing label b2_from_b9 with b2 Replacing label b4_from_b2 with b4 Replacing label b2_from_b1 with b2 Replacing label breturn_from_play_update_score with breturn -Replacing label breturn_from_b4 with breturn -Replacing label breturn_from_b5 with breturn +Replacing label breturn_from_b3 with breturn +Replacing label breturn_from_b2 with breturn Replacing label b18_from_b2 with b18 Replacing label b2_from_b3 with b2 Replacing label b4_from_b9 with b4 @@ -18045,9 +18707,9 @@ Removing instruction b14: Removing instruction b22: Removing instruction toSpritePtr1_from_b23: Removing instruction toSpritePtr1: -Removing instruction b35_from_b36: -Removing instruction main_from_b35: -Removing instruction bend_from_b35: +Removing instruction b36_from_b37: +Removing instruction main_from_b36: +Removing instruction bend_from_b36: Removing instruction b16_from_b15: Removing instruction b17_from_b16: Removing instruction b18_from_b17: @@ -18095,9 +18757,11 @@ Removing instruction b21_from_b20: Removing instruction play_spawn_current_from_b21: Removing instruction breturn_from_b7: Removing instruction b2_from_b1: +Removing instruction b4_from_b3: Removing instruction breturn_from_play_update_score: +Removing instruction breturn_from_b3: Removing instruction breturn_from_b4: -Removing instruction breturn_from_b5: +Removing instruction breturn_from_b2: Removing instruction breturn_from_b6: Removing instruction b1_from_b4: Removing instruction b2_from_b1: @@ -18154,8 +18818,8 @@ Removing instruction toSpritePtr2_from_b4: Removing instruction toSpritePtr2: Succesful ASM optimization Pass5RedundantLabelElimination Removing instruction b23: +Removing instruction b37: Removing instruction b36: -Removing instruction b35: Removing instruction bend: Removing instruction b15: Removing instruction render_init_from_b15: @@ -18165,7 +18829,7 @@ Removing instruction b18: Removing instruction b19: Removing instruction b20: Removing instruction b21: -Removing instruction render_current_from_b21: +Removing instruction render_moving_from_b21: Removing instruction b1_from_b21: Removing instruction b6: Removing instruction b23: @@ -18177,7 +18841,7 @@ Removing instruction b28: Removing instruction b13: Removing instruction render_playfield_from_b13: Removing instruction b29: -Removing instruction render_current_from_b29: +Removing instruction render_moving_from_b29: Removing instruction b30: Removing instruction b31: Removing instruction b1_from_b31: @@ -18197,7 +18861,7 @@ Removing instruction render_bcd_from_b9: Removing instruction breturn: Removing instruction b2: Removing instruction breturn: -Removing instruction b1_from_render_current: +Removing instruction b1_from_render_moving: Removing instruction breturn: Removing instruction b4_from_b2: Removing instruction b9: @@ -18250,8 +18914,10 @@ Removing instruction breturn: Removing instruction b7: Removing instruction b1_from_b7: Removing instruction breturn: +Removing instruction b3: Removing instruction b4: -Removing instruction b5: +Removing instruction b4: +Removing instruction b2_from_b4: Removing instruction b6: Removing instruction b1_from_play_remove_lines: Removing instruction b3_from_b2: @@ -18318,6 +18984,7 @@ Relabelling long label breturn_from_b8 to b2 Relabelling long label breturn_from_b6 to b3 Relabelling long label b1_from_play_move_down to b3 Relabelling long label breturn_from_b4 to b5 +Relabelling long label b2_from_play_increase_level to b1 Relabelling long label breturn_from_keyboard_event_get to b1 Relabelling long label b9_from_b26 to b2 Relabelling long label b4_from_b25 to b6 @@ -18347,8 +19014,8 @@ FINAL SYMBOL TABLE (label) @14 (label) @22 (label) @23 -(label) @35 (label) @36 +(label) @37 (label) @begin (label) @end (byte*) BGCOL @@ -18509,6 +19176,8 @@ FINAL SYMBOL TABLE (byte) LIGHT_BLUE (byte) LIGHT_GREEN (byte) LIGHT_GREY +(byte[]) MOVEDOWN_SLOW_SPEEDS +(const byte[]) MOVEDOWN_SLOW_SPEEDS#0 MOVEDOWN_SLOW_SPEEDS = { (byte/signed byte/word/signed word/dword/signed dword) 48, (byte/signed byte/word/signed word/dword/signed dword) 43, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 33, (byte/signed byte/word/signed word/dword/signed dword) 28, (byte/signed byte/word/signed word/dword/signed dword) 23, (byte/signed byte/word/signed word/dword/signed dword) 18, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1 } (byte) ORANGE (word[]) PIECES (const word[]) PIECES#0 PIECES = { ((word))(const byte[4*4*4]) PIECE_T#0, ((word))(const byte[4*4*4]) PIECE_S#0, ((word))(const byte[4*4*4]) PIECE_Z#0, ((word))(const byte[4*4*4]) PIECE_J#0, ((word))(const byte[4*4*4]) PIECE_O#0, ((word))(const byte[4*4*4]) PIECE_I#0, ((word))(const byte[4*4*4]) PIECE_L#0 } @@ -18628,54 +19297,60 @@ FINAL SYMBOL TABLE (byte) current_movedown_counter#10 current_movedown_counter zp ZP_BYTE:4 3.931034482758621 (byte) current_movedown_counter#12 current_movedown_counter zp ZP_BYTE:4 10.363636363636363 (byte) current_movedown_fast -(const byte) current_movedown_fast#0 current_movedown_fast = (byte/signed byte/word/signed word/dword/signed dword) 5 +(const byte) current_movedown_fast#0 current_movedown_fast = (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) current_movedown_slow -(const byte) current_movedown_slow#0 current_movedown_slow = (byte/signed byte/word/signed word/dword/signed dword) 50 +(byte) current_movedown_slow#1 current_movedown_slow zp ZP_BYTE:24 0.3076923076923077 +(byte) current_movedown_slow#12 current_movedown_slow zp ZP_BYTE:24 2.296296296296297 +(byte) current_movedown_slow#17 current_movedown_slow zp ZP_BYTE:24 4.0 +(byte) current_movedown_slow#19 current_movedown_slow zp ZP_BYTE:24 1.3333333333333333 +(byte) current_movedown_slow#20 current_movedown_slow zp ZP_BYTE:24 0.5 +(byte) current_movedown_slow#30 current_movedown_slow zp ZP_BYTE:24 6.0 +(byte) current_movedown_slow#8 current_movedown_slow zp ZP_BYTE:24 4.0 (byte) current_orientation -(byte) current_orientation#10 current_orientation zp ZP_BYTE:26 3.371428571428571 -(byte) current_orientation#14 current_orientation zp ZP_BYTE:26 0.32653061224489793 -(byte) current_orientation#19 current_orientation zp ZP_BYTE:26 6.210526315789475 -(byte) current_orientation#29 current_orientation zp ZP_BYTE:26 4.0 -(byte) current_orientation#4 current_orientation zp ZP_BYTE:26 3.0 +(byte) current_orientation#10 current_orientation zp ZP_BYTE:28 3.371428571428571 +(byte) current_orientation#14 current_orientation zp ZP_BYTE:28 0.32653061224489793 +(byte) current_orientation#19 current_orientation zp ZP_BYTE:28 6.210526315789475 +(byte) current_orientation#29 current_orientation zp ZP_BYTE:28 4.0 +(byte) current_orientation#4 current_orientation zp ZP_BYTE:28 3.0 (byte*) current_piece -(byte*) current_piece#10 current_piece zp ZP_WORD:24 1.771428571428571 +(byte*) current_piece#10 current_piece zp ZP_WORD:26 1.771428571428571 (byte*) current_piece#12 current_piece#12 zp ZP_WORD:5 10.0 -(byte*) current_piece#16 current_piece zp ZP_WORD:24 3.428571428571428 -(byte*) current_piece#20 current_piece zp ZP_WORD:24 6.0 -(byte*~) current_piece#73 current_piece zp ZP_WORD:24 4.0 +(byte*) current_piece#16 current_piece zp ZP_WORD:26 3.428571428571428 +(byte*) current_piece#20 current_piece zp ZP_WORD:26 6.0 +(byte*~) current_piece#73 current_piece zp ZP_WORD:26 4.0 (byte*~) current_piece#76 current_piece#76 zp ZP_WORD:5 4.0 (byte*~) current_piece#77 current_piece#77 zp ZP_WORD:5 4.0 (byte*~) current_piece#78 current_piece#78 zp ZP_WORD:5 4.0 (byte*~) current_piece#79 current_piece#79 zp ZP_WORD:5 4.0 -(byte*~) current_piece#80 current_piece zp ZP_WORD:24 4.0 +(byte*~) current_piece#80 current_piece zp ZP_WORD:26 4.0 (byte) current_piece_char -(byte) current_piece_char#1 current_piece_char zp ZP_BYTE:30 4.379310344827585 -(byte) current_piece_char#12 current_piece_char zp ZP_BYTE:30 0.6153846153846154 -(byte) current_piece_char#15 current_piece_char zp ZP_BYTE:30 194.59615384615384 -(byte) current_piece_char#20 current_piece_char zp ZP_BYTE:30 6.0 +(byte) current_piece_char#1 current_piece_char zp ZP_BYTE:32 4.379310344827585 +(byte) current_piece_char#12 current_piece_char zp ZP_BYTE:32 0.6153846153846154 +(byte) current_piece_char#15 current_piece_char zp ZP_BYTE:32 194.59615384615384 +(byte) current_piece_char#20 current_piece_char zp ZP_BYTE:32 6.0 (byte) current_piece_char#64 reg byte x 46.09090909090909 (byte~) current_piece_char#90 reg byte x 4.0 (byte~) current_piece_char#91 reg byte x 22.0 (byte*) current_piece_gfx -(byte*) current_piece_gfx#1 current_piece_gfx zp ZP_WORD:27 0.2962962962962963 +(byte*) current_piece_gfx#1 current_piece_gfx zp ZP_WORD:29 0.2962962962962963 (byte*~) current_piece_gfx#102 current_piece_gfx#102 zp ZP_WORD:5 2.0 (byte*~) current_piece_gfx#103 current_piece_gfx#103 zp ZP_WORD:5 11.0 -(byte*) current_piece_gfx#14 current_piece_gfx zp ZP_WORD:27 6.789473684210528 -(byte*) current_piece_gfx#16 current_piece_gfx zp ZP_WORD:27 0.5 -(byte*) current_piece_gfx#20 current_piece_gfx zp ZP_WORD:27 194.59615384615384 -(byte*) current_piece_gfx#26 current_piece_gfx zp ZP_WORD:27 6.0 -(byte*) current_piece_gfx#3 current_piece_gfx zp ZP_WORD:27 4.0 +(byte*) current_piece_gfx#14 current_piece_gfx zp ZP_WORD:29 6.789473684210528 +(byte*) current_piece_gfx#16 current_piece_gfx zp ZP_WORD:29 0.5 +(byte*) current_piece_gfx#20 current_piece_gfx zp ZP_WORD:29 194.59615384615384 +(byte*) current_piece_gfx#26 current_piece_gfx zp ZP_WORD:29 6.0 +(byte*) current_piece_gfx#3 current_piece_gfx zp ZP_WORD:29 4.0 (byte*) current_piece_gfx#53 current_piece_gfx#53 zp ZP_WORD:5 46.09090909090909 (byte) current_xpos -(byte) current_xpos#1 current_xpos zp ZP_BYTE:29 0.72 -(byte) current_xpos#10 current_xpos zp ZP_BYTE:29 21.557692307692307 +(byte) current_xpos#1 current_xpos zp ZP_BYTE:31 0.72 +(byte) current_xpos#10 current_xpos zp ZP_BYTE:31 21.557692307692307 (byte~) current_xpos#112 current_xpos#112 zp ZP_BYTE:10 1.3333333333333333 (byte~) current_xpos#113 current_xpos#113 zp ZP_BYTE:10 7.333333333333333 -(byte) current_xpos#19 current_xpos zp ZP_BYTE:29 3.139534883720931 -(byte) current_xpos#2 current_xpos zp ZP_BYTE:29 4.0 -(byte) current_xpos#23 current_xpos zp ZP_BYTE:29 0.5333333333333333 -(byte) current_xpos#33 current_xpos zp ZP_BYTE:29 6.0 -(byte) current_xpos#4 current_xpos zp ZP_BYTE:29 4.0 +(byte) current_xpos#19 current_xpos zp ZP_BYTE:31 3.139534883720931 +(byte) current_xpos#2 current_xpos zp ZP_BYTE:31 4.0 +(byte) current_xpos#23 current_xpos zp ZP_BYTE:31 0.5333333333333333 +(byte) current_xpos#33 current_xpos zp ZP_BYTE:31 6.0 +(byte) current_xpos#4 current_xpos zp ZP_BYTE:31 4.0 (byte) current_xpos#47 current_xpos#47 zp ZP_BYTE:10 5.181818181818182 (byte) current_ypos (byte) current_ypos#0 current_ypos zp ZP_BYTE:16 4.0 @@ -18687,22 +19362,22 @@ FINAL SYMBOL TABLE (byte~) current_ypos#87 reg byte y 4.4 (byte) current_ypos#9 reg byte y 15.0 (byte) irq_cnt -(byte) irq_cnt#0 irq_cnt zp ZP_BYTE:36 0.19047619047619047 -(byte) irq_cnt#1 irq_cnt zp ZP_BYTE:36 4.0 -(byte) irq_cnt#14 irq_cnt zp ZP_BYTE:36 20.0 +(byte) irq_cnt#0 irq_cnt zp ZP_BYTE:38 0.19047619047619047 +(byte) irq_cnt#1 irq_cnt zp ZP_BYTE:38 4.0 +(byte) irq_cnt#14 irq_cnt zp ZP_BYTE:38 20.0 (byte) irq_raster_next -(byte) irq_raster_next#0 irq_raster_next zp ZP_BYTE:32 0.17391304347826086 -(byte) irq_raster_next#1 irq_raster_next zp ZP_BYTE:32 1.0 -(byte) irq_raster_next#13 irq_raster_next zp ZP_BYTE:32 6.0 -(byte) irq_raster_next#2 irq_raster_next zp ZP_BYTE:32 1.3333333333333333 +(byte) irq_raster_next#0 irq_raster_next zp ZP_BYTE:34 0.17391304347826086 +(byte) irq_raster_next#1 irq_raster_next zp ZP_BYTE:34 1.0 +(byte) irq_raster_next#13 irq_raster_next zp ZP_BYTE:34 6.0 +(byte) irq_raster_next#2 irq_raster_next zp ZP_BYTE:34 1.3333333333333333 (byte) irq_sprite_ptr -(byte) irq_sprite_ptr#0 irq_sprite_ptr zp ZP_BYTE:35 0.24 -(byte) irq_sprite_ptr#1 irq_sprite_ptr zp ZP_BYTE:35 20.0 -(byte) irq_sprite_ptr#2 irq_sprite_ptr zp ZP_BYTE:35 20.0 +(byte) irq_sprite_ptr#0 irq_sprite_ptr zp ZP_BYTE:37 0.24 +(byte) irq_sprite_ptr#1 irq_sprite_ptr zp ZP_BYTE:37 20.0 +(byte) irq_sprite_ptr#2 irq_sprite_ptr zp ZP_BYTE:37 20.0 (byte) irq_sprite_ypos -(byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:34 0.7083333333333334 -(byte) irq_sprite_ypos#1 irq_sprite_ypos zp ZP_BYTE:34 20.0 -(byte) irq_sprite_ypos#2 irq_sprite_ypos zp ZP_BYTE:34 20.0 +(byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:36 0.7083333333333334 +(byte) irq_sprite_ypos#1 irq_sprite_ypos zp ZP_BYTE:36 20.0 +(byte) irq_sprite_ypos#2 irq_sprite_ypos zp ZP_BYTE:36 20.0 (byte[]) keyboard_char_keycodes (byte()) keyboard_event_get() (label) keyboard_event_get::@3 @@ -18777,15 +19452,15 @@ FINAL SYMBOL TABLE (byte[8]) keyboard_events (const byte[8]) keyboard_events#0 keyboard_events = { fill( 8, 0) } (byte) keyboard_events_size -(byte) keyboard_events_size#1 keyboard_events_size zp ZP_BYTE:31 20002.0 -(byte) keyboard_events_size#10 keyboard_events_size zp ZP_BYTE:31 8100.9000000000015 -(byte) keyboard_events_size#13 keyboard_events_size zp ZP_BYTE:31 97.06451612903226 -(byte) keyboard_events_size#16 keyboard_events_size zp ZP_BYTE:31 3.515151515151515 -(byte) keyboard_events_size#19 keyboard_events_size zp ZP_BYTE:31 18.999999999999996 -(byte) keyboard_events_size#2 keyboard_events_size zp ZP_BYTE:31 20002.0 -(byte) keyboard_events_size#29 keyboard_events_size zp ZP_BYTE:31 429.2857142857143 -(byte) keyboard_events_size#30 keyboard_events_size zp ZP_BYTE:31 10201.2 -(byte) keyboard_events_size#4 keyboard_events_size zp ZP_BYTE:31 3.0 +(byte) keyboard_events_size#1 keyboard_events_size zp ZP_BYTE:33 20002.0 +(byte) keyboard_events_size#10 keyboard_events_size zp ZP_BYTE:33 8100.9000000000015 +(byte) keyboard_events_size#13 keyboard_events_size zp ZP_BYTE:33 97.06451612903226 +(byte) keyboard_events_size#16 keyboard_events_size zp ZP_BYTE:33 3.515151515151515 +(byte) keyboard_events_size#19 keyboard_events_size zp ZP_BYTE:33 18.999999999999996 +(byte) keyboard_events_size#2 keyboard_events_size zp ZP_BYTE:33 20002.0 +(byte) keyboard_events_size#29 keyboard_events_size zp ZP_BYTE:33 429.2857142857143 +(byte) keyboard_events_size#30 keyboard_events_size zp ZP_BYTE:33 10201.2 +(byte) keyboard_events_size#4 keyboard_events_size zp ZP_BYTE:33 3.0 (byte[8]) keyboard_matrix_col_bitmask (const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) @@ -18807,16 +19482,23 @@ FINAL SYMBOL TABLE (byte) keyboard_modifiers#5 reg byte a 20.0 (byte[8]) keyboard_scan_values (const byte[8]) keyboard_scan_values#0 keyboard_scan_values = { fill( 8, 0) } +(byte) level +(byte) level#12 level zp ZP_BYTE:23 4.0 +(byte) level#14 level zp ZP_BYTE:23 1.3333333333333333 +(byte) level#16 level zp ZP_BYTE:23 0.7272727272727273 +(byte) level#19 level zp ZP_BYTE:23 2.2181818181818174 +(byte) level#24 level zp ZP_BYTE:23 6.0 (byte) level_bcd -(byte) level_bcd#11 level_bcd zp ZP_BYTE:23 2.313725490196078 -(byte) level_bcd#13 level_bcd zp ZP_BYTE:23 2.6666666666666665 -(byte) level_bcd#14 level_bcd zp ZP_BYTE:23 1.6666666666666665 -(byte) level_bcd#16 level_bcd zp ZP_BYTE:23 2.25925925925926 -(byte) level_bcd#21 level_bcd zp ZP_BYTE:23 6.0 -(byte) level_bcd#4 level_bcd zp ZP_BYTE:23 4.0 +(byte) level_bcd#13 level_bcd zp ZP_BYTE:25 2.313725490196078 +(byte) level_bcd#15 level_bcd zp ZP_BYTE:25 1.3333333333333333 +(byte) level_bcd#17 level_bcd zp ZP_BYTE:25 2.6666666666666665 +(byte) level_bcd#18 level_bcd zp ZP_BYTE:25 2.0 +(byte) level_bcd#20 level_bcd zp ZP_BYTE:25 2.0677966101694913 +(byte) level_bcd#25 level_bcd zp ZP_BYTE:25 6.0 +(byte) level_bcd#6 level_bcd zp ZP_BYTE:25 4.0 (word) lines_bcd (word) lines_bcd#11 lines_bcd zp ZP_WORD:17 2.352941176470588 -(word) lines_bcd#13 lines_bcd zp ZP_WORD:17 1.6666666666666665 +(word) lines_bcd#13 lines_bcd zp ZP_WORD:17 1.3333333333333333 (word) lines_bcd#15 lines_bcd zp ZP_WORD:17 2.5416666666666656 (word) lines_bcd#20 lines_bcd zp ZP_WORD:17 6.0 (word) lines_bcd#23 lines_bcd zp ZP_WORD:17 1.0 @@ -18847,8 +19529,8 @@ FINAL SYMBOL TABLE (byte) main::key_event (byte) main::key_event#0 key_event zp ZP_BYTE:15 36.72727272727273 (byte) main::render -(byte) main::render#1 render zp ZP_BYTE:37 40.4 -(byte) main::render#2 render zp ZP_BYTE:37 40.4 +(byte) main::render#1 render zp ZP_BYTE:39 40.4 +(byte) main::render#2 render zp ZP_BYTE:39 40.4 (byte) main::render#3 reg byte a 202.0 (byte()) play_collision((byte) play_collision::xpos , (byte) play_collision::ypos , (byte) play_collision::orientation) (byte~) play_collision::$7 reg byte a 20002.0 @@ -18871,7 +19553,7 @@ FINAL SYMBOL TABLE (byte) play_collision::col#2 col zp ZP_BYTE:14 6375.75 (byte~) play_collision::col#9 col zp ZP_BYTE:14 2002.0 (byte) play_collision::i -(byte) play_collision::i#1 i zp ZP_BYTE:38 1615.6153846153845 +(byte) play_collision::i#1 i zp ZP_BYTE:40 1615.6153846153845 (byte~) play_collision::i#11 i#11 zp ZP_BYTE:13 2002.0 (byte~) play_collision::i#13 i#13 zp ZP_BYTE:13 20002.0 (byte) play_collision::i#2 i#2 zp ZP_BYTE:13 15502.0 @@ -18911,6 +19593,12 @@ FINAL SYMBOL TABLE (byte) play_collision::ypos2#0 ypos2 zp ZP_BYTE:11 4.0 (byte) play_collision::ypos2#1 ypos2 zp ZP_BYTE:11 500.5 (byte) play_collision::ypos2#2 ypos2 zp ZP_BYTE:11 867.0666666666667 +(void()) play_increase_level() +(byte~) play_increase_level::$1 reg byte a 4.0 +(label) play_increase_level::@2 +(label) play_increase_level::@4 +(label) play_increase_level::@6 +(label) play_increase_level::@return (void()) play_init() (byte~) play_init::$1 reg byte a 22.0 (label) play_init::@1 @@ -19080,13 +19768,11 @@ FINAL SYMBOL TABLE (byte~) play_update_score::$2 reg byte a 4.0 (byte~) play_update_score::$4 reg byte a 4.0 (byte~) play_update_score::$5 reg byte a 4.0 -(byte~) play_update_score::$9 reg byte a 4.0 +(label) play_update_score::@3 (label) play_update_score::@4 -(label) play_update_score::@5 -(label) play_update_score::@6 (label) play_update_score::@return (dword) play_update_score::add_bcd -(dword) play_update_score::add_bcd#0 add_bcd zp ZP_DWORD:39 1.3333333333333333 +(dword) play_update_score::add_bcd#0 add_bcd zp ZP_DWORD:41 1.3333333333333333 (byte) play_update_score::lines_after (byte) play_update_score::lines_after#0 reg byte a 4.0 (byte) play_update_score::lines_before @@ -19134,42 +19820,6 @@ FINAL SYMBOL TABLE (byte*) render_bcd::screen_pos#1 screen_pos zp ZP_WORD:7 20.0 (byte*) render_bcd::screen_pos#2 screen_pos zp ZP_WORD:7 4.0 (byte*) render_bcd::screen_pos#3 screen_pos zp ZP_WORD:7 2.0 -(void()) render_current() -(byte~) render_current::$5 reg byte a 202.0 -(label) render_current::@1 -(label) render_current::@10 -(label) render_current::@13 -(label) render_current::@2 -(label) render_current::@3 -(label) render_current::@4 -(label) render_current::@5 -(label) render_current::@7 -(label) render_current::@9 -(label) render_current::@return -(byte) render_current::c -(byte) render_current::c#1 c zp ZP_BYTE:15 1501.5 -(byte) render_current::c#2 c zp ZP_BYTE:15 286.0 -(byte) render_current::current_cell -(byte) render_current::current_cell#0 reg byte a 1001.0 -(byte) render_current::i -(byte) render_current::i#1 i zp ZP_BYTE:13 202.0 -(byte) render_current::i#10 i zp ZP_BYTE:13 429.0 -(byte) render_current::i#3 i zp ZP_BYTE:13 50.5 -(byte) render_current::i#4 i zp ZP_BYTE:13 1552.0 -(byte) render_current::i#8 i zp ZP_BYTE:13 300.75 -(byte) render_current::l -(byte) render_current::l#1 l zp ZP_BYTE:12 151.5 -(byte) render_current::l#4 l zp ZP_BYTE:12 11.222222222222221 -(byte*) render_current::screen_line -(byte*) render_current::screen_line#0 screen_line zp ZP_WORD:7 100.18181818181819 -(byte) render_current::xpos -(byte) render_current::xpos#0 xpos zp ZP_BYTE:14 202.0 -(byte) render_current::xpos#1 xpos zp ZP_BYTE:14 667.3333333333334 -(byte) render_current::xpos#2 xpos zp ZP_BYTE:14 684.1666666666667 -(byte) render_current::ypos2 -(byte) render_current::ypos2#0 ypos2 zp ZP_BYTE:11 4.0 -(byte) render_current::ypos2#1 ypos2 zp ZP_BYTE:11 67.33333333333333 -(byte) render_current::ypos2#2 ypos2 zp ZP_BYTE:11 29.823529411764707 (void()) render_init() (byte~) render_init::$13 reg byte a 22.0 (byte~) render_init::$14 reg byte a 22.0 @@ -19198,6 +19848,42 @@ FINAL SYMBOL TABLE (byte*) render_init::vicSelectGfxBank1_toDd001_gfx (byte) render_init::vicSelectGfxBank1_toDd001_return (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 vicSelectGfxBank1_toDd001_return = (byte/signed byte/word/signed word/dword/signed dword) 3^>((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 6 +(void()) render_moving() +(byte~) render_moving::$5 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::@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::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#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::screen_line +(byte*) render_moving::screen_line#0 screen_line zp ZP_WORD:7 100.18181818181819 +(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::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 (void()) render_playfield() (byte~) render_playfield::$2 reg byte a 202.0 (byte~) render_playfield::$3 reg byte a 202.0 @@ -19248,13 +19934,13 @@ FINAL SYMBOL TABLE (byte) render_screen_original::SPACE (const byte) render_screen_original::SPACE#0 SPACE = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) render_screen_original::cols -(byte*) render_screen_original::cols#1 cols zp ZP_WORD:24 101.0 -(byte*) render_screen_original::cols#2 cols zp ZP_WORD:24 75.75 -(byte*) render_screen_original::cols#3 cols zp ZP_WORD:24 42.599999999999994 -(byte*) render_screen_original::cols#4 cols zp ZP_WORD:24 78.5 -(byte*) render_screen_original::cols#5 cols zp ZP_WORD:24 80.8 -(byte*) render_screen_original::cols#6 cols zp ZP_WORD:24 101.0 -(byte*) render_screen_original::cols#7 cols zp ZP_WORD:24 22.0 +(byte*) render_screen_original::cols#1 cols zp ZP_WORD:26 101.0 +(byte*) render_screen_original::cols#2 cols zp ZP_WORD:26 75.75 +(byte*) render_screen_original::cols#3 cols zp ZP_WORD:26 42.599999999999994 +(byte*) render_screen_original::cols#4 cols zp ZP_WORD:26 78.5 +(byte*) render_screen_original::cols#5 cols zp ZP_WORD:26 80.8 +(byte*) render_screen_original::cols#6 cols zp ZP_WORD:26 101.0 +(byte*) render_screen_original::cols#7 cols zp ZP_WORD:26 22.0 (byte*) render_screen_original::ocols (byte*) render_screen_original::ocols#1 ocols zp ZP_WORD:7 17.75 (byte*) render_screen_original::ocols#2 ocols zp ZP_WORD:7 67.33333333333333 @@ -19293,8 +19979,8 @@ FINAL SYMBOL TABLE (byte) render_screen_show#13 render_screen_show zp ZP_BYTE:2 4.333333333333333 (byte) render_screen_show#16 render_screen_show zp ZP_BYTE:2 0.37777777777777777 (byte) render_screen_showing -(byte) render_screen_showing#0 render_screen_showing zp ZP_BYTE:33 0.5 -(byte) render_screen_showing#1 render_screen_showing zp ZP_BYTE:33 20.0 +(byte) render_screen_showing#0 render_screen_showing zp ZP_BYTE:35 0.5 +(byte) render_screen_showing#1 render_screen_showing zp ZP_BYTE:35 20.0 (void()) render_screen_swap() (label) render_screen_swap::@return (void()) render_show() @@ -19334,10 +20020,10 @@ FINAL SYMBOL TABLE (const dword[]) score_add_bcd#0 score_add_bcd = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 64, (word/signed word/dword/signed dword) 256, (word/signed word/dword/signed dword) 768, (word/signed word/dword/signed dword) 4608 } (dword) score_bcd (dword) score_bcd#10 score_bcd zp ZP_DWORD:19 4.0 -(dword) score_bcd#12 score_bcd zp ZP_DWORD:19 1.6666666666666665 +(dword) score_bcd#12 score_bcd zp ZP_DWORD:19 1.3333333333333333 (dword) score_bcd#14 score_bcd zp ZP_DWORD:19 2.4489795918367347 (dword) score_bcd#20 score_bcd zp ZP_DWORD:19 6.0 -(dword) score_bcd#23 score_bcd zp ZP_DWORD:19 0.8888888888888888 +(dword) score_bcd#23 score_bcd zp ZP_DWORD:19 0.8571428571428571 (byte*[PLAYFIELD_LINES#0]) screen_lines_1 (const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 screen_lines_1 = { fill( PLAYFIELD_LINES#0, 0) } (byte*[PLAYFIELD_LINES#0]) screen_lines_2 @@ -19407,18 +20093,18 @@ zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 play_init::idx#2 play zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_spawn_current::$3 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#53 current_piece_gfx#102 current_piece_gfx#103 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 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_current::screen_line#0 play_collision::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#9 current_ypos#86 current_ypos#87 ] zp ZP_BYTE:9 [ render_screen_render#30 render_screen_render#64 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::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#47 current_xpos#112 current_xpos#113 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::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#90 current_piece_char#91 ] -zp ZP_BYTE:11 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::i#1 keyboard_event_scan::row_scan#0 ] -zp ZP_BYTE:12 [ render_current::l#4 render_current::l#1 play_collision::l#6 play_collision::l#1 play_remove_lines::c#0 ] -zp ZP_BYTE:13 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] -zp ZP_BYTE:14 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 play_collision::col#2 play_collision::col#9 play_collision::col#1 ] -zp ZP_BYTE:15 [ render_current::c#2 render_current::c#1 main::key_event#0 ] +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::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::l#6 play_collision::l#1 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::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] +zp ZP_BYTE:14 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 play_collision::col#2 play_collision::col#9 play_collision::col#1 ] +zp ZP_BYTE:15 [ render_moving::c#2 render_moving::c#1 main::key_event#0 ] reg byte x [ render_screen_render#21 render_screen_render#65 ] reg byte a [ play_move_rotate::return#1 ] reg byte x [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] @@ -19430,12 +20116,14 @@ reg byte x [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_dow zp ZP_BYTE:16 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] zp ZP_WORD:17 [ lines_bcd#20 lines_bcd#13 lines_bcd#15 lines_bcd#11 lines_bcd#23 render_screen_original::screen#7 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#9 render_screen_original::screen#10 render_screen_original::screen#2 render_screen_original::screen#3 ] zp ZP_DWORD:19 [ score_bcd#20 score_bcd#12 score_bcd#14 score_bcd#10 score_bcd#23 ] -zp ZP_BYTE:23 [ level_bcd#21 level_bcd#14 level_bcd#16 level_bcd#11 level_bcd#13 level_bcd#4 ] -zp ZP_WORD:24 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 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:26 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -zp ZP_WORD:27 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 ] -zp ZP_BYTE:29 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] -zp ZP_BYTE:30 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] +zp ZP_BYTE:23 [ level#24 level#14 level#19 level#12 level#16 ] +zp ZP_BYTE:24 [ current_movedown_slow#30 current_movedown_slow#19 current_movedown_slow#12 current_movedown_slow#1 current_movedown_slow#17 current_movedown_slow#20 current_movedown_slow#8 ] +zp ZP_BYTE:25 [ level_bcd#25 level_bcd#15 level_bcd#20 level_bcd#13 level_bcd#18 level_bcd#17 level_bcd#6 ] +zp ZP_WORD:26 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 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_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] +zp ZP_WORD:29 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 ] +zp ZP_BYTE:31 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] +zp ZP_BYTE:32 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] reg byte x [ play_move_down::return#2 ] reg byte x [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] reg byte y [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] @@ -19444,23 +20132,23 @@ reg byte x [ play_lock_current::c#2 play_lock_current::c#1 ] reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] reg byte x [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] -zp ZP_BYTE:31 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] +zp ZP_BYTE:33 [ 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 ] reg byte a [ render_show::d018val#3 ] reg byte x [ play_init::j#2 play_init::j#1 ] reg byte x [ sprites_init::s#2 sprites_init::s#1 ] reg byte x [ render_init::i#2 render_init::i#1 ] reg byte x [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] -zp ZP_BYTE:32 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 irq_raster_next#0 ] +zp ZP_BYTE:34 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 irq_raster_next#0 ] reg byte x [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] -zp ZP_BYTE:33 [ render_screen_showing#0 render_screen_showing#1 ] -zp ZP_BYTE:34 [ irq_sprite_ypos#0 irq_sprite_ypos#2 irq_sprite_ypos#1 ] -zp ZP_BYTE:35 [ irq_sprite_ptr#0 irq_sprite_ptr#2 irq_sprite_ptr#1 ] -zp ZP_BYTE:36 [ irq_cnt#0 irq_cnt#1 irq_cnt#14 ] +zp ZP_BYTE:35 [ render_screen_showing#0 render_screen_showing#1 ] +zp ZP_BYTE:36 [ irq_sprite_ypos#0 irq_sprite_ypos#2 irq_sprite_ypos#1 ] +zp ZP_BYTE:37 [ irq_sprite_ptr#0 irq_sprite_ptr#2 irq_sprite_ptr#1 ] +zp ZP_BYTE:38 [ irq_cnt#0 irq_cnt#1 irq_cnt#14 ] reg byte a [ keyboard_event_get::return#3 ] reg byte a [ play_move_down::key_event#0 ] reg byte a [ play_move_down::return#3 ] reg byte a [ main::$12 ] -zp ZP_BYTE:37 [ main::render#1 main::render#2 ] +zp ZP_BYTE:39 [ main::render#1 main::render#2 ] reg byte a [ play_move_leftright::key_event#0 ] reg byte a [ play_move_leftright::return#4 ] reg byte a [ main::$13 ] @@ -19472,15 +20160,15 @@ 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_current::$5 ] -reg byte a [ render_current::current_cell#0 ] +reg byte a [ render_moving::$5 ] +reg byte a [ render_moving::current_cell#0 ] reg byte a [ render_playfield::$2 ] reg byte a [ render_playfield::$3 ] reg byte a [ play_move_rotate::$2 ] reg byte a [ play_collision::return#13 ] reg byte a [ play_move_rotate::$6 ] reg byte a [ play_move_rotate::$4 ] -zp ZP_BYTE:38 [ play_collision::i#1 ] +zp ZP_BYTE:40 [ play_collision::i#1 ] reg byte a [ play_collision::$7 ] reg byte a [ play_collision::return#12 ] reg byte a [ play_move_leftright::$4 ] @@ -19498,10 +20186,10 @@ reg byte a [ play_spawn_current::$1 ] reg byte a [ sid_rnd::return#0 ] reg byte a [ play_update_score::$2 ] reg byte a [ play_update_score::$4 ] -zp ZP_DWORD:39 [ play_update_score::add_bcd#0 ] +zp ZP_DWORD:41 [ play_update_score::add_bcd#0 ] reg byte a [ play_update_score::$5 ] reg byte a [ play_update_score::lines_after#0 ] -reg byte a [ play_update_score::$9 ] +reg byte a [ play_increase_level::$1 ] reg byte a [ keyboard_event_pressed::$0 ] reg byte a [ keyboard_event_pressed::$1 ] reg byte a [ keyboard_event_pressed::return#11 ] @@ -19535,7 +20223,7 @@ reg byte a [ sprites_irq::ptr#2 ] FINAL ASSEMBLER -Score: 3220221 +Score: 3220374 //SEG0 Basic Upstart .pc = $801 "Basic" @@ -19607,8 +20295,7 @@ Score: 3220221 .const PLAYFIELD_LINES = $16 .const PLAYFIELD_COLS = $a .const IRQ_RASTER_FIRST = $31 - .const current_movedown_slow = $32 - .const current_movedown_fast = 5 + .const current_movedown_fast = 2 .const COLLISION_NONE = 0 .const COLLISION_PLAYFIELD = 1 .const COLLISION_BOTTOM = 2 @@ -19617,24 +20304,26 @@ Score: 3220221 .label PLAYFIELD_SPRITE_PTRS_1 = PLAYFIELD_SCREEN_1+SPRITE_PTRS .label PLAYFIELD_SPRITE_PTRS_2 = PLAYFIELD_SCREEN_2+SPRITE_PTRS .const toSpritePtr1_return = PLAYFIELD_SPRITES>>6 - .label keyboard_events_size = $1f - .label render_screen_showing = $21 - .label irq_raster_next = $20 - .label irq_sprite_ypos = $22 - .label irq_sprite_ptr = $23 - .label irq_cnt = $24 + .label keyboard_events_size = $21 + .label render_screen_showing = $23 + .label irq_raster_next = $22 + .label irq_sprite_ypos = $24 + .label irq_sprite_ptr = $25 + .label irq_cnt = $26 + .label current_movedown_slow = $18 .label current_movedown_counter = 4 .label current_ypos = $10 - .label current_piece_gfx = $1b - .label current_xpos = $1d - .label current_piece_char = $1e - .label current_orientation = $1a - .label level_bcd = $17 + .label current_piece_gfx = $1d + .label current_xpos = $1f + .label current_piece_char = $20 + .label current_orientation = $1c + .label level_bcd = $19 .label render_screen_render = 3 .label render_screen_show = 2 .label lines_bcd = $11 .label score_bcd = $13 - .label current_piece = $18 + .label level = $17 + .label current_piece = $1a .label current_piece_12 = 5 .label render_screen_render_30 = 9 .label current_xpos_47 = $a @@ -19668,31 +20357,31 @@ bbegin: sta irq_sprite_ypos //SEG13 [8] phi from @23 to toSpritePtr1 [phi:@23->toSpritePtr1] //SEG14 toSpritePtr1 -//SEG15 @36 +//SEG15 @37 //SEG16 [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 -- vbuz1=vbuc1 lda #toSpritePtr1_return sta irq_sprite_ptr //SEG17 [10] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 lda #0 sta irq_cnt -//SEG18 [11] phi from @36 to @35 [phi:@36->@35] -//SEG19 @35 +//SEG18 [11] phi from @37 to @36 [phi:@37->@36] +//SEG19 @36 //SEG20 [12] call main -//SEG21 [14] phi from @35 to main [phi:@35->main] +//SEG21 [14] phi from @36 to main [phi:@36->main] jsr main -//SEG22 [13] phi from @35 to @end [phi:@35->@end] +//SEG22 [13] phi from @36 to @end [phi:@36->@end] //SEG23 @end //SEG24 main main: { .label key_event = $f - .label render = $25 + .label render = $27 //SEG25 [15] call sid_rnd_init jsr sid_rnd_init //SEG26 main::@15 //SEG27 asm { sei } sei //SEG28 [17] call render_init - //SEG29 [433] phi from main::@15 to render_init [phi:main::@15->render_init] + //SEG29 [442] phi from main::@15 to render_init [phi:main::@15->render_init] jsr render_init //SEG30 [18] phi from main::@15 to main::@16 [phi:main::@15->main::@16] //SEG31 main::@16 @@ -19705,7 +20394,7 @@ main: { //SEG36 [22] phi from main::@17 to main::@18 [phi:main::@17->main::@18] //SEG37 main::@18 //SEG38 [23] call play_init - //SEG39 [398] phi from main::@18 to play_init [phi:main::@18->play_init] + //SEG39 [406] phi from main::@18 to play_init [phi:main::@18->play_init] jsr play_init //SEG40 [24] phi from main::@18 to main::@19 [phi:main::@18->main::@19] //SEG41 main::@19 @@ -19732,16 +20421,16 @@ main: { sta current_piece_gfx_102+1 //SEG53 [31] (byte~) current_piece_char#90 ← (byte) current_piece_char#12 -- vbuxx=vbuz1 ldx current_piece_char - //SEG54 [32] call render_current - //SEG55 [110] phi from main::@21 to render_current [phi:main::@21->render_current] - //SEG56 [110] phi (byte) current_piece_char#64 = (byte~) current_piece_char#90 [phi:main::@21->render_current#0] -- register_copy - //SEG57 [110] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#102 [phi:main::@21->render_current#1] -- register_copy - //SEG58 [110] phi (byte) current_xpos#47 = (byte~) current_xpos#112 [phi:main::@21->render_current#2] -- register_copy - //SEG59 [110] phi (byte) render_screen_render#30 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->render_current#3] -- vbuz1=vbuc1 + //SEG54 [32] call render_moving + //SEG55 [110] phi from main::@21 to render_moving [phi:main::@21->render_moving] + //SEG56 [110] phi (byte) current_piece_char#64 = (byte~) current_piece_char#90 [phi:main::@21->render_moving#0] -- register_copy + //SEG57 [110] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#102 [phi:main::@21->render_moving#1] -- register_copy + //SEG58 [110] phi (byte) current_xpos#47 = (byte~) current_xpos#112 [phi:main::@21->render_moving#2] -- register_copy + //SEG59 [110] phi (byte) render_screen_render#30 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->render_moving#3] -- vbuz1=vbuc1 lda #$40 sta render_screen_render_30 - //SEG60 [110] phi (byte) current_ypos#9 = (byte~) current_ypos#86 [phi:main::@21->render_current#4] -- register_copy - jsr render_current + //SEG60 [110] phi (byte) current_ypos#9 = (byte~) current_ypos#86 [phi:main::@21->render_moving#4] -- register_copy + jsr render_moving //SEG61 [33] (byte*~) current_piece#73 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 ldy play_spawn_current._3 lda PIECES,y @@ -19749,324 +20438,330 @@ main: { lda PIECES+1,y sta current_piece+1 //SEG62 [34] phi from main::@21 to main::@1 [phi:main::@21->main::@1] - //SEG63 [34] phi (byte) level_bcd#16 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:main::@21->main::@1#0] -- vbuz1=vbuc1 - lda #1 - sta level_bcd - //SEG64 [34] phi (dword) score_bcd#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#1] -- vduz1=vbuc1 + //SEG63 [34] phi (byte) level_bcd#20 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#0] -- vbuz1=vbuc1 lda #0 + sta level_bcd + //SEG64 [34] phi (byte) level#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#1] -- vbuz1=vbuc1 + sta level + //SEG65 [34] phi (dword) score_bcd#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#2] -- vduz1=vbuc1 sta score_bcd sta score_bcd+1 sta score_bcd+2 sta score_bcd+3 - //SEG65 [34] phi (word) lines_bcd#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#2] -- vwuz1=vbuc1 + //SEG66 [34] phi (word) lines_bcd#15 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#3] -- vwuz1=vbuc1 sta lines_bcd sta lines_bcd+1 - //SEG66 [34] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#3] -- vbuz1=vbuc1 + //SEG67 [34] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#4] -- vbuz1=vbuc1 sta current_movedown_counter - //SEG67 [34] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#4] -- vbuz1=vbuc1 + //SEG68 [34] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#5] -- vbuz1=vbuc1 sta keyboard_events_size - //SEG68 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#12 [phi:main::@21->main::@1#5] -- register_copy - //SEG69 [34] phi (byte) current_ypos#21 = (byte) current_ypos#18 [phi:main::@21->main::@1#6] -- register_copy - //SEG70 [34] phi (byte) current_xpos#10 = (byte) current_xpos#23 [phi:main::@21->main::@1#7] -- register_copy - //SEG71 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#16 [phi:main::@21->main::@1#8] -- register_copy - //SEG72 [34] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#9] -- vbuz1=vbuc1 + //SEG69 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#12 [phi:main::@21->main::@1#6] -- register_copy + //SEG70 [34] phi (byte) current_ypos#21 = (byte) current_ypos#18 [phi:main::@21->main::@1#7] -- register_copy + //SEG71 [34] phi (byte) current_xpos#10 = (byte) current_xpos#23 [phi:main::@21->main::@1#8] -- register_copy + //SEG72 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#16 [phi:main::@21->main::@1#9] -- register_copy + //SEG73 [34] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#10] -- vbuz1=vbuc1 sta current_orientation - //SEG73 [34] phi (byte*) current_piece#16 = (byte*~) current_piece#73 [phi:main::@21->main::@1#10] -- register_copy - //SEG74 [34] phi (byte) render_screen_render#17 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->main::@1#11] -- vbuz1=vbuc1 + //SEG74 [34] phi (byte*) current_piece#16 = (byte*~) current_piece#73 [phi:main::@21->main::@1#11] -- register_copy + //SEG75 [34] phi (byte) current_movedown_slow#12 = (byte) current_movedown_slow#1 [phi:main::@21->main::@1#12] -- register_copy + //SEG76 [34] phi (byte) render_screen_render#17 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->main::@1#13] -- vbuz1=vbuc1 lda #$40 sta render_screen_render - //SEG75 [34] phi (byte) render_screen_show#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#12] -- vbuz1=vbuc1 + //SEG77 [34] phi (byte) render_screen_show#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#14] -- vbuz1=vbuc1 lda #0 sta render_screen_show - //SEG76 [34] phi from main::@28 to main::@1 [phi:main::@28->main::@1] - //SEG77 [34] phi (byte) level_bcd#16 = (byte) level_bcd#11 [phi:main::@28->main::@1#0] -- register_copy - //SEG78 [34] phi (dword) score_bcd#14 = (dword) score_bcd#10 [phi:main::@28->main::@1#1] -- register_copy - //SEG79 [34] phi (word) lines_bcd#15 = (word) lines_bcd#11 [phi:main::@28->main::@1#2] -- register_copy - //SEG80 [34] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@28->main::@1#3] -- register_copy - //SEG81 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@28->main::@1#4] -- register_copy - //SEG82 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@28->main::@1#5] -- register_copy - //SEG83 [34] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@28->main::@1#6] -- register_copy - //SEG84 [34] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@28->main::@1#7] -- register_copy - //SEG85 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@28->main::@1#8] -- register_copy - //SEG86 [34] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@28->main::@1#9] -- register_copy - //SEG87 [34] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@28->main::@1#10] -- register_copy - //SEG88 main::@1 - //SEG89 main::@4 + //SEG78 [34] phi from main::@28 to main::@1 [phi:main::@28->main::@1] + //SEG79 [34] phi (byte) level_bcd#20 = (byte) level_bcd#13 [phi:main::@28->main::@1#0] -- register_copy + //SEG80 [34] phi (byte) level#19 = (byte) level#12 [phi:main::@28->main::@1#1] -- register_copy + //SEG81 [34] phi (dword) score_bcd#14 = (dword) score_bcd#10 [phi:main::@28->main::@1#2] -- register_copy + //SEG82 [34] phi (word) lines_bcd#15 = (word) lines_bcd#11 [phi:main::@28->main::@1#3] -- register_copy + //SEG83 [34] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@28->main::@1#4] -- register_copy + //SEG84 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@28->main::@1#5] -- register_copy + //SEG85 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@28->main::@1#6] -- register_copy + //SEG86 [34] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@28->main::@1#7] -- register_copy + //SEG87 [34] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@28->main::@1#8] -- register_copy + //SEG88 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@28->main::@1#9] -- register_copy + //SEG89 [34] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@28->main::@1#10] -- register_copy + //SEG90 [34] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@28->main::@1#11] -- register_copy + //SEG91 [34] phi (byte) current_movedown_slow#12 = (byte) current_movedown_slow#17 [phi:main::@28->main::@1#12] -- register_copy + //SEG92 main::@1 + //SEG93 main::@4 b4: - //SEG90 [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG94 [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 lda RASTER cmp #$ff bne b4 - //SEG91 [36] phi from main::@4 to main::@6 [phi:main::@4->main::@6] - //SEG92 main::@6 - //SEG93 [37] call render_show + //SEG95 [36] phi from main::@4 to main::@6 [phi:main::@4->main::@6] + //SEG96 main::@6 + //SEG97 [37] call render_show jsr render_show - //SEG94 [38] phi from main::@6 to main::@23 [phi:main::@6->main::@23] - //SEG95 main::@23 - //SEG96 [39] call keyboard_event_scan - //SEG97 [335] phi from main::@23 to keyboard_event_scan [phi:main::@23->keyboard_event_scan] + //SEG98 [38] phi from main::@6 to main::@23 [phi:main::@6->main::@23] + //SEG99 main::@23 + //SEG100 [39] call keyboard_event_scan + //SEG101 [343] phi from main::@23 to keyboard_event_scan [phi:main::@23->keyboard_event_scan] jsr keyboard_event_scan - //SEG98 [40] phi from main::@23 to main::@24 [phi:main::@23->main::@24] - //SEG99 main::@24 - //SEG100 [41] call keyboard_event_get + //SEG102 [40] phi from main::@23 to main::@24 [phi:main::@23->main::@24] + //SEG103 main::@24 + //SEG104 [41] call keyboard_event_get jsr keyboard_event_get - //SEG101 [42] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + //SEG105 [42] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 // (byte) keyboard_event_get::return#3 = (byte) keyboard_event_get::return#2 // register copy reg byte a - //SEG102 main::@25 - //SEG103 [43] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa + //SEG106 main::@25 + //SEG107 [43] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa sta key_event - //SEG104 [44] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 - //SEG105 [45] call play_move_down + //SEG108 [44] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG109 [45] call play_move_down jsr play_move_down - //SEG106 [46] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuaa=vbuxx + //SEG110 [46] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuaa=vbuxx txa - //SEG107 main::@26 - //SEG108 [47] (byte~) main::$12 ← (byte) play_move_down::return#3 + //SEG111 main::@26 + //SEG112 [47] (byte~) main::$12 ← (byte) play_move_down::return#3 // (byte~) main::$12 = (byte) play_move_down::return#3 // register copy reg byte a - //SEG109 [48] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 -- vbuz1=vbuc1_plus_vbuaa + //SEG113 [48] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 -- vbuz1=vbuc1_plus_vbuaa clc adc #0 sta render - //SEG110 [49] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG114 [49] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG111 [50] call play_move_leftright + //SEG115 [50] call play_move_leftright jsr play_move_leftright - //SEG112 [51] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 + //SEG116 [51] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 // (byte) play_move_leftright::return#4 = (byte) play_move_leftright::return#1 // register copy reg byte a - //SEG113 main::@27 - //SEG114 [52] (byte~) main::$13 ← (byte) play_move_leftright::return#4 + //SEG117 main::@27 + //SEG118 [52] (byte~) main::$13 ← (byte) play_move_leftright::return#4 // (byte~) main::$13 = (byte) play_move_leftright::return#4 // register copy reg byte a - //SEG115 [53] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 -- vbuz1=vbuz1_plus_vbuaa + //SEG119 [53] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 -- vbuz1=vbuz1_plus_vbuaa clc adc render sta render - //SEG116 [54] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG120 [54] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG117 [55] call play_move_rotate + //SEG121 [55] call play_move_rotate jsr play_move_rotate - //SEG118 [56] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 + //SEG122 [56] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 // (byte) play_move_rotate::return#4 = (byte) play_move_rotate::return#1 // register copy reg byte a - //SEG119 main::@28 - //SEG120 [57] (byte~) main::$14 ← (byte) play_move_rotate::return#4 + //SEG123 main::@28 + //SEG124 [57] (byte~) main::$14 ← (byte) play_move_rotate::return#4 // (byte~) main::$14 = (byte) play_move_rotate::return#4 // register copy reg byte a - //SEG121 [58] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 -- vbuaa=vbuz1_plus_vbuaa + //SEG125 [58] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 -- vbuaa=vbuz1_plus_vbuaa clc adc render - //SEG122 [59] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 -- vbuaa_eq_0_then_la1 + //SEG126 [59] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 -- vbuaa_eq_0_then_la1 cmp #0 beq b4 - //SEG123 main::@13 - //SEG124 [60] (byte~) render_screen_render#65 ← (byte) render_screen_render#17 -- vbuxx=vbuz1 + //SEG127 main::@13 + //SEG128 [60] (byte~) render_screen_render#65 ← (byte) render_screen_render#17 -- vbuxx=vbuz1 ldx render_screen_render - //SEG125 [61] call render_playfield - //SEG126 [133] phi from main::@13 to render_playfield [phi:main::@13->render_playfield] - //SEG127 [133] phi (byte) render_screen_render#21 = (byte~) render_screen_render#65 [phi:main::@13->render_playfield#0] -- register_copy + //SEG129 [61] call render_playfield + //SEG130 [133] phi from main::@13 to render_playfield [phi:main::@13->render_playfield] + //SEG131 [133] phi (byte) render_screen_render#21 = (byte~) render_screen_render#65 [phi:main::@13->render_playfield#0] -- register_copy jsr render_playfield - //SEG128 main::@29 - //SEG129 [62] (byte~) current_ypos#87 ← (byte) current_ypos#13 -- vbuyy=vbuz1 + //SEG132 main::@29 + //SEG133 [62] (byte~) current_ypos#87 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos - //SEG130 [63] (byte~) render_screen_render#64 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 + //SEG134 [63] (byte~) render_screen_render#64 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 lda render_screen_render sta render_screen_render_64 - //SEG131 [64] (byte~) current_xpos#113 ← (byte) current_xpos#19 -- vbuz1=vbuz2 + //SEG135 [64] (byte~) current_xpos#113 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda current_xpos sta current_xpos_113 - //SEG132 [65] (byte*~) current_piece_gfx#103 ← (byte*) current_piece_gfx#14 -- pbuz1=pbuz2 + //SEG136 [65] (byte*~) current_piece_gfx#103 ← (byte*) current_piece_gfx#14 -- pbuz1=pbuz2 lda current_piece_gfx sta current_piece_gfx_103 lda current_piece_gfx+1 sta current_piece_gfx_103+1 - //SEG133 [66] (byte~) current_piece_char#91 ← (byte) current_piece_char#1 -- vbuxx=vbuz1 + //SEG137 [66] (byte~) current_piece_char#91 ← (byte) current_piece_char#1 -- vbuxx=vbuz1 ldx current_piece_char - //SEG134 [67] call render_current - //SEG135 [110] phi from main::@29 to render_current [phi:main::@29->render_current] - //SEG136 [110] phi (byte) current_piece_char#64 = (byte~) current_piece_char#91 [phi:main::@29->render_current#0] -- register_copy - //SEG137 [110] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#103 [phi:main::@29->render_current#1] -- register_copy - //SEG138 [110] phi (byte) current_xpos#47 = (byte~) current_xpos#113 [phi:main::@29->render_current#2] -- register_copy - //SEG139 [110] phi (byte) render_screen_render#30 = (byte~) render_screen_render#64 [phi:main::@29->render_current#3] -- register_copy - //SEG140 [110] phi (byte) current_ypos#9 = (byte~) current_ypos#87 [phi:main::@29->render_current#4] -- register_copy - jsr render_current - //SEG141 [68] phi from main::@29 to main::@30 [phi:main::@29->main::@30] - //SEG142 main::@30 - //SEG143 [69] call render_score + //SEG138 [67] call render_moving + //SEG139 [110] phi from main::@29 to render_moving [phi:main::@29->render_moving] + //SEG140 [110] phi (byte) current_piece_char#64 = (byte~) current_piece_char#91 [phi:main::@29->render_moving#0] -- register_copy + //SEG141 [110] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#103 [phi:main::@29->render_moving#1] -- register_copy + //SEG142 [110] phi (byte) current_xpos#47 = (byte~) current_xpos#113 [phi:main::@29->render_moving#2] -- register_copy + //SEG143 [110] phi (byte) render_screen_render#30 = (byte~) render_screen_render#64 [phi:main::@29->render_moving#3] -- register_copy + //SEG144 [110] phi (byte) current_ypos#9 = (byte~) current_ypos#87 [phi:main::@29->render_moving#4] -- register_copy + jsr render_moving + //SEG145 [68] phi from main::@29 to main::@30 [phi:main::@29->main::@30] + //SEG146 main::@30 + //SEG147 [69] call render_score jsr render_score - //SEG144 [70] phi from main::@30 to main::@31 [phi:main::@30->main::@31] - //SEG145 main::@31 - //SEG146 [71] call render_screen_swap + //SEG148 [70] phi from main::@30 to main::@31 [phi:main::@30->main::@31] + //SEG149 main::@31 + //SEG150 [71] call render_screen_swap jsr render_screen_swap - //SEG147 [34] phi from main::@31 to main::@1 [phi:main::@31->main::@1] - //SEG148 [34] phi (byte) level_bcd#16 = (byte) level_bcd#11 [phi:main::@31->main::@1#0] -- register_copy - //SEG149 [34] phi (dword) score_bcd#14 = (dword) score_bcd#10 [phi:main::@31->main::@1#1] -- register_copy - //SEG150 [34] phi (word) lines_bcd#15 = (word) lines_bcd#11 [phi:main::@31->main::@1#2] -- register_copy - //SEG151 [34] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@31->main::@1#3] -- register_copy - //SEG152 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@31->main::@1#4] -- register_copy - //SEG153 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@31->main::@1#5] -- register_copy - //SEG154 [34] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@31->main::@1#6] -- register_copy - //SEG155 [34] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@31->main::@1#7] -- register_copy - //SEG156 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@31->main::@1#8] -- register_copy - //SEG157 [34] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@31->main::@1#9] -- register_copy - //SEG158 [34] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@31->main::@1#10] -- register_copy - //SEG159 [34] phi (byte) render_screen_render#17 = (byte) render_screen_render#11 [phi:main::@31->main::@1#11] -- register_copy - //SEG160 [34] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@31->main::@1#12] -- register_copy + //SEG151 [34] phi from main::@31 to main::@1 [phi:main::@31->main::@1] + //SEG152 [34] phi (byte) level_bcd#20 = (byte) level_bcd#13 [phi:main::@31->main::@1#0] -- register_copy + //SEG153 [34] phi (byte) level#19 = (byte) level#12 [phi:main::@31->main::@1#1] -- register_copy + //SEG154 [34] phi (dword) score_bcd#14 = (dword) score_bcd#10 [phi:main::@31->main::@1#2] -- register_copy + //SEG155 [34] phi (word) lines_bcd#15 = (word) lines_bcd#11 [phi:main::@31->main::@1#3] -- register_copy + //SEG156 [34] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@31->main::@1#4] -- register_copy + //SEG157 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@31->main::@1#5] -- register_copy + //SEG158 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@31->main::@1#6] -- register_copy + //SEG159 [34] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@31->main::@1#7] -- register_copy + //SEG160 [34] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@31->main::@1#8] -- register_copy + //SEG161 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@31->main::@1#9] -- register_copy + //SEG162 [34] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@31->main::@1#10] -- register_copy + //SEG163 [34] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@31->main::@1#11] -- register_copy + //SEG164 [34] phi (byte) current_movedown_slow#12 = (byte) current_movedown_slow#17 [phi:main::@31->main::@1#12] -- register_copy + //SEG165 [34] phi (byte) render_screen_render#17 = (byte) render_screen_render#11 [phi:main::@31->main::@1#13] -- register_copy + //SEG166 [34] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@31->main::@1#14] -- register_copy jmp b4 } -//SEG161 render_screen_swap +//SEG167 render_screen_swap render_screen_swap: { - //SEG162 [72] (byte) render_screen_render#11 ← (byte) render_screen_render#17 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 + //SEG168 [72] (byte) render_screen_render#11 ← (byte) render_screen_render#17 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 lda render_screen_render eor #$40 sta render_screen_render - //SEG163 [73] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 + //SEG169 [73] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 lda render_screen_show eor #$40 sta render_screen_show - //SEG164 render_screen_swap::@return - //SEG165 [74] return + //SEG170 render_screen_swap::@return + //SEG171 [74] return rts } -//SEG166 render_score +//SEG172 render_score render_score: { .label score_bytes = score_bcd .const score_offset = $28*5+$1c .const lines_offset = $28*1+$16 .const level_offset = $28*$13+$1f .label screen = 5 - //SEG167 [75] if((byte) render_screen_render#17==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_score::@2 -- vbuz1_eq_0_then_la1 + //SEG173 [75] if((byte) render_screen_render#17==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_score::@2 -- vbuz1_eq_0_then_la1 lda render_screen_render cmp #0 beq b1 - //SEG168 [76] phi from render_score to render_score::@3 [phi:render_score->render_score::@3] - //SEG169 render_score::@3 - //SEG170 [77] phi from render_score::@3 to render_score::@2 [phi:render_score::@3->render_score::@2] - //SEG171 [77] phi (byte*) render_score::screen#2 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_score::@3->render_score::@2#0] -- pbuz1=pbuc1 + //SEG174 [76] phi from render_score to render_score::@3 [phi:render_score->render_score::@3] + //SEG175 render_score::@3 + //SEG176 [77] phi from render_score::@3 to render_score::@2 [phi:render_score::@3->render_score::@2] + //SEG177 [77] phi (byte*) render_score::screen#2 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_score::@3->render_score::@2#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_2 sta screen+1 jmp b2 - //SEG172 [77] phi from render_score to render_score::@2 [phi:render_score->render_score::@2] + //SEG178 [77] phi from render_score to render_score::@2 [phi:render_score->render_score::@2] b1: - //SEG173 [77] phi (byte*) render_score::screen#2 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_score->render_score::@2#0] -- pbuz1=pbuc1 + //SEG179 [77] phi (byte*) render_score::screen#2 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_score->render_score::@2#0] -- pbuz1=pbuc1 lda #PLAYFIELD_SCREEN_1 sta screen+1 - //SEG174 render_score::@2 + //SEG180 render_score::@2 b2: - //SEG175 [78] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 + //SEG181 [78] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 // (byte*) render_bcd::screen#0 = (byte*) render_score::screen#2 // register copy zp ZP_WORD:5 - //SEG176 [79] (byte) render_bcd::bcd#0 ← *((const byte*) render_score::score_bytes#0+(byte/signed byte/word/signed word/dword/signed dword) 2) -- vbuxx=_deref_pbuc1 + //SEG182 [79] (byte) render_bcd::bcd#0 ← *((const byte*) render_score::score_bytes#0+(byte/signed byte/word/signed word/dword/signed dword) 2) -- vbuxx=_deref_pbuc1 ldx score_bytes+2 - //SEG177 [80] call render_bcd - //SEG178 [97] phi from render_score::@2 to render_bcd [phi:render_score::@2->render_bcd] - //SEG179 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#0 [phi:render_score::@2->render_bcd#0] -- register_copy - //SEG180 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@2->render_bcd#1] -- vbuyy=vbuc1 + //SEG183 [80] call render_bcd + //SEG184 [97] phi from render_score::@2 to render_bcd [phi:render_score::@2->render_bcd] + //SEG185 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#0 [phi:render_score::@2->render_bcd#0] -- register_copy + //SEG186 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@2->render_bcd#1] -- vbuyy=vbuc1 ldy #0 - //SEG181 [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset#0 [phi:render_score::@2->render_bcd#2] -- vwuz1=vwuc1 + //SEG187 [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset#0 [phi:render_score::@2->render_bcd#2] -- vwuz1=vwuc1 lda #score_offset sta render_bcd.offset+1 - //SEG182 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#0 [phi:render_score::@2->render_bcd#3] -- register_copy + //SEG188 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#0 [phi:render_score::@2->render_bcd#3] -- register_copy jsr render_bcd - //SEG183 render_score::@5 - //SEG184 [81] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#2 + //SEG189 render_score::@5 + //SEG190 [81] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#2 // (byte*) render_bcd::screen#1 = (byte*) render_score::screen#2 // register copy zp ZP_WORD:5 - //SEG185 [82] (byte) render_bcd::bcd#1 ← *((const byte*) render_score::score_bytes#0+(byte/signed byte/word/signed word/dword/signed dword) 1) -- vbuxx=_deref_pbuc1 + //SEG191 [82] (byte) render_bcd::bcd#1 ← *((const byte*) render_score::score_bytes#0+(byte/signed byte/word/signed word/dword/signed dword) 1) -- vbuxx=_deref_pbuc1 ldx score_bytes+1 - //SEG186 [83] call render_bcd - //SEG187 [97] phi from render_score::@5 to render_bcd [phi:render_score::@5->render_bcd] - //SEG188 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#1 [phi:render_score::@5->render_bcd#0] -- register_copy - //SEG189 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@5->render_bcd#1] -- vbuyy=vbuc1 + //SEG192 [83] call render_bcd + //SEG193 [97] phi from render_score::@5 to render_bcd [phi:render_score::@5->render_bcd] + //SEG194 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#1 [phi:render_score::@5->render_bcd#0] -- register_copy + //SEG195 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@5->render_bcd#1] -- vbuyy=vbuc1 ldy #0 - //SEG190 [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_score::@5->render_bcd#2] -- vwuz1=vbuc1 + //SEG196 [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_score::@5->render_bcd#2] -- vwuz1=vbuc1 lda #score_offset+2 sta render_bcd.offset+1 - //SEG191 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#1 [phi:render_score::@5->render_bcd#3] -- register_copy + //SEG197 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#1 [phi:render_score::@5->render_bcd#3] -- register_copy jsr render_bcd - //SEG192 render_score::@6 - //SEG193 [84] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#2 + //SEG198 render_score::@6 + //SEG199 [84] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#2 // (byte*) render_bcd::screen#2 = (byte*) render_score::screen#2 // register copy zp ZP_WORD:5 - //SEG194 [85] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes#0) -- vbuxx=_deref_pbuc1 + //SEG200 [85] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes#0) -- vbuxx=_deref_pbuc1 ldx score_bytes - //SEG195 [86] call render_bcd - //SEG196 [97] phi from render_score::@6 to render_bcd [phi:render_score::@6->render_bcd] - //SEG197 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#2 [phi:render_score::@6->render_bcd#0] -- register_copy - //SEG198 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@6->render_bcd#1] -- vbuyy=vbuc1 + //SEG201 [86] call render_bcd + //SEG202 [97] phi from render_score::@6 to render_bcd [phi:render_score::@6->render_bcd] + //SEG203 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#2 [phi:render_score::@6->render_bcd#0] -- register_copy + //SEG204 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@6->render_bcd#1] -- vbuyy=vbuc1 ldy #0 - //SEG199 [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 4 [phi:render_score::@6->render_bcd#2] -- vwuz1=vbuc1 + //SEG205 [97] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 4 [phi:render_score::@6->render_bcd#2] -- vwuz1=vbuc1 lda #score_offset+4 sta render_bcd.offset+1 - //SEG200 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#2 [phi:render_score::@6->render_bcd#3] -- register_copy + //SEG206 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#2 [phi:render_score::@6->render_bcd#3] -- register_copy jsr render_bcd - //SEG201 render_score::@7 - //SEG202 [87] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#11 -- vbuxx=_hi_vwuz1 + //SEG207 render_score::@7 + //SEG208 [87] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#11 -- vbuxx=_hi_vwuz1 lda lines_bcd+1 tax - //SEG203 [88] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#2 + //SEG209 [88] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#2 // (byte*) render_bcd::screen#3 = (byte*) render_score::screen#2 // register copy zp ZP_WORD:5 - //SEG204 [89] call render_bcd - //SEG205 [97] phi from render_score::@7 to render_bcd [phi:render_score::@7->render_bcd] - //SEG206 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#3 [phi:render_score::@7->render_bcd#0] -- register_copy - //SEG207 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:render_score::@7->render_bcd#1] -- vbuyy=vbuc1 + //SEG210 [89] call render_bcd + //SEG211 [97] phi from render_score::@7 to render_bcd [phi:render_score::@7->render_bcd] + //SEG212 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#3 [phi:render_score::@7->render_bcd#0] -- register_copy + //SEG213 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:render_score::@7->render_bcd#1] -- vbuyy=vbuc1 ldy #1 - //SEG208 [97] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset#0 [phi:render_score::@7->render_bcd#2] -- vwuz1=vwuc1 + //SEG214 [97] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset#0 [phi:render_score::@7->render_bcd#2] -- vwuz1=vwuc1 lda #lines_offset sta render_bcd.offset+1 - //SEG209 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#3 [phi:render_score::@7->render_bcd#3] -- register_copy + //SEG215 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#3 [phi:render_score::@7->render_bcd#3] -- register_copy jsr render_bcd - //SEG210 render_score::@8 - //SEG211 [90] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#11 -- vbuxx=_lo_vwuz1 + //SEG216 render_score::@8 + //SEG217 [90] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#11 -- vbuxx=_lo_vwuz1 lda lines_bcd tax - //SEG212 [91] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#2 + //SEG218 [91] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#2 // (byte*) render_bcd::screen#4 = (byte*) render_score::screen#2 // register copy zp ZP_WORD:5 - //SEG213 [92] call render_bcd - //SEG214 [97] phi from render_score::@8 to render_bcd [phi:render_score::@8->render_bcd] - //SEG215 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#4 [phi:render_score::@8->render_bcd#0] -- register_copy - //SEG216 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@8->render_bcd#1] -- vbuyy=vbuc1 + //SEG219 [92] call render_bcd + //SEG220 [97] phi from render_score::@8 to render_bcd [phi:render_score::@8->render_bcd] + //SEG221 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#4 [phi:render_score::@8->render_bcd#0] -- register_copy + //SEG222 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@8->render_bcd#1] -- vbuyy=vbuc1 ldy #0 - //SEG217 [97] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:render_score::@8->render_bcd#2] -- vwuz1=vbuc1 + //SEG223 [97] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:render_score::@8->render_bcd#2] -- vwuz1=vbuc1 lda #lines_offset+1 sta render_bcd.offset+1 - //SEG218 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#4 [phi:render_score::@8->render_bcd#3] -- register_copy + //SEG224 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#4 [phi:render_score::@8->render_bcd#3] -- register_copy jsr render_bcd - //SEG219 render_score::@9 - //SEG220 [93] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#2 + //SEG225 render_score::@9 + //SEG226 [93] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#2 // (byte*) render_bcd::screen#5 = (byte*) render_score::screen#2 // register copy zp ZP_WORD:5 - //SEG221 [94] (byte) render_bcd::bcd#5 ← (byte) level_bcd#11 -- vbuxx=vbuz1 + //SEG227 [94] (byte) render_bcd::bcd#5 ← (byte) level_bcd#13 -- vbuxx=vbuz1 ldx level_bcd - //SEG222 [95] call render_bcd - //SEG223 [97] phi from render_score::@9 to render_bcd [phi:render_score::@9->render_bcd] - //SEG224 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#5 [phi:render_score::@9->render_bcd#0] -- register_copy - //SEG225 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@9->render_bcd#1] -- vbuyy=vbuc1 + //SEG228 [95] call render_bcd + //SEG229 [97] phi from render_score::@9 to render_bcd [phi:render_score::@9->render_bcd] + //SEG230 [97] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#5 [phi:render_score::@9->render_bcd#0] -- register_copy + //SEG231 [97] phi (byte) render_bcd::only_low#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@9->render_bcd#1] -- vbuyy=vbuc1 ldy #0 - //SEG226 [97] phi (word) render_bcd::offset#6 = (const word) render_score::level_offset#0 [phi:render_score::@9->render_bcd#2] -- vwuz1=vwuc1 + //SEG232 [97] phi (word) render_bcd::offset#6 = (const word) render_score::level_offset#0 [phi:render_score::@9->render_bcd#2] -- vwuz1=vwuc1 lda #level_offset sta render_bcd.offset+1 - //SEG227 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#5 [phi:render_score::@9->render_bcd#3] -- register_copy + //SEG233 [97] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#5 [phi:render_score::@9->render_bcd#3] -- register_copy jsr render_bcd - //SEG228 render_score::@return - //SEG229 [96] return + //SEG234 render_score::@return + //SEG235 [96] return rts } -//SEG230 render_bcd +//SEG236 render_bcd render_bcd: { .const ZERO_CHAR = $33 .label screen = 5 .label screen_pos = 7 .label offset = 7 - //SEG231 [98] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 -- pbuz1=pbuz2_plus_vwuz1 + //SEG237 [98] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 -- pbuz1=pbuz2_plus_vwuz1 lda screen_pos clc adc screen @@ -20074,343 +20769,343 @@ render_bcd: { lda screen_pos+1 adc screen+1 sta screen_pos+1 - //SEG232 [99] if((byte) render_bcd::only_low#6!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_bcd::@1 -- vbuyy_neq_0_then_la1 + //SEG238 [99] if((byte) render_bcd::only_low#6!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_bcd::@1 -- vbuyy_neq_0_then_la1 cpy #0 bne b1 - //SEG233 render_bcd::@2 - //SEG234 [100] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuaa=vbuxx_ror_4 + //SEG239 render_bcd::@2 + //SEG240 [100] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuaa=vbuxx_ror_4 txa lsr lsr lsr lsr - //SEG235 [101] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$3 -- vbuaa=vbuc1_plus_vbuaa + //SEG241 [101] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$3 -- vbuaa=vbuc1_plus_vbuaa clc adc #ZERO_CHAR - //SEG236 [102] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 -- _deref_pbuz1=vbuaa + //SEG242 [102] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 -- _deref_pbuz1=vbuaa ldy #0 sta (screen_pos),y - //SEG237 [103] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 -- pbuz1=_inc_pbuz1 + //SEG243 [103] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 -- pbuz1=_inc_pbuz1 inc screen_pos bne !+ inc screen_pos+1 !: - //SEG238 [104] phi from render_bcd render_bcd::@2 to render_bcd::@1 [phi:render_bcd/render_bcd::@2->render_bcd::@1] - //SEG239 [104] phi (byte*) render_bcd::screen_pos#3 = (byte*) render_bcd::screen_pos#0 [phi:render_bcd/render_bcd::@2->render_bcd::@1#0] -- register_copy - //SEG240 render_bcd::@1 + //SEG244 [104] phi from render_bcd render_bcd::@2 to render_bcd::@1 [phi:render_bcd/render_bcd::@2->render_bcd::@1] + //SEG245 [104] phi (byte*) render_bcd::screen_pos#3 = (byte*) render_bcd::screen_pos#0 [phi:render_bcd/render_bcd::@2->render_bcd::@1#0] -- register_copy + //SEG246 render_bcd::@1 b1: - //SEG241 [105] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG247 [105] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 txa and #$f - //SEG242 [106] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 -- vbuaa=vbuc1_plus_vbuaa + //SEG248 [106] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 -- vbuaa=vbuc1_plus_vbuaa clc adc #ZERO_CHAR - //SEG243 [107] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 -- _deref_pbuz1=vbuaa + //SEG249 [107] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 -- _deref_pbuz1=vbuaa ldy #0 sta (screen_pos),y - //SEG244 [108] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 -- pbuz1=_inc_pbuz1 + //SEG250 [108] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 -- pbuz1=_inc_pbuz1 inc screen_pos bne !+ inc screen_pos+1 !: - //SEG245 render_bcd::@return - //SEG246 [109] return + //SEG251 render_bcd::@return + //SEG252 [109] return rts } -//SEG247 render_current -render_current: { +//SEG253 render_moving +render_moving: { .label ypos2 = $b .label screen_line = 7 .label xpos = $e .label i = $d .label l = $c .label c = $f - //SEG248 [111] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 + //SEG254 [111] (byte) render_moving::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 tya asl sta ypos2 - //SEG249 [112] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] - //SEG250 [112] phi (byte) render_current::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#0] -- vbuz1=vbuc1 + //SEG255 [112] phi from render_moving to render_moving::@1 [phi:render_moving->render_moving::@1] + //SEG256 [112] phi (byte) render_moving::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving->render_moving::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG251 [112] phi (byte) render_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current->render_current::@1#1] -- vbuz1=vbuc1 + //SEG257 [112] phi (byte) render_moving::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving->render_moving::@1#1] -- vbuz1=vbuc1 sta i - //SEG252 [112] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy - //SEG253 [112] phi from render_current::@3 to render_current::@1 [phi:render_current::@3->render_current::@1] - //SEG254 [112] phi (byte) render_current::l#4 = (byte) render_current::l#1 [phi:render_current::@3->render_current::@1#0] -- register_copy - //SEG255 [112] phi (byte) render_current::i#3 = (byte) render_current::i#8 [phi:render_current::@3->render_current::@1#1] -- register_copy - //SEG256 [112] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@3->render_current::@1#2] -- register_copy - //SEG257 render_current::@1 + //SEG258 [112] phi (byte) render_moving::ypos2#2 = (byte) render_moving::ypos2#0 [phi:render_moving->render_moving::@1#2] -- register_copy + //SEG259 [112] phi from render_moving::@3 to render_moving::@1 [phi:render_moving::@3->render_moving::@1] + //SEG260 [112] phi (byte) render_moving::l#4 = (byte) render_moving::l#1 [phi:render_moving::@3->render_moving::@1#0] -- register_copy + //SEG261 [112] phi (byte) render_moving::i#3 = (byte) render_moving::i#8 [phi:render_moving::@3->render_moving::@1#1] -- register_copy + //SEG262 [112] phi (byte) render_moving::ypos2#2 = (byte) render_moving::ypos2#1 [phi:render_moving::@3->render_moving::@1#2] -- register_copy + //SEG263 render_moving::@1 b1: - //SEG258 [113] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 -- vbuz1_gt_vbuc1_then_la1 + //SEG264 [113] 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 lda ypos2 cmp #2 beq !+ bcs b13 !: - //SEG259 render_current::@7 + //SEG265 render_moving::@7 b7: - //SEG260 [114] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz1_plus_vbuc1 + //SEG266 [114] (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 - //SEG261 [115] phi from render_current::@5 render_current::@7 to render_current::@3 [phi:render_current::@5/render_current::@7->render_current::@3] - //SEG262 [115] phi (byte) render_current::i#8 = (byte) render_current::i#10 [phi:render_current::@5/render_current::@7->render_current::@3#0] -- register_copy - //SEG263 render_current::@3 + //SEG267 [115] phi from render_moving::@5 render_moving::@7 to render_moving::@3 [phi:render_moving::@5/render_moving::@7->render_moving::@3] + //SEG268 [115] phi (byte) render_moving::i#8 = (byte) render_moving::i#10 [phi:render_moving::@5/render_moving::@7->render_moving::@3#0] -- register_copy + //SEG269 render_moving::@3 b3: - //SEG264 [116] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG270 [116] (byte) render_moving::ypos2#1 ← (byte) render_moving::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG265 [117] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 -- vbuz1=_inc_vbuz1 + //SEG271 [117] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG266 [118] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG272 [118] if((byte) render_moving::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b1 - //SEG267 render_current::@return - //SEG268 [119] return + //SEG273 render_moving::@return + //SEG274 [119] return rts - //SEG269 render_current::@13 + //SEG275 render_moving::@13 b13: - //SEG270 [120] if((byte) render_current::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG276 [120] 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 - //SEG271 render_current::@2 + //SEG277 render_moving::@2 b2: - //SEG272 [121] (byte~) render_current::$5 ← (byte) render_screen_render#30 + (byte) render_current::ypos2#2 -- vbuaa=vbuz1_plus_vbuz2 + //SEG278 [121] (byte~) render_moving::$5 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 -- vbuaa=vbuz1_plus_vbuz2 lda render_screen_render_30 clc adc ypos2 - //SEG273 [122] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) -- pbuz1=pptc1_derefidx_vbuaa + //SEG279 [122] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$5) -- pbuz1=pptc1_derefidx_vbuaa tay lda screen_lines_1,y sta screen_line lda screen_lines_1+1,y sta screen_line+1 - //SEG274 [123] (byte) render_current::xpos#0 ← (byte) current_xpos#47 -- vbuz1=vbuz2 + //SEG280 [123] (byte) render_moving::xpos#0 ← (byte) current_xpos#47 -- vbuz1=vbuz2 lda current_xpos_47 sta xpos - //SEG275 [124] phi from render_current::@2 to render_current::@4 [phi:render_current::@2->render_current::@4] - //SEG276 [124] phi (byte) render_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_current::@2->render_current::@4#0] -- vbuz1=vbuc1 + //SEG281 [124] phi from render_moving::@2 to render_moving::@4 [phi:render_moving::@2->render_moving::@4] + //SEG282 [124] 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 - //SEG277 [124] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@2->render_current::@4#1] -- register_copy - //SEG278 [124] phi (byte) render_current::i#4 = (byte) render_current::i#3 [phi:render_current::@2->render_current::@4#2] -- register_copy - //SEG279 [124] phi from render_current::@5 to render_current::@4 [phi:render_current::@5->render_current::@4] - //SEG280 [124] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@5->render_current::@4#0] -- register_copy - //SEG281 [124] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@5->render_current::@4#1] -- register_copy - //SEG282 [124] phi (byte) render_current::i#4 = (byte) render_current::i#10 [phi:render_current::@5->render_current::@4#2] -- register_copy - //SEG283 render_current::@4 + //SEG283 [124] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#0 [phi:render_moving::@2->render_moving::@4#1] -- register_copy + //SEG284 [124] phi (byte) render_moving::i#4 = (byte) render_moving::i#3 [phi:render_moving::@2->render_moving::@4#2] -- register_copy + //SEG285 [124] phi from render_moving::@5 to render_moving::@4 [phi:render_moving::@5->render_moving::@4] + //SEG286 [124] phi (byte) render_moving::c#2 = (byte) render_moving::c#1 [phi:render_moving::@5->render_moving::@4#0] -- register_copy + //SEG287 [124] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#1 [phi:render_moving::@5->render_moving::@4#1] -- register_copy + //SEG288 [124] phi (byte) render_moving::i#4 = (byte) render_moving::i#10 [phi:render_moving::@5->render_moving::@4#2] -- register_copy + //SEG289 render_moving::@4 b4: - //SEG284 [125] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 + //SEG290 [125] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_moving::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 ldy i lda (current_piece_gfx_53),y - //SEG285 [126] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 -- vbuz1=_inc_vbuz1 + //SEG291 [126] (byte) render_moving::i#10 ← ++ (byte) render_moving::i#4 -- vbuz1=_inc_vbuz1 inc i - //SEG286 [127] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@5 -- vbuaa_eq_0_then_la1 + //SEG292 [127] 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 - //SEG287 render_current::@9 - //SEG288 [128] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 -- vbuz1_ge_vbuc1_then_la1 + //SEG293 render_moving::@9 + //SEG294 [128] 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 - //SEG289 render_current::@10 - //SEG290 [129] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#64 -- pbuz1_derefidx_vbuz2=vbuxx + //SEG295 render_moving::@10 + //SEG296 [129] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#64 -- pbuz1_derefidx_vbuz2=vbuxx tay txa sta (screen_line),y - //SEG291 render_current::@5 + //SEG297 render_moving::@5 b5: - //SEG292 [130] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG298 [130] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG293 [131] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuz1=_inc_vbuz1 + //SEG299 [131] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG294 [132] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG300 [132] 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 } -//SEG295 render_playfield +//SEG301 render_playfield render_playfield: { .label screen_line = 5 .label i = $a .label c = $b .label l = 9 - //SEG296 [134] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] - //SEG297 [134] 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 + //SEG302 [134] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + //SEG303 [134] 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 - //SEG298 [134] 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 + //SEG304 [134] 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 - //SEG299 [134] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] - //SEG300 [134] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG301 [134] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy - //SEG302 render_playfield::@1 + //SEG305 [134] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG306 [134] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + //SEG307 [134] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //SEG308 render_playfield::@1 b1: - //SEG303 [135] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 + //SEG309 [135] (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 - //SEG304 [136] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 -- vbuaa=vbuxx_plus_vbuaa + //SEG310 [136] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 -- vbuaa=vbuxx_plus_vbuaa stx $ff clc adc $ff - //SEG305 [137] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuaa + //SEG311 [137] (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 - //SEG306 [138] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] - //SEG307 [138] 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 + //SEG312 [138] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG313 [138] 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 - //SEG308 [138] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG309 [138] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy - //SEG310 [138] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] - //SEG311 [138] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG312 [138] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG313 [138] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy - //SEG314 render_playfield::@2 + //SEG314 [138] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + //SEG315 [138] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //SEG316 [138] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG317 [138] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + //SEG318 [138] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + //SEG319 [138] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //SEG320 render_playfield::@2 b2: - //SEG315 [139] *((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 + //SEG321 [139] *((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 - //SEG316 [140] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 + //SEG322 [140] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 inc screen_line bne !+ inc screen_line+1 !: - //SEG317 [141] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG323 [141] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG318 [142] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 + //SEG324 [142] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG319 [143] 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 + //SEG325 [143] 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 - //SEG320 render_playfield::@3 - //SEG321 [144] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG326 render_playfield::@3 + //SEG327 [144] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG322 [145] 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 + //SEG328 [145] 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 - //SEG323 render_playfield::@return - //SEG324 [146] return + //SEG329 render_playfield::@return + //SEG330 [146] return rts } -//SEG325 play_move_rotate +//SEG331 play_move_rotate play_move_rotate: { .label orientation = 9 - //SEG326 [147] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG332 [147] 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 - //SEG327 play_move_rotate::@6 - //SEG328 [148] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 + //SEG333 play_move_rotate::@6 + //SEG334 [148] 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 - //SEG329 [149] 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] + //SEG335 [149] 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: - //SEG330 [149] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#1 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy - //SEG331 [149] phi (byte) current_orientation#19 = (byte) current_orientation#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy - //SEG332 [149] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 + //SEG336 [149] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#1 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + //SEG337 [149] phi (byte) current_orientation#19 = (byte) current_orientation#14 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy + //SEG338 [149] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #0 - //SEG333 play_move_rotate::@return + //SEG339 play_move_rotate::@return breturn: - //SEG334 [150] return + //SEG340 [150] return rts - //SEG335 play_move_rotate::@2 + //SEG341 play_move_rotate::@2 b2: - //SEG336 [151] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 + //SEG342 [151] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#14 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 lda #$10 clc adc current_orientation - //SEG337 [152] (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 + //SEG343 [152] (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 - //SEG338 [153] 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] - //SEG339 [153] 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 - //SEG340 play_move_rotate::@4 + //SEG344 [153] 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] + //SEG345 [153] 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 + //SEG346 play_move_rotate::@4 b4: - //SEG341 [154] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 -- vbuz1=vbuz2 + //SEG347 [154] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG342 [155] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 -- vbuyy=vbuz1 + //SEG348 [155] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos - //SEG343 [156] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 + //SEG349 [156] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 ldx orientation - //SEG344 [157] (byte*~) current_piece#79 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG350 [157] (byte*~) current_piece#79 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_79 lda current_piece+1 sta current_piece_79+1 - //SEG345 [158] call play_collision - //SEG346 [166] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] - //SEG347 [166] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy - //SEG348 [166] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy - //SEG349 [166] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy - //SEG350 [166] phi (byte*) current_piece#12 = (byte*~) current_piece#79 [phi:play_move_rotate::@4->play_collision#3] -- register_copy + //SEG351 [158] call play_collision + //SEG352 [166] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] + //SEG353 [166] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy + //SEG354 [166] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy + //SEG355 [166] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy + //SEG356 [166] phi (byte*) current_piece#12 = (byte*~) current_piece#79 [phi:play_move_rotate::@4->play_collision#3] -- register_copy jsr play_collision - //SEG351 [159] (byte) play_collision::return#13 ← (byte) play_collision::return#14 + //SEG357 [159] (byte) play_collision::return#13 ← (byte) play_collision::return#14 // (byte) play_collision::return#13 = (byte) play_collision::return#14 // register copy reg byte a - //SEG352 play_move_rotate::@14 - //SEG353 [160] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 + //SEG358 play_move_rotate::@14 + //SEG359 [160] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 // (byte~) play_move_rotate::$6 = (byte) play_collision::return#13 // register copy reg byte a - //SEG354 [161] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG360 [161] 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 - //SEG355 play_move_rotate::@11 - //SEG356 [162] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG361 play_move_rotate::@11 + //SEG362 [162] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG357 [163] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 + //SEG363 [163] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 clc adc current_piece sta current_piece_gfx lda #0 adc current_piece+1 sta current_piece_gfx+1 - //SEG358 [149] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] - //SEG359 [149] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#3 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG360 [149] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG361 [149] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 + //SEG364 [149] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG365 [149] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#3 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG366 [149] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy + //SEG367 [149] phi (byte) play_move_rotate::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG362 play_move_rotate::@1 + //SEG368 play_move_rotate::@1 b1: - //SEG363 [164] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 + //SEG369 [164] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#14 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 lda current_orientation sec sbc #$10 - //SEG364 [165] (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 + //SEG370 [165] (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 } -//SEG365 play_collision +//SEG371 play_collision play_collision: { .label xpos = $a .label piece_gfx = 5 .label ypos2 = $b .label playfield_line = 7 - .label i = $26 + .label i = $28 .label col = $e .label l = $c .label i_2 = $d .label i_3 = $d .label i_11 = $d .label i_13 = $d - //SEG366 [167] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx + //SEG372 [167] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx txa clc adc piece_gfx @@ -20418,484 +21113,492 @@ play_collision: { lda #0 adc piece_gfx+1 sta piece_gfx+1 - //SEG367 [168] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 + //SEG373 [168] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 tya asl sta ypos2 - //SEG368 [169] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] - //SEG369 [169] 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 + //SEG374 [169] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] + //SEG375 [169] 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 - //SEG370 [169] 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 + //SEG376 [169] 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 - //SEG371 [169] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy - //SEG372 play_collision::@1 + //SEG377 [169] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy + //SEG378 play_collision::@1 b1: - //SEG373 [170] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG379 [170] (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 - //SEG374 [171] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 + //SEG380 [171] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 lda xpos sta col - //SEG375 [172] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] - //SEG376 [172] 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 + //SEG381 [172] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] + //SEG382 [172] 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 - //SEG377 [172] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy - //SEG378 [172] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy - //SEG379 play_collision::@2 + //SEG383 [172] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy + //SEG384 [172] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy + //SEG385 play_collision::@2 b2: - //SEG380 [173] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG386 [173] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG381 [174] 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 + //SEG387 [174] 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 - //SEG382 play_collision::@8 - //SEG383 [175] 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 + //SEG388 play_collision::@8 + //SEG389 [175] 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 - //SEG384 [176] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] - //SEG385 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG390 [176] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] + //SEG391 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_BOTTOM - //SEG386 play_collision::@return + //SEG392 play_collision::@return breturn: - //SEG387 [177] return + //SEG393 [177] return rts - //SEG388 play_collision::@4 + //SEG394 play_collision::@4 b4: - //SEG389 [178] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG395 [178] (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 - //SEG390 [179] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuaa_eq_0_then_la1 + //SEG396 [179] 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 - //SEG391 [176] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] - //SEG392 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG397 [176] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] + //SEG398 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_LEFT jmp breturn - //SEG393 play_collision::@5 + //SEG399 play_collision::@5 b5: - //SEG394 [180] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG400 [180] 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 - //SEG395 [176] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] - //SEG396 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG401 [176] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] + //SEG402 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_RIGHT jmp breturn - //SEG397 play_collision::@6 + //SEG403 play_collision::@6 b6: - //SEG398 [181] 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 + //SEG404 [181] 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 - //SEG399 [176] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] - //SEG400 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG405 [176] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] + //SEG406 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_PLAYFIELD jmp breturn - //SEG401 play_collision::@3 + //SEG407 play_collision::@3 b3: - //SEG402 [182] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG408 [182] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG403 [183] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx + //SEG409 [183] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx inx - //SEG404 [184] 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 + //SEG410 [184] 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 - //SEG405 play_collision::@17 - //SEG406 [185] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG411 play_collision::@17 + //SEG412 [185] (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 - //SEG407 [186] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG413 [186] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG408 [187] 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 + //SEG414 [187] 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 - //SEG409 [176] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] - //SEG410 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG415 [176] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] + //SEG416 [176] phi (byte) play_collision::return#14 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_NONE jmp breturn - //SEG411 play_collision::@20 + //SEG417 play_collision::@20 b20: - //SEG412 [188] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG418 [188] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG413 [169] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] - //SEG414 [169] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy - //SEG415 [169] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy - //SEG416 [169] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy + //SEG419 [169] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] + //SEG420 [169] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy + //SEG421 [169] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy + //SEG422 [169] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy jmp b1 - //SEG417 play_collision::@21 + //SEG423 play_collision::@21 b21: - //SEG418 [189] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG424 [189] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG419 [172] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] - //SEG420 [172] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy - //SEG421 [172] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy - //SEG422 [172] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy + //SEG425 [172] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] + //SEG426 [172] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy + //SEG427 [172] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy + //SEG428 [172] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy jmp b2 } -//SEG423 play_move_leftright +//SEG429 play_move_leftright play_move_leftright: { - //SEG424 [190] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG430 [190] 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 - //SEG425 play_move_leftright::@6 - //SEG426 [191] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG431 play_move_leftright::@6 + //SEG432 [191] 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 - //SEG427 play_move_leftright::@7 - //SEG428 [192] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG433 play_move_leftright::@7 + //SEG434 [192] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_xpos iny sty play_collision.xpos - //SEG429 [193] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 -- vbuyy=vbuz1 + //SEG435 [193] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos - //SEG430 [194] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuxx=vbuz1 + //SEG436 [194] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuxx=vbuz1 ldx current_orientation - //SEG431 [195] (byte*~) current_piece#78 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG437 [195] (byte*~) current_piece#78 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_78 lda current_piece+1 sta current_piece_78+1 - //SEG432 [196] call play_collision - //SEG433 [166] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] - //SEG434 [166] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy - //SEG435 [166] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy - //SEG436 [166] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy - //SEG437 [166] phi (byte*) current_piece#12 = (byte*~) current_piece#78 [phi:play_move_leftright::@7->play_collision#3] -- register_copy + //SEG438 [196] call play_collision + //SEG439 [166] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] + //SEG440 [166] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy + //SEG441 [166] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy + //SEG442 [166] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy + //SEG443 [166] phi (byte*) current_piece#12 = (byte*~) current_piece#78 [phi:play_move_leftright::@7->play_collision#3] -- register_copy jsr play_collision - //SEG438 [197] (byte) play_collision::return#12 ← (byte) play_collision::return#14 + //SEG444 [197] (byte) play_collision::return#12 ← (byte) play_collision::return#14 // (byte) play_collision::return#12 = (byte) play_collision::return#14 // register copy reg byte a - //SEG439 play_move_leftright::@15 - //SEG440 [198] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 + //SEG445 play_move_leftright::@15 + //SEG446 [198] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 // (byte~) play_move_leftright::$4 = (byte) play_collision::return#12 // register copy reg byte a - //SEG441 [199] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG447 [199] 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 - //SEG442 play_move_leftright::@8 - //SEG443 [200] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 -- vbuz1=_inc_vbuz1 + //SEG448 play_move_leftright::@8 + //SEG449 [200] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 -- vbuz1=_inc_vbuz1 inc current_xpos - //SEG444 [201] 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] + //SEG450 [201] 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: - //SEG445 [201] phi (byte) current_xpos#19 = (byte) current_xpos#4 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy - //SEG446 [201] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 + //SEG451 [201] phi (byte) current_xpos#19 = (byte) current_xpos#4 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy + //SEG452 [201] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG447 [201] 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] + //SEG453 [201] 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: - //SEG448 [201] phi (byte) current_xpos#19 = (byte) current_xpos#1 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy - //SEG449 [201] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 + //SEG454 [201] phi (byte) current_xpos#19 = (byte) current_xpos#1 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy + //SEG455 [201] phi (byte) play_move_leftright::return#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #0 - //SEG450 play_move_leftright::@return + //SEG456 play_move_leftright::@return breturn: - //SEG451 [202] return + //SEG457 [202] return rts - //SEG452 play_move_leftright::@1 + //SEG458 play_move_leftright::@1 b1: - //SEG453 [203] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //SEG459 [203] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 ldx current_xpos dex stx play_collision.xpos - //SEG454 [204] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 -- vbuyy=vbuz1 + //SEG460 [204] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos - //SEG455 [205] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuxx=vbuz1 + //SEG461 [205] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuxx=vbuz1 ldx current_orientation - //SEG456 [206] (byte*~) current_piece#77 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG462 [206] (byte*~) current_piece#77 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece sta current_piece_77 lda current_piece+1 sta current_piece_77+1 - //SEG457 [207] call play_collision - //SEG458 [166] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] - //SEG459 [166] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy - //SEG460 [166] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy - //SEG461 [166] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy - //SEG462 [166] phi (byte*) current_piece#12 = (byte*~) current_piece#77 [phi:play_move_leftright::@1->play_collision#3] -- register_copy + //SEG463 [207] call play_collision + //SEG464 [166] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] + //SEG465 [166] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy + //SEG466 [166] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy + //SEG467 [166] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy + //SEG468 [166] phi (byte*) current_piece#12 = (byte*~) current_piece#77 [phi:play_move_leftright::@1->play_collision#3] -- register_copy jsr play_collision - //SEG463 [208] (byte) play_collision::return#1 ← (byte) play_collision::return#14 + //SEG469 [208] (byte) play_collision::return#1 ← (byte) play_collision::return#14 // (byte) play_collision::return#1 = (byte) play_collision::return#14 // register copy reg byte a - //SEG464 play_move_leftright::@14 - //SEG465 [209] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + //SEG470 play_move_leftright::@14 + //SEG471 [209] (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 - //SEG466 [210] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG472 [210] 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 - //SEG467 play_move_leftright::@11 - //SEG468 [211] (byte) current_xpos#4 ← -- (byte) current_xpos#1 -- vbuz1=_dec_vbuz1 + //SEG473 play_move_leftright::@11 + //SEG474 [211] (byte) current_xpos#4 ← -- (byte) current_xpos#1 -- vbuz1=_dec_vbuz1 dec current_xpos jmp b2 } -//SEG469 play_move_down +//SEG475 play_move_down play_move_down: { - //SEG470 [212] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 + //SEG476 [212] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG471 [213] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 + //SEG477 [213] 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 - //SEG472 [214] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] - //SEG473 play_move_down::@8 - //SEG474 [215] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] - //SEG475 [215] 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 + //SEG478 [214] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG479 play_move_down::@8 + //SEG480 [215] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG481 [215] 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 - //SEG476 [215] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG482 [215] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b3: - //SEG477 [215] 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 + //SEG483 [215] 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 - //SEG478 play_move_down::@1 + //SEG484 play_move_down::@1 b1: - //SEG479 [216] call keyboard_event_pressed - //SEG480 [324] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] - //SEG481 [324] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG485 [216] call keyboard_event_pressed + //SEG486 [332] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG487 [332] 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 - //SEG482 [217] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + //SEG488 [217] (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 - //SEG483 play_move_down::@17 - //SEG484 [218] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + //SEG489 play_move_down::@17 + //SEG490 [218] (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 - //SEG485 [219] 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 + //SEG491 [219] 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 - //SEG486 play_move_down::@9 - //SEG487 [220] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG492 play_move_down::@9 + //SEG493 [220] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 lda current_movedown_counter cmp #current_movedown_fast bcc b2 - //SEG488 play_move_down::@10 - //SEG489 [221] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx + //SEG494 play_move_down::@10 + //SEG495 [221] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx inx - //SEG490 [222] 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] - //SEG491 [222] 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 - //SEG492 play_move_down::@2 + //SEG496 [222] 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] + //SEG497 [222] 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 + //SEG498 play_move_down::@2 b2: - //SEG493 [223] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG499 [223] if((byte) current_movedown_counter#1<(byte) current_movedown_slow#12) goto play_move_down::@4 -- vbuz1_lt_vbuz2_then_la1 lda current_movedown_counter - cmp #current_movedown_slow + cmp current_movedown_slow bcc b4 - //SEG494 play_move_down::@11 - //SEG495 [224] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx + //SEG500 play_move_down::@11 + //SEG501 [224] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx inx - //SEG496 [225] 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] - //SEG497 [225] 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 - //SEG498 play_move_down::@4 + //SEG502 [225] 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] + //SEG503 [225] 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 + //SEG504 play_move_down::@4 b4: - //SEG499 [226] 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 + //SEG505 [226] 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 - //SEG500 play_move_down::@12 - //SEG501 [227] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 + //SEG506 play_move_down::@12 + //SEG507 [227] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 ldy current_ypos iny - //SEG502 [228] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 + //SEG508 [228] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG503 [229] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuxx=vbuz1 + //SEG509 [229] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuxx=vbuz1 ldx current_orientation - //SEG504 [230] (byte*~) current_piece#76 ← (byte*) current_piece#16 -- pbuz1=pbuz2 + //SEG510 [230] (byte*~) current_piece#76 ← (byte*) current_piece#16 -- pbuz1=pbuz2 lda current_piece sta current_piece_76 lda current_piece+1 sta current_piece_76+1 - //SEG505 [231] call play_collision - //SEG506 [166] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] - //SEG507 [166] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy - //SEG508 [166] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy - //SEG509 [166] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy - //SEG510 [166] phi (byte*) current_piece#12 = (byte*~) current_piece#76 [phi:play_move_down::@12->play_collision#3] -- register_copy + //SEG511 [231] call play_collision + //SEG512 [166] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] + //SEG513 [166] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy + //SEG514 [166] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy + //SEG515 [166] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy + //SEG516 [166] phi (byte*) current_piece#12 = (byte*~) current_piece#76 [phi:play_move_down::@12->play_collision#3] -- register_copy jsr play_collision - //SEG511 [232] (byte) play_collision::return#0 ← (byte) play_collision::return#14 + //SEG517 [232] (byte) play_collision::return#0 ← (byte) play_collision::return#14 // (byte) play_collision::return#0 = (byte) play_collision::return#14 // register copy reg byte a - //SEG512 play_move_down::@18 - //SEG513 [233] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + //SEG518 play_move_down::@18 + //SEG519 [233] (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 - //SEG514 [234] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuaa_eq_vbuc1_then_la1 + //SEG520 [234] 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 - //SEG515 [235] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] - //SEG516 play_move_down::@13 - //SEG517 [236] call play_lock_current + //SEG521 [235] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG522 play_move_down::@13 + //SEG523 [236] call play_lock_current jsr play_lock_current - //SEG518 [237] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] - //SEG519 play_move_down::@19 - //SEG520 [238] call play_remove_lines - //SEG521 [284] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] + //SEG524 [237] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG525 play_move_down::@19 + //SEG526 [238] call play_remove_lines + //SEG527 [292] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] jsr play_remove_lines - //SEG522 [239] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 -- vbuaa=vbuz1 + //SEG528 [239] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 -- vbuaa=vbuz1 lda play_remove_lines.removed - //SEG523 play_move_down::@20 - //SEG524 [240] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 + //SEG529 play_move_down::@20 + //SEG530 [240] (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 - //SEG525 [241] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuxx=vbuaa + //SEG531 [241] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuxx=vbuaa tax - //SEG526 [242] call play_update_score + //SEG532 [242] call play_update_score jsr play_update_score - //SEG527 [243] phi from play_move_down::@20 to play_move_down::@21 [phi:play_move_down::@20->play_move_down::@21] - //SEG528 play_move_down::@21 - //SEG529 [244] call play_spawn_current - //SEG530 [250] phi from play_move_down::@21 to play_spawn_current [phi:play_move_down::@21->play_spawn_current] + //SEG533 [243] phi from play_move_down::@20 to play_move_down::@21 [phi:play_move_down::@20->play_move_down::@21] + //SEG534 play_move_down::@21 + //SEG535 [244] call play_spawn_current + //SEG536 [250] phi from play_move_down::@21 to play_spawn_current [phi:play_move_down::@21->play_spawn_current] jsr play_spawn_current - //SEG531 [245] (byte*~) current_piece#80 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG537 [245] (byte*~) current_piece#80 ← (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 - //SEG532 [246] phi from play_move_down::@21 to play_move_down::@7 [phi:play_move_down::@21->play_move_down::@7] - //SEG533 [246] phi (byte) current_piece_char#20 = (byte) current_piece_char#12 [phi:play_move_down::@21->play_move_down::@7#0] -- register_copy - //SEG534 [246] phi (byte) current_xpos#33 = (byte) current_xpos#23 [phi:play_move_down::@21->play_move_down::@7#1] -- register_copy - //SEG535 [246] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#16 [phi:play_move_down::@21->play_move_down::@7#2] -- register_copy - //SEG536 [246] phi (byte) current_orientation#29 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@21->play_move_down::@7#3] -- vbuz1=vbuc1 + //SEG538 [246] phi from play_move_down::@21 to play_move_down::@7 [phi:play_move_down::@21->play_move_down::@7] + //SEG539 [246] phi (byte) current_piece_char#20 = (byte) current_piece_char#12 [phi:play_move_down::@21->play_move_down::@7#0] -- register_copy + //SEG540 [246] phi (byte) current_xpos#33 = (byte) current_xpos#23 [phi:play_move_down::@21->play_move_down::@7#1] -- register_copy + //SEG541 [246] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#16 [phi:play_move_down::@21->play_move_down::@7#2] -- register_copy + //SEG542 [246] phi (byte) current_orientation#29 = (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 - //SEG537 [246] phi (byte*) current_piece#20 = (byte*~) current_piece#80 [phi:play_move_down::@21->play_move_down::@7#4] -- register_copy - //SEG538 [246] phi (byte) level_bcd#21 = (byte) level_bcd#14 [phi:play_move_down::@21->play_move_down::@7#5] -- register_copy - //SEG539 [246] phi (dword) score_bcd#20 = (dword) score_bcd#12 [phi:play_move_down::@21->play_move_down::@7#6] -- register_copy - //SEG540 [246] phi (word) lines_bcd#20 = (word) lines_bcd#13 [phi:play_move_down::@21->play_move_down::@7#7] -- register_copy - //SEG541 [246] phi (byte) current_ypos#29 = (byte) current_ypos#18 [phi:play_move_down::@21->play_move_down::@7#8] -- register_copy - //SEG542 play_move_down::@7 + //SEG543 [246] phi (byte*) current_piece#20 = (byte*~) current_piece#80 [phi:play_move_down::@21->play_move_down::@7#4] -- register_copy + //SEG544 [246] phi (byte) level_bcd#25 = (byte) level_bcd#15 [phi:play_move_down::@21->play_move_down::@7#5] -- register_copy + //SEG545 [246] phi (byte) current_movedown_slow#30 = (byte) current_movedown_slow#19 [phi:play_move_down::@21->play_move_down::@7#6] -- register_copy + //SEG546 [246] phi (byte) level#24 = (byte) level#14 [phi:play_move_down::@21->play_move_down::@7#7] -- register_copy + //SEG547 [246] phi (dword) score_bcd#20 = (dword) score_bcd#12 [phi:play_move_down::@21->play_move_down::@7#8] -- register_copy + //SEG548 [246] phi (word) lines_bcd#20 = (word) lines_bcd#13 [phi:play_move_down::@21->play_move_down::@7#9] -- register_copy + //SEG549 [246] phi (byte) current_ypos#29 = (byte) current_ypos#18 [phi:play_move_down::@21->play_move_down::@7#10] -- register_copy + //SEG550 play_move_down::@7 b7: - //SEG543 [247] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] - //SEG544 [247] phi (byte) current_piece_char#1 = (byte) current_piece_char#20 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG545 [247] phi (byte) current_xpos#1 = (byte) current_xpos#33 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG546 [247] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#26 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG547 [247] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG548 [247] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG549 [247] phi (byte) level_bcd#11 = (byte) level_bcd#21 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG550 [247] phi (dword) score_bcd#10 = (dword) score_bcd#20 [phi:play_move_down::@7->play_move_down::@return#6] -- register_copy - //SEG551 [247] phi (word) lines_bcd#11 = (word) lines_bcd#20 [phi:play_move_down::@7->play_move_down::@return#7] -- register_copy - //SEG552 [247] phi (byte) current_ypos#13 = (byte) current_ypos#29 [phi:play_move_down::@7->play_move_down::@return#8] -- register_copy - //SEG553 [247] phi (byte) current_movedown_counter#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#9] -- vbuz1=vbuc1 + //SEG551 [247] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG552 [247] phi (byte) current_piece_char#1 = (byte) current_piece_char#20 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG553 [247] phi (byte) current_xpos#1 = (byte) current_xpos#33 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG554 [247] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#26 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG555 [247] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy + //SEG556 [247] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy + //SEG557 [247] phi (byte) level_bcd#13 = (byte) level_bcd#25 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG558 [247] phi (byte) current_movedown_slow#17 = (byte) current_movedown_slow#30 [phi:play_move_down::@7->play_move_down::@return#6] -- register_copy + //SEG559 [247] phi (byte) level#12 = (byte) level#24 [phi:play_move_down::@7->play_move_down::@return#7] -- register_copy + //SEG560 [247] phi (dword) score_bcd#10 = (dword) score_bcd#20 [phi:play_move_down::@7->play_move_down::@return#8] -- register_copy + //SEG561 [247] phi (word) lines_bcd#11 = (word) lines_bcd#20 [phi:play_move_down::@7->play_move_down::@return#9] -- register_copy + //SEG562 [247] phi (byte) current_ypos#13 = (byte) current_ypos#29 [phi:play_move_down::@7->play_move_down::@return#10] -- register_copy + //SEG563 [247] phi (byte) current_movedown_counter#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#11] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG554 [247] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#10] -- vbuxx=vbuc1 + //SEG564 [247] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#12] -- vbuxx=vbuc1 ldx #1 jmp breturn - //SEG555 [247] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG565 [247] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] b5: - //SEG556 [247] phi (byte) current_piece_char#1 = (byte) current_piece_char#15 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG557 [247] phi (byte) current_xpos#1 = (byte) current_xpos#10 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG558 [247] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#20 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG559 [247] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG560 [247] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG561 [247] phi (byte) level_bcd#11 = (byte) level_bcd#16 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG562 [247] phi (dword) score_bcd#10 = (dword) score_bcd#14 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG563 [247] phi (word) lines_bcd#11 = (word) lines_bcd#15 [phi:play_move_down::@4->play_move_down::@return#7] -- register_copy - //SEG564 [247] phi (byte) current_ypos#13 = (byte) current_ypos#21 [phi:play_move_down::@4->play_move_down::@return#8] -- register_copy - //SEG565 [247] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#9] -- register_copy - //SEG566 [247] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#10] -- vbuxx=vbuc1 + //SEG566 [247] phi (byte) current_piece_char#1 = (byte) current_piece_char#15 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG567 [247] phi (byte) current_xpos#1 = (byte) current_xpos#10 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG568 [247] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#20 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG569 [247] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy + //SEG570 [247] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy + //SEG571 [247] phi (byte) level_bcd#13 = (byte) level_bcd#20 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG572 [247] phi (byte) current_movedown_slow#17 = (byte) current_movedown_slow#12 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy + //SEG573 [247] phi (byte) level#12 = (byte) level#19 [phi:play_move_down::@4->play_move_down::@return#7] -- register_copy + //SEG574 [247] phi (dword) score_bcd#10 = (dword) score_bcd#14 [phi:play_move_down::@4->play_move_down::@return#8] -- register_copy + //SEG575 [247] phi (word) lines_bcd#11 = (word) lines_bcd#15 [phi:play_move_down::@4->play_move_down::@return#9] -- register_copy + //SEG576 [247] phi (byte) current_ypos#13 = (byte) current_ypos#21 [phi:play_move_down::@4->play_move_down::@return#10] -- register_copy + //SEG577 [247] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#11] -- register_copy + //SEG578 [247] phi (byte) play_move_down::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#12] -- vbuxx=vbuc1 ldx #0 - //SEG567 play_move_down::@return + //SEG579 play_move_down::@return breturn: - //SEG568 [248] return + //SEG580 [248] return rts - //SEG569 play_move_down::@6 + //SEG581 play_move_down::@6 b6: - //SEG570 [249] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 -- vbuz1=_inc_vbuz1 + //SEG582 [249] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG571 [246] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] - //SEG572 [246] phi (byte) current_piece_char#20 = (byte) current_piece_char#15 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG573 [246] phi (byte) current_xpos#33 = (byte) current_xpos#10 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG574 [246] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#20 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG575 [246] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG576 [246] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG577 [246] phi (byte) level_bcd#21 = (byte) level_bcd#16 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy - //SEG578 [246] phi (dword) score_bcd#20 = (dword) score_bcd#14 [phi:play_move_down::@6->play_move_down::@7#6] -- register_copy - //SEG579 [246] phi (word) lines_bcd#20 = (word) lines_bcd#15 [phi:play_move_down::@6->play_move_down::@7#7] -- register_copy - //SEG580 [246] phi (byte) current_ypos#29 = (byte) current_ypos#0 [phi:play_move_down::@6->play_move_down::@7#8] -- register_copy + //SEG583 [246] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG584 [246] phi (byte) current_piece_char#20 = (byte) current_piece_char#15 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG585 [246] phi (byte) current_xpos#33 = (byte) current_xpos#10 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG586 [246] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#20 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG587 [246] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy + //SEG588 [246] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy + //SEG589 [246] phi (byte) level_bcd#25 = (byte) level_bcd#20 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG590 [246] phi (byte) current_movedown_slow#30 = (byte) current_movedown_slow#12 [phi:play_move_down::@6->play_move_down::@7#6] -- register_copy + //SEG591 [246] phi (byte) level#24 = (byte) level#19 [phi:play_move_down::@6->play_move_down::@7#7] -- register_copy + //SEG592 [246] phi (dword) score_bcd#20 = (dword) score_bcd#14 [phi:play_move_down::@6->play_move_down::@7#8] -- register_copy + //SEG593 [246] phi (word) lines_bcd#20 = (word) lines_bcd#15 [phi:play_move_down::@6->play_move_down::@7#9] -- register_copy + //SEG594 [246] phi (byte) current_ypos#29 = (byte) current_ypos#0 [phi:play_move_down::@6->play_move_down::@7#10] -- register_copy jmp b7 } -//SEG581 play_spawn_current +//SEG595 play_spawn_current play_spawn_current: { .label _3 = 4 - //SEG582 [251] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] - //SEG583 [251] 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 + //SEG596 [251] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] + //SEG597 [251] 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 - //SEG584 play_spawn_current::@1 + //SEG598 play_spawn_current::@1 b1: - //SEG585 [252] 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 + //SEG599 [252] 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 - //SEG586 play_spawn_current::@3 - //SEG587 [253] (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 + //SEG600 play_spawn_current::@3 + //SEG601 [253] (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 - //SEG588 [254] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 + //SEG602 [254] (byte*) current_piece_gfx#16 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 tay lda PIECES,y sta current_piece_gfx lda PIECES+1,y sta current_piece_gfx+1 - //SEG589 [255] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG603 [255] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_START_X,x sta current_xpos - //SEG590 [256] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG604 [256] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_START_Y,x sta current_ypos - //SEG591 [257] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG605 [257] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_CHARS,x sta current_piece_char - //SEG592 play_spawn_current::@return - //SEG593 [258] return + //SEG606 play_spawn_current::@return + //SEG607 [258] return rts - //SEG594 [259] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] - //SEG595 play_spawn_current::@2 + //SEG608 [259] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] + //SEG609 play_spawn_current::@2 b2: - //SEG596 [260] call sid_rnd + //SEG610 [260] call sid_rnd jsr sid_rnd - //SEG597 [261] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + //SEG611 [261] (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 - //SEG598 play_spawn_current::@7 - //SEG599 [262] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 + //SEG612 play_spawn_current::@7 + //SEG613 [262] (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 - //SEG600 [263] (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 + //SEG614 [263] (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 - //SEG601 [251] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] - //SEG602 [251] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@7->play_spawn_current::@1#0] -- register_copy + //SEG615 [251] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] + //SEG616 [251] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@7->play_spawn_current::@1#0] -- register_copy jmp b1 } -//SEG603 sid_rnd +//SEG617 sid_rnd sid_rnd: { - //SEG604 [264] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 + //SEG618 [264] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 lda SID_VOICE3_OSC - //SEG605 sid_rnd::@return - //SEG606 [265] return + //SEG619 sid_rnd::@return + //SEG620 [265] return rts } -//SEG607 play_update_score +//SEG621 play_update_score play_update_score: { .label lines_before = 4 - .label add_bcd = $27 - //SEG608 [266] 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 + .label add_bcd = $29 + //SEG622 [266] 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 - //SEG609 play_update_score::@4 - //SEG610 [267] (byte~) play_update_score::$2 ← < (word) lines_bcd#15 -- vbuaa=_lo_vwuz1 + //SEG623 play_update_score::@3 + //SEG624 [267] (byte~) play_update_score::$2 ← < (word) lines_bcd#15 -- vbuaa=_lo_vwuz1 lda lines_bcd - //SEG611 [268] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuaa_band_vbuc1 + //SEG625 [268] (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 - //SEG612 [269] (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 + //SEG626 [269] (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 - //SEG613 [270] (dword) play_update_score::add_bcd#0 ← *((const dword[]) score_add_bcd#0 + (byte~) play_update_score::$4) -- vduz1=pduc1_derefidx_vbuaa + //SEG627 [270] (dword) play_update_score::add_bcd#0 ← *((const dword[]) score_add_bcd#0 + (byte~) play_update_score::$4) -- vduz1=pduc1_derefidx_vbuaa tay lda score_add_bcd,y sta add_bcd @@ -20905,9 +21608,9 @@ play_update_score: { sta add_bcd+2 lda score_add_bcd+3,y sta add_bcd+3 - //SEG614 asm { sed } + //SEG628 asm { sed } sed - //SEG615 [272] (word) lines_bcd#23 ← (word) lines_bcd#15 + (byte) play_update_score::removed#0 -- vwuz1=vwuz1_plus_vbuxx + //SEG629 [272] (word) lines_bcd#23 ← (word) lines_bcd#15 + (byte) play_update_score::removed#0 -- vwuz1=vwuz1_plus_vbuxx txa clc adc lines_bcd @@ -20915,7 +21618,7 @@ play_update_score: { lda #0 adc lines_bcd+1 sta lines_bcd+1 - //SEG616 [273] (dword) score_bcd#23 ← (dword) score_bcd#14 + (dword) play_update_score::add_bcd#0 -- vduz1=vduz1_plus_vduz2 + //SEG630 [273] (dword) score_bcd#23 ← (dword) score_bcd#14 + (dword) play_update_score::add_bcd#0 -- vduz1=vduz1_plus_vduz2 lda score_bcd clc adc add_bcd @@ -20929,152 +21632,189 @@ play_update_score: { lda score_bcd+3 adc add_bcd+3 sta score_bcd+3 - //SEG617 asm { cld } + //SEG631 asm { cld } cld - //SEG618 [275] (byte~) play_update_score::$5 ← < (word) lines_bcd#23 -- vbuaa=_lo_vwuz1 + //SEG632 [275] (byte~) play_update_score::$5 ← < (word) lines_bcd#23 -- vbuaa=_lo_vwuz1 lda lines_bcd - //SEG619 [276] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 -- vbuaa=vbuaa_band_vbuc1 + //SEG633 [276] (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 - //SEG620 [277] 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 + //SEG634 [277] 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 - //SEG621 play_update_score::@5 - //SEG622 [278] (byte) level_bcd#13 ← ++ (byte) level_bcd#16 -- vbuz1=_inc_vbuz1 + //SEG635 [278] phi from play_update_score::@3 to play_update_score::@4 [phi:play_update_score::@3->play_update_score::@4] + //SEG636 play_update_score::@4 + //SEG637 [279] call play_increase_level + jsr play_increase_level + //SEG638 [280] 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] + //SEG639 [280] phi (byte) level_bcd#15 = (byte) level_bcd#20 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#0] -- register_copy + //SEG640 [280] phi (byte) current_movedown_slow#19 = (byte) current_movedown_slow#12 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#1] -- register_copy + //SEG641 [280] phi (byte) level#14 = (byte) level#19 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#2] -- register_copy + //SEG642 [280] phi (dword) score_bcd#12 = (dword) score_bcd#14 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#3] -- register_copy + //SEG643 [280] phi (word) lines_bcd#13 = (word) lines_bcd#15 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#4] -- register_copy + //SEG644 play_update_score::@return + breturn: + //SEG645 [281] return + rts +} +//SEG646 play_increase_level +play_increase_level: { + //SEG647 [282] (byte) level#16 ← ++ (byte) level#19 -- vbuz1=_inc_vbuz1 + inc level + //SEG648 [283] if((byte) level#16>(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 + !: + //SEG649 play_increase_level::@4 + //SEG650 [284] (byte) current_movedown_slow#8 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#16) -- vbuz1=pbuc1_derefidx_vbuz2 + ldy level + lda MOVEDOWN_SLOW_SPEEDS,y + sta current_movedown_slow + //SEG651 [285] phi from play_increase_level::@4 to play_increase_level::@2 [phi:play_increase_level::@4->play_increase_level::@2] + //SEG652 [285] phi (byte) current_movedown_slow#20 = (byte) current_movedown_slow#8 [phi:play_increase_level::@4->play_increase_level::@2#0] -- register_copy + jmp b2 + //SEG653 [285] phi from play_increase_level to play_increase_level::@2 [phi:play_increase_level->play_increase_level::@2] + b1: + //SEG654 [285] phi (byte) current_movedown_slow#20 = (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 + //SEG655 play_increase_level::@2 + b2: + //SEG656 [286] (byte) level_bcd#17 ← ++ (byte) level_bcd#20 -- vbuz1=_inc_vbuz1 inc level_bcd - //SEG623 [279] (byte~) play_update_score::$9 ← (byte) level_bcd#13 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG657 [287] (byte~) play_increase_level::$1 ← (byte) level_bcd#17 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 lda #$f and level_bcd - //SEG624 [280] if((byte~) play_update_score::$9!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_update_score::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG658 [288] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@return -- vbuaa_neq_vbuc1_then_la1 cmp #$a bne breturn - //SEG625 play_update_score::@6 - //SEG626 [281] (byte) level_bcd#4 ← (byte) level_bcd#13 + (byte/signed byte/word/signed word/dword/signed dword) 6 -- vbuz1=vbuz1_plus_vbuc1 + //SEG659 play_increase_level::@6 + //SEG660 [289] (byte) level_bcd#6 ← (byte) level_bcd#17 + (byte/signed byte/word/signed word/dword/signed dword) 6 -- vbuz1=vbuz1_plus_vbuc1 lda #6 clc adc level_bcd sta level_bcd - //SEG627 [282] phi from play_update_score play_update_score::@4 play_update_score::@5 play_update_score::@6 to play_update_score::@return [phi:play_update_score/play_update_score::@4/play_update_score::@5/play_update_score::@6->play_update_score::@return] - //SEG628 [282] phi (byte) level_bcd#14 = (byte) level_bcd#16 [phi:play_update_score/play_update_score::@4/play_update_score::@5/play_update_score::@6->play_update_score::@return#0] -- register_copy - //SEG629 [282] phi (dword) score_bcd#12 = (dword) score_bcd#14 [phi:play_update_score/play_update_score::@4/play_update_score::@5/play_update_score::@6->play_update_score::@return#1] -- register_copy - //SEG630 [282] phi (word) lines_bcd#13 = (word) lines_bcd#15 [phi:play_update_score/play_update_score::@4/play_update_score::@5/play_update_score::@6->play_update_score::@return#2] -- register_copy - //SEG631 play_update_score::@return + //SEG661 [290] phi from play_increase_level::@2 play_increase_level::@6 to play_increase_level::@return [phi:play_increase_level::@2/play_increase_level::@6->play_increase_level::@return] + //SEG662 [290] phi (byte) level_bcd#18 = (byte) level_bcd#17 [phi:play_increase_level::@2/play_increase_level::@6->play_increase_level::@return#0] -- register_copy + //SEG663 play_increase_level::@return breturn: - //SEG632 [283] return + //SEG664 [291] return rts } -//SEG633 play_remove_lines +//SEG665 play_remove_lines play_remove_lines: { .label c = $c .label x = $a .label y = 4 .label removed = 9 .label full = $b - //SEG634 [285] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] - //SEG635 [285] 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 + //SEG666 [293] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] + //SEG667 [293] 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 - //SEG636 [285] 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 + //SEG668 [293] 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 - //SEG637 [285] 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 + //SEG669 [293] 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 - //SEG638 [285] 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 + //SEG670 [293] 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 - //SEG639 [285] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] - //SEG640 [285] 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 - //SEG641 [285] 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 - //SEG642 [285] 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 - //SEG643 [285] 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 - //SEG644 play_remove_lines::@1 + //SEG671 [293] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] + //SEG672 [293] 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 + //SEG673 [293] 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 + //SEG674 [293] 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 + //SEG675 [293] 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 + //SEG676 play_remove_lines::@1 b1: - //SEG645 [286] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] - //SEG646 [286] 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 + //SEG677 [294] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] + //SEG678 [294] 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 - //SEG647 [286] 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 + //SEG679 [294] 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 - //SEG648 [286] 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 - //SEG649 [286] 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 - //SEG650 [286] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] - //SEG651 [286] 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 - //SEG652 [286] 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 - //SEG653 [286] 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 - //SEG654 [286] 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 - //SEG655 play_remove_lines::@2 + //SEG680 [294] 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 + //SEG681 [294] 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 + //SEG682 [294] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] + //SEG683 [294] 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 + //SEG684 [294] 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 + //SEG685 [294] 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 + //SEG686 [294] 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 + //SEG687 play_remove_lines::@2 b2: - //SEG656 [287] (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 + //SEG688 [295] (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 - //SEG657 [288] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy + //SEG689 [296] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy dey - //SEG658 [289] 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 + //SEG690 [297] 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 - //SEG659 [290] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] - //SEG660 [290] 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 + //SEG691 [298] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] + //SEG692 [298] 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 - //SEG661 play_remove_lines::@3 + //SEG693 play_remove_lines::@3 b3: - //SEG662 [291] *((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 + //SEG694 [299] *((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 - //SEG663 [292] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx + //SEG695 [300] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx dex - //SEG664 [293] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 + //SEG696 [301] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG665 [294] 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 + //SEG697 [302] 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 - //SEG666 play_remove_lines::@9 - //SEG667 [295] 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 + //SEG698 play_remove_lines::@9 + //SEG699 [303] 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 - //SEG668 play_remove_lines::@10 - //SEG669 [296] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuxx=vbuxx_plus_vbuc1 + //SEG700 play_remove_lines::@10 + //SEG701 [304] (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 - //SEG670 [297] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 + //SEG702 [305] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 inc removed - //SEG671 [298] 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] - //SEG672 [298] 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 - //SEG673 [298] 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 - //SEG674 play_remove_lines::@4 + //SEG703 [306] 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] + //SEG704 [306] 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 + //SEG705 [306] 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 + //SEG706 play_remove_lines::@4 b4: - //SEG675 [299] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 + //SEG707 [307] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG676 [300] 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 + //SEG708 [308] 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 - //SEG677 [301] 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] - //SEG678 [301] 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 - //SEG679 play_remove_lines::@5 + //SEG709 [309] 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] + //SEG710 [309] 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 + //SEG711 play_remove_lines::@5 b5: - //SEG680 [302] 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 + //SEG712 [310] 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 - //SEG681 play_remove_lines::@return - //SEG682 [303] return + //SEG713 play_remove_lines::@return + //SEG714 [311] return rts - //SEG683 play_remove_lines::@6 + //SEG715 play_remove_lines::@6 b6: - //SEG684 [304] *((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 + //SEG716 [312] *((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 - //SEG685 [305] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx + //SEG717 [313] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx dex jmp b5 - //SEG686 [306] phi from play_remove_lines::@2 to play_remove_lines::@18 [phi:play_remove_lines::@2->play_remove_lines::@18] - //SEG687 play_remove_lines::@18 - //SEG688 [290] phi from play_remove_lines::@18 to play_remove_lines::@3 [phi:play_remove_lines::@18->play_remove_lines::@3] - //SEG689 [290] 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 + //SEG718 [314] phi from play_remove_lines::@2 to play_remove_lines::@18 [phi:play_remove_lines::@2->play_remove_lines::@18] + //SEG719 play_remove_lines::@18 + //SEG720 [298] phi from play_remove_lines::@18 to play_remove_lines::@3 [phi:play_remove_lines::@18->play_remove_lines::@3] + //SEG721 [298] 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 } -//SEG690 play_lock_current +//SEG722 play_lock_current play_lock_current: { .label ypos2 = $10 .label playfield_line = 5 @@ -21085,432 +21825,432 @@ play_lock_current: { .label i_3 = 9 .label i_7 = 9 .label i_9 = 9 - //SEG691 [307] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 + //SEG723 [315] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 asl ypos2 - //SEG692 [308] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] - //SEG693 [308] 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 + //SEG724 [316] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] + //SEG725 [316] 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 - //SEG694 [308] 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 + //SEG726 [316] 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 - //SEG695 [308] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy - //SEG696 play_lock_current::@1 + //SEG727 [316] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy + //SEG728 play_lock_current::@1 b1: - //SEG697 [309] (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 + //SEG729 [317] (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 - //SEG698 [310] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 + //SEG730 [318] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG699 [311] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] - //SEG700 [311] 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 + //SEG731 [319] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] + //SEG732 [319] 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 - //SEG701 [311] 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 - //SEG702 [311] 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 - //SEG703 play_lock_current::@2 + //SEG733 [319] 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 + //SEG734 [319] 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 + //SEG735 play_lock_current::@2 b2: - //SEG704 [312] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG736 [320] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG705 [313] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG737 [321] if(*((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 ldy i_2 lda (current_piece_gfx),y cmp #0 beq b3 - //SEG706 play_lock_current::@4 - //SEG707 [314] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG738 play_lock_current::@4 + //SEG739 [322] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_char ldy col sta (playfield_line),y - //SEG708 play_lock_current::@3 + //SEG740 play_lock_current::@3 b3: - //SEG709 [315] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG741 [323] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG710 [316] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx + //SEG742 [324] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG711 [317] 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 + //SEG743 [325] 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 - //SEG712 play_lock_current::@5 - //SEG713 [318] (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 + //SEG744 play_lock_current::@5 + //SEG745 [326] (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 - //SEG714 [319] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG746 [327] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG715 [320] 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 + //SEG747 [328] 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 - //SEG716 play_lock_current::@return - //SEG717 [321] return + //SEG748 play_lock_current::@return + //SEG749 [329] return rts - //SEG718 play_lock_current::@7 + //SEG750 play_lock_current::@7 b7: - //SEG719 [322] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG751 [330] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG720 [308] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] - //SEG721 [308] 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 - //SEG722 [308] 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 - //SEG723 [308] 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 + //SEG752 [316] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] + //SEG753 [316] 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 + //SEG754 [316] 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 + //SEG755 [316] 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 - //SEG724 play_lock_current::@8 + //SEG756 play_lock_current::@8 b8: - //SEG725 [323] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG757 [331] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG726 [311] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] - //SEG727 [311] 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 - //SEG728 [311] 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 - //SEG729 [311] 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 + //SEG758 [319] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] + //SEG759 [319] 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 + //SEG760 [319] 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 + //SEG761 [319] 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 } -//SEG730 keyboard_event_pressed +//SEG762 keyboard_event_pressed keyboard_event_pressed: { .label row_bits = $a .label keycode = 9 - //SEG731 [325] (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 + //SEG763 [333] (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 - //SEG732 [326] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa + //SEG764 [334] (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 - //SEG733 [327] (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 + //SEG765 [335] (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 - //SEG734 [328] (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 + //SEG766 [336] (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 - //SEG735 keyboard_event_pressed::@return - //SEG736 [329] return + //SEG767 keyboard_event_pressed::@return + //SEG768 [337] return rts } -//SEG737 keyboard_event_get +//SEG769 keyboard_event_get keyboard_event_get: { - //SEG738 [330] 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 + //SEG770 [338] 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 - //SEG739 keyboard_event_get::@3 - //SEG740 [331] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG771 keyboard_event_get::@3 + //SEG772 [339] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG741 [332] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuaa=pbuc1_derefidx_vbuz1 + //SEG773 [340] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuaa=pbuc1_derefidx_vbuz1 ldy keyboard_events_size lda keyboard_events,y - //SEG742 [333] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] - //SEG743 [333] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG744 [333] 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 + //SEG774 [341] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG775 [341] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG776 [341] 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 - //SEG745 [333] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG777 [341] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] b1: - //SEG746 [333] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG747 [333] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuaa=vbuc1 + //SEG778 [341] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG779 [341] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuaa=vbuc1 lda #$ff - //SEG748 keyboard_event_get::@return + //SEG780 keyboard_event_get::@return breturn: - //SEG749 [334] return + //SEG781 [342] return rts } -//SEG750 keyboard_event_scan +//SEG782 keyboard_event_scan keyboard_event_scan: { .label row_scan = $b .label keycode = $a .label row = 9 - //SEG751 [336] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] - //SEG752 [336] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG753 [336] 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 + //SEG783 [344] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + //SEG784 [344] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG785 [344] 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 - //SEG754 [336] 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 + //SEG786 [344] 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 - //SEG755 [336] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] - //SEG756 [336] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG757 [336] 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 - //SEG758 [336] 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 - //SEG759 keyboard_event_scan::@1 + //SEG787 [344] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG788 [344] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG789 [344] 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 + //SEG790 [344] 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 + //SEG791 keyboard_event_scan::@1 b1: - //SEG760 [337] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 + //SEG792 [345] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 ldx row - //SEG761 [338] call keyboard_matrix_read + //SEG793 [346] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG762 [339] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + //SEG794 [347] (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 - //SEG763 keyboard_event_scan::@25 - //SEG764 [340] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa + //SEG795 keyboard_event_scan::@25 + //SEG796 [348] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa sta row_scan - //SEG765 [341] 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 + //SEG797 [349] 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 - //SEG766 keyboard_event_scan::@13 - //SEG767 [342] (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 + //SEG798 keyboard_event_scan::@13 + //SEG799 [350] (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 - //SEG768 [343] 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] - //SEG769 [343] 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 - //SEG770 [343] 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 - //SEG771 keyboard_event_scan::@3 + //SEG800 [351] 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] + //SEG801 [351] 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 + //SEG802 [351] 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 + //SEG803 keyboard_event_scan::@3 b3: - //SEG772 [344] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG804 [352] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG773 [345] 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 + //SEG805 [353] 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 - //SEG774 [346] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] - //SEG775 keyboard_event_scan::@20 - //SEG776 [347] call keyboard_event_pressed - //SEG777 [324] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] - //SEG778 [324] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG806 [354] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG807 keyboard_event_scan::@20 + //SEG808 [355] call keyboard_event_pressed + //SEG809 [332] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG810 [332] 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 - //SEG779 [348] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + //SEG811 [356] (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 - //SEG780 keyboard_event_scan::@26 - //SEG781 [349] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + //SEG812 keyboard_event_scan::@26 + //SEG813 [357] (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 - //SEG782 [350] 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 + //SEG814 [358] 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 - //SEG783 [351] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] - //SEG784 keyboard_event_scan::@21 - //SEG785 [352] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] - //SEG786 [352] 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 + //SEG815 [359] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG816 keyboard_event_scan::@21 + //SEG817 [360] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] + //SEG818 [360] 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 - //SEG787 [352] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG819 [360] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] b2: - //SEG788 [352] 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 + //SEG820 [360] 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 - //SEG789 keyboard_event_scan::@9 + //SEG821 keyboard_event_scan::@9 b9: - //SEG790 [353] call keyboard_event_pressed - //SEG791 [324] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] - //SEG792 [324] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG822 [361] call keyboard_event_pressed + //SEG823 [332] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG824 [332] 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 - //SEG793 [354] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + //SEG825 [362] (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 - //SEG794 keyboard_event_scan::@27 - //SEG795 [355] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + //SEG826 keyboard_event_scan::@27 + //SEG827 [363] (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 - //SEG796 [356] 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 + //SEG828 [364] 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 - //SEG797 keyboard_event_scan::@22 - //SEG798 [357] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG829 keyboard_event_scan::@22 + //SEG830 [365] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_RSHIFT tax - //SEG799 [358] 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] - //SEG800 [358] 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 - //SEG801 keyboard_event_scan::@10 + //SEG831 [366] 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] + //SEG832 [366] 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 + //SEG833 keyboard_event_scan::@10 b10: - //SEG802 [359] call keyboard_event_pressed - //SEG803 [324] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] - //SEG804 [324] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG834 [367] call keyboard_event_pressed + //SEG835 [332] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG836 [332] 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 - //SEG805 [360] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + //SEG837 [368] (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 - //SEG806 keyboard_event_scan::@28 - //SEG807 [361] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + //SEG838 keyboard_event_scan::@28 + //SEG839 [369] (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 - //SEG808 [362] 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 + //SEG840 [370] 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 - //SEG809 keyboard_event_scan::@23 - //SEG810 [363] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG841 keyboard_event_scan::@23 + //SEG842 [371] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_CTRL tax - //SEG811 [364] 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] - //SEG812 [364] 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 - //SEG813 keyboard_event_scan::@11 + //SEG843 [372] 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] + //SEG844 [372] 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 + //SEG845 keyboard_event_scan::@11 b11: - //SEG814 [365] call keyboard_event_pressed - //SEG815 [324] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] - //SEG816 [324] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG846 [373] call keyboard_event_pressed + //SEG847 [332] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG848 [332] 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 - //SEG817 [366] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + //SEG849 [374] (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 - //SEG818 keyboard_event_scan::@29 - //SEG819 [367] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + //SEG850 keyboard_event_scan::@29 + //SEG851 [375] (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 - //SEG820 [368] 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 + //SEG852 [376] 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 - //SEG821 keyboard_event_scan::@24 - //SEG822 [369] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuaa=vbuxx_bor_vbuc1 + //SEG853 keyboard_event_scan::@24 + //SEG854 [377] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuaa=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_COMMODORE - //SEG823 keyboard_event_scan::@return + //SEG855 keyboard_event_scan::@return breturn: - //SEG824 [370] return + //SEG856 [378] return rts - //SEG825 [371] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG857 [379] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b6: - //SEG826 [371] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG827 [371] 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 - //SEG828 [371] 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 + //SEG858 [379] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG859 [379] 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 + //SEG860 [379] 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 - //SEG829 [371] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] - //SEG830 [371] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG831 [371] 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 - //SEG832 [371] 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 - //SEG833 keyboard_event_scan::@4 + //SEG861 [379] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG862 [379] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG863 [379] 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 + //SEG864 [379] 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 + //SEG865 keyboard_event_scan::@4 b4: - //SEG834 [372] (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 + //SEG866 [380] (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 - //SEG835 [373] (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 + //SEG867 [381] (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 - //SEG836 [374] 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 + //SEG868 [382] 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 - //SEG837 keyboard_event_scan::@15 - //SEG838 [375] 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 + //SEG869 keyboard_event_scan::@15 + //SEG870 [383] 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 - //SEG839 keyboard_event_scan::@16 - //SEG840 [376] (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 + //SEG871 keyboard_event_scan::@16 + //SEG872 [384] (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 - //SEG841 [377] 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 + //SEG873 [385] 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 - //SEG842 keyboard_event_scan::@17 - //SEG843 [378] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG874 keyboard_event_scan::@17 + //SEG875 [386] *((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 - //SEG844 [379] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG876 [387] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG845 [380] 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] - //SEG846 [380] 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 - //SEG847 keyboard_event_scan::@5 + //SEG877 [388] 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] + //SEG878 [388] 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 + //SEG879 keyboard_event_scan::@5 b5: - //SEG848 [381] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG880 [389] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG849 [382] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx + //SEG881 [390] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx inx - //SEG850 [383] 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 + //SEG882 [391] 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 - //SEG851 keyboard_event_scan::@19 - //SEG852 [384] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG883 keyboard_event_scan::@19 + //SEG884 [392] *((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 - //SEG853 keyboard_event_scan::@7 + //SEG885 keyboard_event_scan::@7 b7: - //SEG854 [385] (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 + //SEG886 [393] (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 - //SEG855 [386] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa + //SEG887 [394] *((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 - //SEG856 [387] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG888 [395] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5 } -//SEG857 keyboard_matrix_read +//SEG889 keyboard_matrix_read keyboard_matrix_read: { - //SEG858 [388] *((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 + //SEG890 [396] *((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 - //SEG859 [389] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 + //SEG891 [397] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff - //SEG860 keyboard_matrix_read::@return - //SEG861 [390] return + //SEG892 keyboard_matrix_read::@return + //SEG893 [398] return rts } -//SEG862 render_show +//SEG894 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 - //SEG863 [391] 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 + //SEG895 [399] 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 - //SEG864 [392] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] - //SEG865 render_show::toD0182 - //SEG866 [393] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] - //SEG867 [393] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@2#0] -- vbuaa=vbuc1 + //SEG896 [400] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] + //SEG897 render_show::toD0182 + //SEG898 [401] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] + //SEG899 [401] 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 - //SEG868 render_show::@2 + //SEG900 render_show::@2 b2: - //SEG869 [394] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuaa + //SEG901 [402] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuaa sta D018 - //SEG870 [395] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 + //SEG902 [403] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 lda render_screen_show sta render_screen_showing - //SEG871 render_show::@return - //SEG872 [396] return + //SEG903 render_show::@return + //SEG904 [404] return rts - //SEG873 [397] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] - //SEG874 render_show::toD0181 + //SEG905 [405] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] + //SEG906 render_show::toD0181 toD0181: - //SEG875 [393] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] - //SEG876 [393] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@2#0] -- vbuaa=vbuc1 + //SEG907 [401] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] + //SEG908 [401] 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 } -//SEG877 play_init +//SEG909 play_init play_init: { .label pli = 5 .label idx = 2 - //SEG878 [399] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] - //SEG879 [399] 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 + //SEG910 [407] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] + //SEG911 [407] 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 - //SEG880 [399] 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 + //SEG912 [407] 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 - //SEG881 [399] 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 + //SEG913 [407] 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 - //SEG882 [399] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] - //SEG883 [399] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy - //SEG884 [399] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy - //SEG885 [399] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy - //SEG886 play_init::@1 + //SEG914 [407] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] + //SEG915 [407] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy + //SEG916 [407] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy + //SEG917 [407] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy + //SEG918 play_init::@1 b1: - //SEG887 [400] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG919 [408] (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 - //SEG888 [401] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG920 [409] *((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 - //SEG889 [402] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG921 [410] *((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 - //SEG890 [403] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG922 [411] (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 @@ -21518,200 +22258,203 @@ play_init: { bcc !+ inc pli+1 !: - //SEG891 [404] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG923 [412] (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 - //SEG892 [405] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx + //SEG924 [413] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx inx - //SEG893 [406] 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 + //SEG925 [414] 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 - //SEG894 play_init::@2 - //SEG895 [407] *((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 + //SEG926 play_init::@2 + //SEG927 [415] *((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 - //SEG896 play_init::@return - //SEG897 [408] return + //SEG928 [416] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0) -- vbuz1=_deref_pbuc1 + lda MOVEDOWN_SLOW_SPEEDS + sta current_movedown_slow + //SEG929 play_init::@return + //SEG930 [417] return rts } -//SEG898 sprites_irq_init +//SEG931 sprites_irq_init sprites_irq_init: { - //SEG899 asm { sei } + //SEG932 asm { sei } sei - //SEG900 [410] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG933 [419] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG901 asm { ldaCIA1_INTERRUPT } + //SEG934 asm { ldaCIA1_INTERRUPT } lda CIA1_INTERRUPT - //SEG902 [412] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 + //SEG935 [421] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_DDR_MEMORY_MASK sta PROCPORT_DDR - //SEG903 [413] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 + //SEG936 [422] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - //SEG904 [414] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 + //SEG937 [423] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG905 [415] *((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 + //SEG938 [424] *((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 - //SEG906 [416] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 + //SEG939 [425] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER_FIRST sta RASTER - //SEG907 [417] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG940 [426] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_ENABLE - //SEG908 [418] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 + //SEG941 [427] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 lda #sprites_irq sta HARDWARE_IRQ+1 - //SEG909 asm { cli } + //SEG942 asm { cli } cli - //SEG910 sprites_irq_init::@return - //SEG911 [420] return + //SEG943 sprites_irq_init::@return + //SEG944 [429] return rts } -//SEG912 sprites_init +//SEG945 sprites_init sprites_init: { .label xpos = 2 - //SEG913 [421] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + //SEG946 [430] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 lda #$f sta SPRITES_ENABLE - //SEG914 [422] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG947 [431] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SPRITES_MC - //SEG915 [423] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG948 [432] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 sta SPRITES_EXPAND_Y - //SEG916 [424] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG949 [433] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 sta SPRITES_EXPAND_X - //SEG917 [425] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] - //SEG918 [425] 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 + //SEG950 [434] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] + //SEG951 [434] 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 - //SEG919 [425] 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 + //SEG952 [434] 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 - //SEG920 [425] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] - //SEG921 [425] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy - //SEG922 [425] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy - //SEG923 sprites_init::@1 + //SEG953 [434] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] + //SEG954 [434] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy + //SEG955 [434] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy + //SEG956 sprites_init::@1 b1: - //SEG924 [426] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG957 [435] (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 - //SEG925 [427] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG958 [436] *((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 - //SEG926 [428] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG959 [437] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #BLACK sta SPRITES_COLS,x - //SEG927 [429] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG960 [438] (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 - //SEG928 [430] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuxx=_inc_vbuxx + //SEG961 [439] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuxx=_inc_vbuxx inx - //SEG929 [431] 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 + //SEG962 [440] 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 - //SEG930 sprites_init::@return - //SEG931 [432] return + //SEG963 sprites_init::@return + //SEG964 [441] return rts } -//SEG932 render_init +//SEG965 render_init render_init: { .const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_CHARSET)>>6 .label li_1 = 5 .label li_2 = 7 - //SEG933 render_init::vicSelectGfxBank1 - //SEG934 [434] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG966 render_init::vicSelectGfxBank1 + //SEG967 [443] *((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 - //SEG935 [435] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] - //SEG936 render_init::vicSelectGfxBank1_toDd001 - //SEG937 render_init::vicSelectGfxBank1_@1 - //SEG938 [436] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 + //SEG968 [444] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] + //SEG969 render_init::vicSelectGfxBank1_toDd001 + //SEG970 render_init::vicSelectGfxBank1_@1 + //SEG971 [445] *((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 - //SEG939 render_init::@3 - //SEG940 [437] *((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 + //SEG972 render_init::@3 + //SEG973 [446] *((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 - //SEG941 [438] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG974 [447] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BORDERCOL - //SEG942 [439] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG975 [448] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 sta BGCOL1 - //SEG943 [440] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 + //SEG976 [449] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 lda #BLUE sta BGCOL2 - //SEG944 [441] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 + //SEG977 [450] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 lda #CYAN sta BGCOL3 - //SEG945 [442] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 + //SEG978 [451] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 lda #GREY sta BGCOL4 - //SEG946 [443] call render_screen_original - //SEG947 [456] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] - //SEG948 [456] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 + //SEG979 [452] call render_screen_original + //SEG980 [465] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] + //SEG981 [465] 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 - //SEG949 [444] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] - //SEG950 render_init::@4 - //SEG951 [445] call render_screen_original - //SEG952 [456] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] - //SEG953 [456] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_init::@4->render_screen_original#0] -- pbuz1=pbuc1 + //SEG982 [453] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] + //SEG983 render_init::@4 + //SEG984 [454] call render_screen_original + //SEG985 [465] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] + //SEG986 [465] 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 - //SEG954 [446] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] - //SEG955 [446] 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 + //SEG987 [455] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] + //SEG988 [455] 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 - //SEG956 [446] 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 + //SEG989 [455] 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 - //SEG957 [446] 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 + //SEG990 [455] 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 - //SEG958 [446] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] - //SEG959 [446] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - //SEG960 [446] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy - //SEG961 [446] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy - //SEG962 render_init::@1 + //SEG991 [455] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + //SEG992 [455] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG993 [455] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + //SEG994 [455] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy + //SEG995 render_init::@1 b1: - //SEG963 [447] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG996 [456] (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 - //SEG964 [448] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG997 [457] *((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 - //SEG965 [449] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG998 [458] (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 - //SEG966 [450] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG999 [459] *((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 - //SEG967 [451] (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 + //SEG1000 [460] (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 @@ -21719,7 +22462,7 @@ render_init: { bcc !+ inc li_1+1 !: - //SEG968 [452] (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 + //SEG1001 [461] (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 @@ -21727,313 +22470,313 @@ render_init: { bcc !+ inc li_2+1 !: - //SEG969 [453] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx + //SEG1002 [462] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx inx - //SEG970 [454] 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 + //SEG1003 [463] 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 - //SEG971 render_init::@return - //SEG972 [455] return + //SEG1004 render_init::@return + //SEG1005 [464] return rts } -//SEG973 render_screen_original +//SEG1006 render_screen_original render_screen_original: { .const SPACE = 0 .label screen = $11 - .label cols = $18 + .label cols = $1a .label oscr = 5 .label ocols = 7 .label y = 2 - //SEG974 [457] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] - //SEG975 [457] 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 + //SEG1007 [466] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] + //SEG1008 [466] 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 - //SEG976 [457] 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 + //SEG1009 [466] 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 - //SEG977 [457] 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 + //SEG1010 [466] 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 - //SEG978 [457] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS#0 [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 + //SEG1011 [466] 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 - //SEG979 [457] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#4] -- register_copy - //SEG980 [457] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] - //SEG981 [457] 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 - //SEG982 [457] 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 - //SEG983 [457] 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 - //SEG984 [457] 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 - //SEG985 [457] 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 - //SEG986 render_screen_original::@1 + //SEG1012 [466] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#4] -- register_copy + //SEG1013 [466] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] + //SEG1014 [466] 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 + //SEG1015 [466] 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 + //SEG1016 [466] 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 + //SEG1017 [466] 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 + //SEG1018 [466] 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 + //SEG1019 render_screen_original::@1 b1: - //SEG987 [458] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] - //SEG988 [458] 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 + //SEG1020 [467] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] + //SEG1021 [467] 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 - //SEG989 [458] 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 - //SEG990 [458] 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 - //SEG991 [458] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] - //SEG992 [458] 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 - //SEG993 [458] 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 - //SEG994 [458] 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 - //SEG995 render_screen_original::@2 + //SEG1022 [467] 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 + //SEG1023 [467] 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 + //SEG1024 [467] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] + //SEG1025 [467] 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 + //SEG1026 [467] 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 + //SEG1027 [467] 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 + //SEG1028 render_screen_original::@2 b2: - //SEG996 [459] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG1029 [468] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG997 [460] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 + //SEG1030 [469] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG998 [461] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG1031 [470] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG999 [462] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 + //SEG1032 [471] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1000 [463] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx + //SEG1033 [472] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx inx - //SEG1001 [464] 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 + //SEG1034 [473] 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 - //SEG1002 [465] 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] - //SEG1003 [465] 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 - //SEG1004 [465] 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 - //SEG1005 [465] 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 - //SEG1006 [465] 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 - //SEG1007 [465] 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 - //SEG1008 render_screen_original::@3 + //SEG1035 [474] 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] + //SEG1036 [474] 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 + //SEG1037 [474] 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 + //SEG1038 [474] 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 + //SEG1039 [474] 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 + //SEG1040 [474] 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 + //SEG1041 render_screen_original::@3 b3: - //SEG1009 [466] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG1042 [475] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (oscr),y sta (screen),y - //SEG1010 [467] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 + //SEG1043 [476] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG1011 [468] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 + //SEG1044 [477] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 inc oscr bne !+ inc oscr+1 !: - //SEG1012 [469] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG1045 [478] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (ocols),y sta (cols),y - //SEG1013 [470] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 + //SEG1046 [479] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1014 [471] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 + //SEG1047 [480] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 inc ocols bne !+ inc ocols+1 !: - //SEG1015 [472] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx + //SEG1048 [481] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx inx - //SEG1016 [473] 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 + //SEG1049 [482] 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 - //SEG1017 [474] 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] - //SEG1018 [474] 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 - //SEG1019 [474] 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 - //SEG1020 [474] 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 - //SEG1021 render_screen_original::@4 + //SEG1050 [483] 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] + //SEG1051 [483] 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 + //SEG1052 [483] 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 + //SEG1053 [483] 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 + //SEG1054 render_screen_original::@4 b4: - //SEG1022 [475] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG1055 [484] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG1023 [476] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 + //SEG1056 [485] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG1024 [477] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG1057 [486] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG1025 [478] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 + //SEG1058 [487] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1026 [479] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx + //SEG1059 [488] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx inx - //SEG1027 [480] 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 + //SEG1060 [489] 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 - //SEG1028 render_screen_original::@7 - //SEG1029 [481] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 + //SEG1061 render_screen_original::@7 + //SEG1062 [490] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG1030 [482] 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 + //SEG1063 [491] 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 - //SEG1031 render_screen_original::@return - //SEG1032 [483] return + //SEG1064 render_screen_original::@return + //SEG1065 [492] return rts } -//SEG1033 sid_rnd_init +//SEG1066 sid_rnd_init sid_rnd_init: { - //SEG1034 [484] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 + //SEG1067 [493] *((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 - //SEG1035 [485] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG1068 [494] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 lda #SID_CONTROL_NOISE sta SID_VOICE3_CONTROL - //SEG1036 sid_rnd_init::@return - //SEG1037 [486] return + //SEG1069 sid_rnd_init::@return + //SEG1070 [495] return rts } -//SEG1038 sprites_irq +//SEG1071 sprites_irq sprites_irq: { .const toSpritePtr2_return = PLAYFIELD_SPRITES>>6 - //SEG1039 entry interrupt(HARDWARE_CLOBBER) + //SEG1072 entry interrupt(HARDWARE_CLOBBER) sta rega+1 stx regx+1 - //SEG1040 asm { cld } + //SEG1073 asm { cld } cld - //SEG1041 [488] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuaa=vbuz1 + //SEG1074 [497] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuaa=vbuz1 lda irq_sprite_ypos - //SEG1042 [489] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1075 [498] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS - //SEG1043 [490] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1076 [499] *((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 - //SEG1044 [491] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1077 [500] *((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 - //SEG1045 [492] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1078 [501] *((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 - //SEG1046 sprites_irq::@1 + //SEG1079 sprites_irq::@1 b1: - //SEG1047 [493] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 + //SEG1080 [502] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 lda RASTER cmp irq_sprite_ypos bcc b1 - //SEG1048 sprites_irq::@7 - //SEG1049 [494] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuxx=vbuz1 + //SEG1081 sprites_irq::@7 + //SEG1082 [503] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuxx=vbuz1 ldx irq_sprite_ptr - //SEG1050 [495] 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 + //SEG1083 [504] 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 - //SEG1051 sprites_irq::@8 - //SEG1052 [496] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx + //SEG1084 sprites_irq::@8 + //SEG1085 [505] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_2 - //SEG1053 [497] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuxx=_inc_vbuxx + //SEG1086 [506] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuxx=_inc_vbuxx inx - //SEG1054 [498] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuxx + //SEG1087 [507] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_2+1 - //SEG1055 [499] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuxx + //SEG1088 [508] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_2+2 - //SEG1056 [500] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuxx=_inc_vbuxx + //SEG1089 [509] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuxx=_inc_vbuxx inx - //SEG1057 [501] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 -- _deref_pbuc1=vbuxx + //SEG1090 [510] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_2+3 - //SEG1058 sprites_irq::@3 + //SEG1091 sprites_irq::@3 b3: - //SEG1059 [502] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz1 + //SEG1092 [511] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz1 inc irq_cnt - //SEG1060 [503] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 + //SEG1093 [512] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 lda irq_cnt cmp #$a beq b4 - //SEG1061 sprites_irq::@10 - //SEG1062 [504] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1094 sprites_irq::@10 + //SEG1095 [513] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_raster_next sta irq_raster_next - //SEG1063 [505] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1096 [514] (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 - //SEG1064 [506] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1097 [515] (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 - //SEG1065 [507] phi from sprites_irq::@10 sprites_irq::@13 to sprites_irq::@5 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5] - //SEG1066 [507] phi (byte) irq_raster_next#13 = (byte) irq_raster_next#2 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5#0] -- register_copy - //SEG1067 sprites_irq::@5 + //SEG1098 [516] phi from sprites_irq::@10 sprites_irq::@13 to sprites_irq::@5 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5] + //SEG1099 [516] phi (byte) irq_raster_next#13 = (byte) irq_raster_next#2 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5#0] -- register_copy + //SEG1100 sprites_irq::@5 b5: - //SEG1068 [508] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 -- vbuxx=vbuz1 + //SEG1101 [517] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 -- vbuxx=vbuz1 ldx irq_raster_next - //SEG1069 [509] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 + //SEG1102 [518] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 txa and #7 - //SEG1070 [510] if((byte~) sprites_irq::$4!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto sprites_irq::@6 -- vbuaa_neq_vbuc1_then_la1 + //SEG1103 [519] if((byte~) sprites_irq::$4!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto sprites_irq::@6 -- vbuaa_neq_vbuc1_then_la1 cmp #3 bne b6 - //SEG1071 sprites_irq::@12 - //SEG1072 [511] (byte) sprites_irq::raster_next#1 ← (byte) sprites_irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuxx_minus_1 + //SEG1104 sprites_irq::@12 + //SEG1105 [520] (byte) sprites_irq::raster_next#1 ← (byte) sprites_irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuxx_minus_1 dex - //SEG1073 [512] phi from sprites_irq::@12 sprites_irq::@5 to sprites_irq::@6 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6] - //SEG1074 [512] phi (byte) sprites_irq::raster_next#2 = (byte) sprites_irq::raster_next#1 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6#0] -- register_copy - //SEG1075 sprites_irq::@6 + //SEG1106 [521] phi from sprites_irq::@12 sprites_irq::@5 to sprites_irq::@6 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6] + //SEG1107 [521] phi (byte) sprites_irq::raster_next#2 = (byte) sprites_irq::raster_next#1 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6#0] -- register_copy + //SEG1108 sprites_irq::@6 b6: - //SEG1076 [513] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 -- _deref_pbuc1=vbuxx + //SEG1109 [522] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 -- _deref_pbuc1=vbuxx stx RASTER - //SEG1077 [514] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG1110 [523] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG1078 sprites_irq::@return - //SEG1079 [515] return - exit interrupt(HARDWARE_CLOBBER) + //SEG1111 sprites_irq::@return + //SEG1112 [524] return - exit interrupt(HARDWARE_CLOBBER) rega: lda #00 regx: ldx #00 rti - //SEG1080 sprites_irq::@4 + //SEG1113 sprites_irq::@4 b4: - //SEG1081 [516] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 + //SEG1114 [525] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 lda #0 sta irq_cnt - //SEG1082 [517] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 + //SEG1115 [526] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next - //SEG1083 [518] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 + //SEG1116 [527] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 lda #$32 sta irq_sprite_ypos - //SEG1084 [519] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] - //SEG1085 sprites_irq::toSpritePtr2 - //SEG1086 sprites_irq::@13 - //SEG1087 [520] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 + //SEG1117 [528] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] + //SEG1118 sprites_irq::toSpritePtr2 + //SEG1119 sprites_irq::@13 + //SEG1120 [529] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 lda #toSpritePtr2_return sta irq_sprite_ptr jmp b5 - //SEG1088 sprites_irq::@2 + //SEG1121 sprites_irq::@2 b2: - //SEG1089 [521] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx + //SEG1122 [530] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_1 - //SEG1090 [522] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx + //SEG1123 [531] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx txa clc adc #1 - //SEG1091 [523] *((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 + //SEG1124 [532] *((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 - //SEG1092 [524] *((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 + //SEG1125 [533] *((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 - //SEG1093 [525] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuaa=_inc_vbuaa + //SEG1126 [534] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuaa=_inc_vbuaa clc adc #1 - //SEG1094 [526] *((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 + //SEG1127 [535] *((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 } @@ -22059,6 +22802,7 @@ sprites_irq: { PIECES_START_X: .byte 4, 4, 4, 4, 4, 4, 4 PIECES_START_Y: .byte 1, 1, 1, 1, 1, 0, 1 score_add_bcd: .dword 0, $40, $100, $300, $1200 + MOVEDOWN_SLOW_SPEEDS: .byte $30, $2b, $26, $21, $1c, $17, $12, $d, 8, 6, 5, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 .align $80 screen_lines_1: .fill 2*PLAYFIELD_LINES, 0 .align $40 diff --git a/src/test/ref/examples/tetris/tetris.sym b/src/test/ref/examples/tetris/tetris.sym index c156fe54b..3aacda5f9 100644 --- a/src/test/ref/examples/tetris/tetris.sym +++ b/src/test/ref/examples/tetris/tetris.sym @@ -1,8 +1,8 @@ (label) @14 (label) @22 (label) @23 -(label) @35 (label) @36 +(label) @37 (label) @begin (label) @end (byte*) BGCOL @@ -163,6 +163,8 @@ (byte) LIGHT_BLUE (byte) LIGHT_GREEN (byte) LIGHT_GREY +(byte[]) MOVEDOWN_SLOW_SPEEDS +(const byte[]) MOVEDOWN_SLOW_SPEEDS#0 MOVEDOWN_SLOW_SPEEDS = { (byte/signed byte/word/signed word/dword/signed dword) 48, (byte/signed byte/word/signed word/dword/signed dword) 43, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 33, (byte/signed byte/word/signed word/dword/signed dword) 28, (byte/signed byte/word/signed word/dword/signed dword) 23, (byte/signed byte/word/signed word/dword/signed dword) 18, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1 } (byte) ORANGE (word[]) PIECES (const word[]) PIECES#0 PIECES = { ((word))(const byte[4*4*4]) PIECE_T#0, ((word))(const byte[4*4*4]) PIECE_S#0, ((word))(const byte[4*4*4]) PIECE_Z#0, ((word))(const byte[4*4*4]) PIECE_J#0, ((word))(const byte[4*4*4]) PIECE_O#0, ((word))(const byte[4*4*4]) PIECE_I#0, ((word))(const byte[4*4*4]) PIECE_L#0 } @@ -282,54 +284,60 @@ (byte) current_movedown_counter#10 current_movedown_counter zp ZP_BYTE:4 3.931034482758621 (byte) current_movedown_counter#12 current_movedown_counter zp ZP_BYTE:4 10.363636363636363 (byte) current_movedown_fast -(const byte) current_movedown_fast#0 current_movedown_fast = (byte/signed byte/word/signed word/dword/signed dword) 5 +(const byte) current_movedown_fast#0 current_movedown_fast = (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) current_movedown_slow -(const byte) current_movedown_slow#0 current_movedown_slow = (byte/signed byte/word/signed word/dword/signed dword) 50 +(byte) current_movedown_slow#1 current_movedown_slow zp ZP_BYTE:24 0.3076923076923077 +(byte) current_movedown_slow#12 current_movedown_slow zp ZP_BYTE:24 2.296296296296297 +(byte) current_movedown_slow#17 current_movedown_slow zp ZP_BYTE:24 4.0 +(byte) current_movedown_slow#19 current_movedown_slow zp ZP_BYTE:24 1.3333333333333333 +(byte) current_movedown_slow#20 current_movedown_slow zp ZP_BYTE:24 0.5 +(byte) current_movedown_slow#30 current_movedown_slow zp ZP_BYTE:24 6.0 +(byte) current_movedown_slow#8 current_movedown_slow zp ZP_BYTE:24 4.0 (byte) current_orientation -(byte) current_orientation#10 current_orientation zp ZP_BYTE:26 3.371428571428571 -(byte) current_orientation#14 current_orientation zp ZP_BYTE:26 0.32653061224489793 -(byte) current_orientation#19 current_orientation zp ZP_BYTE:26 6.210526315789475 -(byte) current_orientation#29 current_orientation zp ZP_BYTE:26 4.0 -(byte) current_orientation#4 current_orientation zp ZP_BYTE:26 3.0 +(byte) current_orientation#10 current_orientation zp ZP_BYTE:28 3.371428571428571 +(byte) current_orientation#14 current_orientation zp ZP_BYTE:28 0.32653061224489793 +(byte) current_orientation#19 current_orientation zp ZP_BYTE:28 6.210526315789475 +(byte) current_orientation#29 current_orientation zp ZP_BYTE:28 4.0 +(byte) current_orientation#4 current_orientation zp ZP_BYTE:28 3.0 (byte*) current_piece -(byte*) current_piece#10 current_piece zp ZP_WORD:24 1.771428571428571 +(byte*) current_piece#10 current_piece zp ZP_WORD:26 1.771428571428571 (byte*) current_piece#12 current_piece#12 zp ZP_WORD:5 10.0 -(byte*) current_piece#16 current_piece zp ZP_WORD:24 3.428571428571428 -(byte*) current_piece#20 current_piece zp ZP_WORD:24 6.0 -(byte*~) current_piece#73 current_piece zp ZP_WORD:24 4.0 +(byte*) current_piece#16 current_piece zp ZP_WORD:26 3.428571428571428 +(byte*) current_piece#20 current_piece zp ZP_WORD:26 6.0 +(byte*~) current_piece#73 current_piece zp ZP_WORD:26 4.0 (byte*~) current_piece#76 current_piece#76 zp ZP_WORD:5 4.0 (byte*~) current_piece#77 current_piece#77 zp ZP_WORD:5 4.0 (byte*~) current_piece#78 current_piece#78 zp ZP_WORD:5 4.0 (byte*~) current_piece#79 current_piece#79 zp ZP_WORD:5 4.0 -(byte*~) current_piece#80 current_piece zp ZP_WORD:24 4.0 +(byte*~) current_piece#80 current_piece zp ZP_WORD:26 4.0 (byte) current_piece_char -(byte) current_piece_char#1 current_piece_char zp ZP_BYTE:30 4.379310344827585 -(byte) current_piece_char#12 current_piece_char zp ZP_BYTE:30 0.6153846153846154 -(byte) current_piece_char#15 current_piece_char zp ZP_BYTE:30 194.59615384615384 -(byte) current_piece_char#20 current_piece_char zp ZP_BYTE:30 6.0 +(byte) current_piece_char#1 current_piece_char zp ZP_BYTE:32 4.379310344827585 +(byte) current_piece_char#12 current_piece_char zp ZP_BYTE:32 0.6153846153846154 +(byte) current_piece_char#15 current_piece_char zp ZP_BYTE:32 194.59615384615384 +(byte) current_piece_char#20 current_piece_char zp ZP_BYTE:32 6.0 (byte) current_piece_char#64 reg byte x 46.09090909090909 (byte~) current_piece_char#90 reg byte x 4.0 (byte~) current_piece_char#91 reg byte x 22.0 (byte*) current_piece_gfx -(byte*) current_piece_gfx#1 current_piece_gfx zp ZP_WORD:27 0.2962962962962963 +(byte*) current_piece_gfx#1 current_piece_gfx zp ZP_WORD:29 0.2962962962962963 (byte*~) current_piece_gfx#102 current_piece_gfx#102 zp ZP_WORD:5 2.0 (byte*~) current_piece_gfx#103 current_piece_gfx#103 zp ZP_WORD:5 11.0 -(byte*) current_piece_gfx#14 current_piece_gfx zp ZP_WORD:27 6.789473684210528 -(byte*) current_piece_gfx#16 current_piece_gfx zp ZP_WORD:27 0.5 -(byte*) current_piece_gfx#20 current_piece_gfx zp ZP_WORD:27 194.59615384615384 -(byte*) current_piece_gfx#26 current_piece_gfx zp ZP_WORD:27 6.0 -(byte*) current_piece_gfx#3 current_piece_gfx zp ZP_WORD:27 4.0 +(byte*) current_piece_gfx#14 current_piece_gfx zp ZP_WORD:29 6.789473684210528 +(byte*) current_piece_gfx#16 current_piece_gfx zp ZP_WORD:29 0.5 +(byte*) current_piece_gfx#20 current_piece_gfx zp ZP_WORD:29 194.59615384615384 +(byte*) current_piece_gfx#26 current_piece_gfx zp ZP_WORD:29 6.0 +(byte*) current_piece_gfx#3 current_piece_gfx zp ZP_WORD:29 4.0 (byte*) current_piece_gfx#53 current_piece_gfx#53 zp ZP_WORD:5 46.09090909090909 (byte) current_xpos -(byte) current_xpos#1 current_xpos zp ZP_BYTE:29 0.72 -(byte) current_xpos#10 current_xpos zp ZP_BYTE:29 21.557692307692307 +(byte) current_xpos#1 current_xpos zp ZP_BYTE:31 0.72 +(byte) current_xpos#10 current_xpos zp ZP_BYTE:31 21.557692307692307 (byte~) current_xpos#112 current_xpos#112 zp ZP_BYTE:10 1.3333333333333333 (byte~) current_xpos#113 current_xpos#113 zp ZP_BYTE:10 7.333333333333333 -(byte) current_xpos#19 current_xpos zp ZP_BYTE:29 3.139534883720931 -(byte) current_xpos#2 current_xpos zp ZP_BYTE:29 4.0 -(byte) current_xpos#23 current_xpos zp ZP_BYTE:29 0.5333333333333333 -(byte) current_xpos#33 current_xpos zp ZP_BYTE:29 6.0 -(byte) current_xpos#4 current_xpos zp ZP_BYTE:29 4.0 +(byte) current_xpos#19 current_xpos zp ZP_BYTE:31 3.139534883720931 +(byte) current_xpos#2 current_xpos zp ZP_BYTE:31 4.0 +(byte) current_xpos#23 current_xpos zp ZP_BYTE:31 0.5333333333333333 +(byte) current_xpos#33 current_xpos zp ZP_BYTE:31 6.0 +(byte) current_xpos#4 current_xpos zp ZP_BYTE:31 4.0 (byte) current_xpos#47 current_xpos#47 zp ZP_BYTE:10 5.181818181818182 (byte) current_ypos (byte) current_ypos#0 current_ypos zp ZP_BYTE:16 4.0 @@ -341,22 +349,22 @@ (byte~) current_ypos#87 reg byte y 4.4 (byte) current_ypos#9 reg byte y 15.0 (byte) irq_cnt -(byte) irq_cnt#0 irq_cnt zp ZP_BYTE:36 0.19047619047619047 -(byte) irq_cnt#1 irq_cnt zp ZP_BYTE:36 4.0 -(byte) irq_cnt#14 irq_cnt zp ZP_BYTE:36 20.0 +(byte) irq_cnt#0 irq_cnt zp ZP_BYTE:38 0.19047619047619047 +(byte) irq_cnt#1 irq_cnt zp ZP_BYTE:38 4.0 +(byte) irq_cnt#14 irq_cnt zp ZP_BYTE:38 20.0 (byte) irq_raster_next -(byte) irq_raster_next#0 irq_raster_next zp ZP_BYTE:32 0.17391304347826086 -(byte) irq_raster_next#1 irq_raster_next zp ZP_BYTE:32 1.0 -(byte) irq_raster_next#13 irq_raster_next zp ZP_BYTE:32 6.0 -(byte) irq_raster_next#2 irq_raster_next zp ZP_BYTE:32 1.3333333333333333 +(byte) irq_raster_next#0 irq_raster_next zp ZP_BYTE:34 0.17391304347826086 +(byte) irq_raster_next#1 irq_raster_next zp ZP_BYTE:34 1.0 +(byte) irq_raster_next#13 irq_raster_next zp ZP_BYTE:34 6.0 +(byte) irq_raster_next#2 irq_raster_next zp ZP_BYTE:34 1.3333333333333333 (byte) irq_sprite_ptr -(byte) irq_sprite_ptr#0 irq_sprite_ptr zp ZP_BYTE:35 0.24 -(byte) irq_sprite_ptr#1 irq_sprite_ptr zp ZP_BYTE:35 20.0 -(byte) irq_sprite_ptr#2 irq_sprite_ptr zp ZP_BYTE:35 20.0 +(byte) irq_sprite_ptr#0 irq_sprite_ptr zp ZP_BYTE:37 0.24 +(byte) irq_sprite_ptr#1 irq_sprite_ptr zp ZP_BYTE:37 20.0 +(byte) irq_sprite_ptr#2 irq_sprite_ptr zp ZP_BYTE:37 20.0 (byte) irq_sprite_ypos -(byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:34 0.7083333333333334 -(byte) irq_sprite_ypos#1 irq_sprite_ypos zp ZP_BYTE:34 20.0 -(byte) irq_sprite_ypos#2 irq_sprite_ypos zp ZP_BYTE:34 20.0 +(byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:36 0.7083333333333334 +(byte) irq_sprite_ypos#1 irq_sprite_ypos zp ZP_BYTE:36 20.0 +(byte) irq_sprite_ypos#2 irq_sprite_ypos zp ZP_BYTE:36 20.0 (byte[]) keyboard_char_keycodes (byte()) keyboard_event_get() (label) keyboard_event_get::@3 @@ -431,15 +439,15 @@ (byte[8]) keyboard_events (const byte[8]) keyboard_events#0 keyboard_events = { fill( 8, 0) } (byte) keyboard_events_size -(byte) keyboard_events_size#1 keyboard_events_size zp ZP_BYTE:31 20002.0 -(byte) keyboard_events_size#10 keyboard_events_size zp ZP_BYTE:31 8100.9000000000015 -(byte) keyboard_events_size#13 keyboard_events_size zp ZP_BYTE:31 97.06451612903226 -(byte) keyboard_events_size#16 keyboard_events_size zp ZP_BYTE:31 3.515151515151515 -(byte) keyboard_events_size#19 keyboard_events_size zp ZP_BYTE:31 18.999999999999996 -(byte) keyboard_events_size#2 keyboard_events_size zp ZP_BYTE:31 20002.0 -(byte) keyboard_events_size#29 keyboard_events_size zp ZP_BYTE:31 429.2857142857143 -(byte) keyboard_events_size#30 keyboard_events_size zp ZP_BYTE:31 10201.2 -(byte) keyboard_events_size#4 keyboard_events_size zp ZP_BYTE:31 3.0 +(byte) keyboard_events_size#1 keyboard_events_size zp ZP_BYTE:33 20002.0 +(byte) keyboard_events_size#10 keyboard_events_size zp ZP_BYTE:33 8100.9000000000015 +(byte) keyboard_events_size#13 keyboard_events_size zp ZP_BYTE:33 97.06451612903226 +(byte) keyboard_events_size#16 keyboard_events_size zp ZP_BYTE:33 3.515151515151515 +(byte) keyboard_events_size#19 keyboard_events_size zp ZP_BYTE:33 18.999999999999996 +(byte) keyboard_events_size#2 keyboard_events_size zp ZP_BYTE:33 20002.0 +(byte) keyboard_events_size#29 keyboard_events_size zp ZP_BYTE:33 429.2857142857143 +(byte) keyboard_events_size#30 keyboard_events_size zp ZP_BYTE:33 10201.2 +(byte) keyboard_events_size#4 keyboard_events_size zp ZP_BYTE:33 3.0 (byte[8]) keyboard_matrix_col_bitmask (const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 } (byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid) @@ -461,16 +469,23 @@ (byte) keyboard_modifiers#5 reg byte a 20.0 (byte[8]) keyboard_scan_values (const byte[8]) keyboard_scan_values#0 keyboard_scan_values = { fill( 8, 0) } +(byte) level +(byte) level#12 level zp ZP_BYTE:23 4.0 +(byte) level#14 level zp ZP_BYTE:23 1.3333333333333333 +(byte) level#16 level zp ZP_BYTE:23 0.7272727272727273 +(byte) level#19 level zp ZP_BYTE:23 2.2181818181818174 +(byte) level#24 level zp ZP_BYTE:23 6.0 (byte) level_bcd -(byte) level_bcd#11 level_bcd zp ZP_BYTE:23 2.313725490196078 -(byte) level_bcd#13 level_bcd zp ZP_BYTE:23 2.6666666666666665 -(byte) level_bcd#14 level_bcd zp ZP_BYTE:23 1.6666666666666665 -(byte) level_bcd#16 level_bcd zp ZP_BYTE:23 2.25925925925926 -(byte) level_bcd#21 level_bcd zp ZP_BYTE:23 6.0 -(byte) level_bcd#4 level_bcd zp ZP_BYTE:23 4.0 +(byte) level_bcd#13 level_bcd zp ZP_BYTE:25 2.313725490196078 +(byte) level_bcd#15 level_bcd zp ZP_BYTE:25 1.3333333333333333 +(byte) level_bcd#17 level_bcd zp ZP_BYTE:25 2.6666666666666665 +(byte) level_bcd#18 level_bcd zp ZP_BYTE:25 2.0 +(byte) level_bcd#20 level_bcd zp ZP_BYTE:25 2.0677966101694913 +(byte) level_bcd#25 level_bcd zp ZP_BYTE:25 6.0 +(byte) level_bcd#6 level_bcd zp ZP_BYTE:25 4.0 (word) lines_bcd (word) lines_bcd#11 lines_bcd zp ZP_WORD:17 2.352941176470588 -(word) lines_bcd#13 lines_bcd zp ZP_WORD:17 1.6666666666666665 +(word) lines_bcd#13 lines_bcd zp ZP_WORD:17 1.3333333333333333 (word) lines_bcd#15 lines_bcd zp ZP_WORD:17 2.5416666666666656 (word) lines_bcd#20 lines_bcd zp ZP_WORD:17 6.0 (word) lines_bcd#23 lines_bcd zp ZP_WORD:17 1.0 @@ -501,8 +516,8 @@ (byte) main::key_event (byte) main::key_event#0 key_event zp ZP_BYTE:15 36.72727272727273 (byte) main::render -(byte) main::render#1 render zp ZP_BYTE:37 40.4 -(byte) main::render#2 render zp ZP_BYTE:37 40.4 +(byte) main::render#1 render zp ZP_BYTE:39 40.4 +(byte) main::render#2 render zp ZP_BYTE:39 40.4 (byte) main::render#3 reg byte a 202.0 (byte()) play_collision((byte) play_collision::xpos , (byte) play_collision::ypos , (byte) play_collision::orientation) (byte~) play_collision::$7 reg byte a 20002.0 @@ -525,7 +540,7 @@ (byte) play_collision::col#2 col zp ZP_BYTE:14 6375.75 (byte~) play_collision::col#9 col zp ZP_BYTE:14 2002.0 (byte) play_collision::i -(byte) play_collision::i#1 i zp ZP_BYTE:38 1615.6153846153845 +(byte) play_collision::i#1 i zp ZP_BYTE:40 1615.6153846153845 (byte~) play_collision::i#11 i#11 zp ZP_BYTE:13 2002.0 (byte~) play_collision::i#13 i#13 zp ZP_BYTE:13 20002.0 (byte) play_collision::i#2 i#2 zp ZP_BYTE:13 15502.0 @@ -565,6 +580,12 @@ (byte) play_collision::ypos2#0 ypos2 zp ZP_BYTE:11 4.0 (byte) play_collision::ypos2#1 ypos2 zp ZP_BYTE:11 500.5 (byte) play_collision::ypos2#2 ypos2 zp ZP_BYTE:11 867.0666666666667 +(void()) play_increase_level() +(byte~) play_increase_level::$1 reg byte a 4.0 +(label) play_increase_level::@2 +(label) play_increase_level::@4 +(label) play_increase_level::@6 +(label) play_increase_level::@return (void()) play_init() (byte~) play_init::$1 reg byte a 22.0 (label) play_init::@1 @@ -734,13 +755,11 @@ (byte~) play_update_score::$2 reg byte a 4.0 (byte~) play_update_score::$4 reg byte a 4.0 (byte~) play_update_score::$5 reg byte a 4.0 -(byte~) play_update_score::$9 reg byte a 4.0 +(label) play_update_score::@3 (label) play_update_score::@4 -(label) play_update_score::@5 -(label) play_update_score::@6 (label) play_update_score::@return (dword) play_update_score::add_bcd -(dword) play_update_score::add_bcd#0 add_bcd zp ZP_DWORD:39 1.3333333333333333 +(dword) play_update_score::add_bcd#0 add_bcd zp ZP_DWORD:41 1.3333333333333333 (byte) play_update_score::lines_after (byte) play_update_score::lines_after#0 reg byte a 4.0 (byte) play_update_score::lines_before @@ -788,42 +807,6 @@ (byte*) render_bcd::screen_pos#1 screen_pos zp ZP_WORD:7 20.0 (byte*) render_bcd::screen_pos#2 screen_pos zp ZP_WORD:7 4.0 (byte*) render_bcd::screen_pos#3 screen_pos zp ZP_WORD:7 2.0 -(void()) render_current() -(byte~) render_current::$5 reg byte a 202.0 -(label) render_current::@1 -(label) render_current::@10 -(label) render_current::@13 -(label) render_current::@2 -(label) render_current::@3 -(label) render_current::@4 -(label) render_current::@5 -(label) render_current::@7 -(label) render_current::@9 -(label) render_current::@return -(byte) render_current::c -(byte) render_current::c#1 c zp ZP_BYTE:15 1501.5 -(byte) render_current::c#2 c zp ZP_BYTE:15 286.0 -(byte) render_current::current_cell -(byte) render_current::current_cell#0 reg byte a 1001.0 -(byte) render_current::i -(byte) render_current::i#1 i zp ZP_BYTE:13 202.0 -(byte) render_current::i#10 i zp ZP_BYTE:13 429.0 -(byte) render_current::i#3 i zp ZP_BYTE:13 50.5 -(byte) render_current::i#4 i zp ZP_BYTE:13 1552.0 -(byte) render_current::i#8 i zp ZP_BYTE:13 300.75 -(byte) render_current::l -(byte) render_current::l#1 l zp ZP_BYTE:12 151.5 -(byte) render_current::l#4 l zp ZP_BYTE:12 11.222222222222221 -(byte*) render_current::screen_line -(byte*) render_current::screen_line#0 screen_line zp ZP_WORD:7 100.18181818181819 -(byte) render_current::xpos -(byte) render_current::xpos#0 xpos zp ZP_BYTE:14 202.0 -(byte) render_current::xpos#1 xpos zp ZP_BYTE:14 667.3333333333334 -(byte) render_current::xpos#2 xpos zp ZP_BYTE:14 684.1666666666667 -(byte) render_current::ypos2 -(byte) render_current::ypos2#0 ypos2 zp ZP_BYTE:11 4.0 -(byte) render_current::ypos2#1 ypos2 zp ZP_BYTE:11 67.33333333333333 -(byte) render_current::ypos2#2 ypos2 zp ZP_BYTE:11 29.823529411764707 (void()) render_init() (byte~) render_init::$13 reg byte a 22.0 (byte~) render_init::$14 reg byte a 22.0 @@ -852,6 +835,42 @@ (byte*) render_init::vicSelectGfxBank1_toDd001_gfx (byte) render_init::vicSelectGfxBank1_toDd001_return (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 vicSelectGfxBank1_toDd001_return = (byte/signed byte/word/signed word/dword/signed dword) 3^>((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 6 +(void()) render_moving() +(byte~) render_moving::$5 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::@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::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#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::screen_line +(byte*) render_moving::screen_line#0 screen_line zp ZP_WORD:7 100.18181818181819 +(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::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 (void()) render_playfield() (byte~) render_playfield::$2 reg byte a 202.0 (byte~) render_playfield::$3 reg byte a 202.0 @@ -902,13 +921,13 @@ (byte) render_screen_original::SPACE (const byte) render_screen_original::SPACE#0 SPACE = (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) render_screen_original::cols -(byte*) render_screen_original::cols#1 cols zp ZP_WORD:24 101.0 -(byte*) render_screen_original::cols#2 cols zp ZP_WORD:24 75.75 -(byte*) render_screen_original::cols#3 cols zp ZP_WORD:24 42.599999999999994 -(byte*) render_screen_original::cols#4 cols zp ZP_WORD:24 78.5 -(byte*) render_screen_original::cols#5 cols zp ZP_WORD:24 80.8 -(byte*) render_screen_original::cols#6 cols zp ZP_WORD:24 101.0 -(byte*) render_screen_original::cols#7 cols zp ZP_WORD:24 22.0 +(byte*) render_screen_original::cols#1 cols zp ZP_WORD:26 101.0 +(byte*) render_screen_original::cols#2 cols zp ZP_WORD:26 75.75 +(byte*) render_screen_original::cols#3 cols zp ZP_WORD:26 42.599999999999994 +(byte*) render_screen_original::cols#4 cols zp ZP_WORD:26 78.5 +(byte*) render_screen_original::cols#5 cols zp ZP_WORD:26 80.8 +(byte*) render_screen_original::cols#6 cols zp ZP_WORD:26 101.0 +(byte*) render_screen_original::cols#7 cols zp ZP_WORD:26 22.0 (byte*) render_screen_original::ocols (byte*) render_screen_original::ocols#1 ocols zp ZP_WORD:7 17.75 (byte*) render_screen_original::ocols#2 ocols zp ZP_WORD:7 67.33333333333333 @@ -947,8 +966,8 @@ (byte) render_screen_show#13 render_screen_show zp ZP_BYTE:2 4.333333333333333 (byte) render_screen_show#16 render_screen_show zp ZP_BYTE:2 0.37777777777777777 (byte) render_screen_showing -(byte) render_screen_showing#0 render_screen_showing zp ZP_BYTE:33 0.5 -(byte) render_screen_showing#1 render_screen_showing zp ZP_BYTE:33 20.0 +(byte) render_screen_showing#0 render_screen_showing zp ZP_BYTE:35 0.5 +(byte) render_screen_showing#1 render_screen_showing zp ZP_BYTE:35 20.0 (void()) render_screen_swap() (label) render_screen_swap::@return (void()) render_show() @@ -988,10 +1007,10 @@ (const dword[]) score_add_bcd#0 score_add_bcd = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 64, (word/signed word/dword/signed dword) 256, (word/signed word/dword/signed dword) 768, (word/signed word/dword/signed dword) 4608 } (dword) score_bcd (dword) score_bcd#10 score_bcd zp ZP_DWORD:19 4.0 -(dword) score_bcd#12 score_bcd zp ZP_DWORD:19 1.6666666666666665 +(dword) score_bcd#12 score_bcd zp ZP_DWORD:19 1.3333333333333333 (dword) score_bcd#14 score_bcd zp ZP_DWORD:19 2.4489795918367347 (dword) score_bcd#20 score_bcd zp ZP_DWORD:19 6.0 -(dword) score_bcd#23 score_bcd zp ZP_DWORD:19 0.8888888888888888 +(dword) score_bcd#23 score_bcd zp ZP_DWORD:19 0.8571428571428571 (byte*[PLAYFIELD_LINES#0]) screen_lines_1 (const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 screen_lines_1 = { fill( PLAYFIELD_LINES#0, 0) } (byte*[PLAYFIELD_LINES#0]) screen_lines_2 @@ -1061,18 +1080,18 @@ zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 play_init::idx#2 play zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_spawn_current::$3 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#53 current_piece_gfx#102 current_piece_gfx#103 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 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_current::screen_line#0 play_collision::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#9 current_ypos#86 current_ypos#87 ] zp ZP_BYTE:9 [ render_screen_render#30 render_screen_render#64 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::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#47 current_xpos#112 current_xpos#113 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::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#90 current_piece_char#91 ] -zp ZP_BYTE:11 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::i#1 keyboard_event_scan::row_scan#0 ] -zp ZP_BYTE:12 [ render_current::l#4 render_current::l#1 play_collision::l#6 play_collision::l#1 play_remove_lines::c#0 ] -zp ZP_BYTE:13 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] -zp ZP_BYTE:14 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 play_collision::col#2 play_collision::col#9 play_collision::col#1 ] -zp ZP_BYTE:15 [ render_current::c#2 render_current::c#1 main::key_event#0 ] +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::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::l#6 play_collision::l#1 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::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] +zp ZP_BYTE:14 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 play_collision::col#2 play_collision::col#9 play_collision::col#1 ] +zp ZP_BYTE:15 [ render_moving::c#2 render_moving::c#1 main::key_event#0 ] reg byte x [ render_screen_render#21 render_screen_render#65 ] reg byte a [ play_move_rotate::return#1 ] reg byte x [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] @@ -1084,12 +1103,14 @@ reg byte x [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_dow zp ZP_BYTE:16 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] zp ZP_WORD:17 [ lines_bcd#20 lines_bcd#13 lines_bcd#15 lines_bcd#11 lines_bcd#23 render_screen_original::screen#7 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#9 render_screen_original::screen#10 render_screen_original::screen#2 render_screen_original::screen#3 ] zp ZP_DWORD:19 [ score_bcd#20 score_bcd#12 score_bcd#14 score_bcd#10 score_bcd#23 ] -zp ZP_BYTE:23 [ level_bcd#21 level_bcd#14 level_bcd#16 level_bcd#11 level_bcd#13 level_bcd#4 ] -zp ZP_WORD:24 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 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:26 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -zp ZP_WORD:27 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 ] -zp ZP_BYTE:29 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] -zp ZP_BYTE:30 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] +zp ZP_BYTE:23 [ level#24 level#14 level#19 level#12 level#16 ] +zp ZP_BYTE:24 [ current_movedown_slow#30 current_movedown_slow#19 current_movedown_slow#12 current_movedown_slow#1 current_movedown_slow#17 current_movedown_slow#20 current_movedown_slow#8 ] +zp ZP_BYTE:25 [ level_bcd#25 level_bcd#15 level_bcd#20 level_bcd#13 level_bcd#18 level_bcd#17 level_bcd#6 ] +zp ZP_WORD:26 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 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_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] +zp ZP_WORD:29 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 ] +zp ZP_BYTE:31 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] +zp ZP_BYTE:32 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] reg byte x [ play_move_down::return#2 ] reg byte x [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] reg byte y [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] @@ -1098,23 +1119,23 @@ reg byte x [ play_lock_current::c#2 play_lock_current::c#1 ] reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] reg byte x [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] -zp ZP_BYTE:31 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] +zp ZP_BYTE:33 [ 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 ] reg byte a [ render_show::d018val#3 ] reg byte x [ play_init::j#2 play_init::j#1 ] reg byte x [ sprites_init::s#2 sprites_init::s#1 ] reg byte x [ render_init::i#2 render_init::i#1 ] reg byte x [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] -zp ZP_BYTE:32 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 irq_raster_next#0 ] +zp ZP_BYTE:34 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 irq_raster_next#0 ] reg byte x [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] -zp ZP_BYTE:33 [ render_screen_showing#0 render_screen_showing#1 ] -zp ZP_BYTE:34 [ irq_sprite_ypos#0 irq_sprite_ypos#2 irq_sprite_ypos#1 ] -zp ZP_BYTE:35 [ irq_sprite_ptr#0 irq_sprite_ptr#2 irq_sprite_ptr#1 ] -zp ZP_BYTE:36 [ irq_cnt#0 irq_cnt#1 irq_cnt#14 ] +zp ZP_BYTE:35 [ render_screen_showing#0 render_screen_showing#1 ] +zp ZP_BYTE:36 [ irq_sprite_ypos#0 irq_sprite_ypos#2 irq_sprite_ypos#1 ] +zp ZP_BYTE:37 [ irq_sprite_ptr#0 irq_sprite_ptr#2 irq_sprite_ptr#1 ] +zp ZP_BYTE:38 [ irq_cnt#0 irq_cnt#1 irq_cnt#14 ] reg byte a [ keyboard_event_get::return#3 ] reg byte a [ play_move_down::key_event#0 ] reg byte a [ play_move_down::return#3 ] reg byte a [ main::$12 ] -zp ZP_BYTE:37 [ main::render#1 main::render#2 ] +zp ZP_BYTE:39 [ main::render#1 main::render#2 ] reg byte a [ play_move_leftright::key_event#0 ] reg byte a [ play_move_leftright::return#4 ] reg byte a [ main::$13 ] @@ -1126,15 +1147,15 @@ 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_current::$5 ] -reg byte a [ render_current::current_cell#0 ] +reg byte a [ render_moving::$5 ] +reg byte a [ render_moving::current_cell#0 ] reg byte a [ render_playfield::$2 ] reg byte a [ render_playfield::$3 ] reg byte a [ play_move_rotate::$2 ] reg byte a [ play_collision::return#13 ] reg byte a [ play_move_rotate::$6 ] reg byte a [ play_move_rotate::$4 ] -zp ZP_BYTE:38 [ play_collision::i#1 ] +zp ZP_BYTE:40 [ play_collision::i#1 ] reg byte a [ play_collision::$7 ] reg byte a [ play_collision::return#12 ] reg byte a [ play_move_leftright::$4 ] @@ -1152,10 +1173,10 @@ reg byte a [ play_spawn_current::$1 ] reg byte a [ sid_rnd::return#0 ] reg byte a [ play_update_score::$2 ] reg byte a [ play_update_score::$4 ] -zp ZP_DWORD:39 [ play_update_score::add_bcd#0 ] +zp ZP_DWORD:41 [ play_update_score::add_bcd#0 ] reg byte a [ play_update_score::$5 ] reg byte a [ play_update_score::lines_after#0 ] -reg byte a [ play_update_score::$9 ] +reg byte a [ play_increase_level::$1 ] reg byte a [ keyboard_event_pressed::$0 ] reg byte a [ keyboard_event_pressed::$1 ] reg byte a [ keyboard_event_pressed::return#11 ]