From 6ff6d7c2cccb6b47b1f2242965291c76fa37d2e9 Mon Sep 17 00:00:00 2001 From: jespergravgaard Date: Sun, 30 Dec 2018 03:05:22 +0100 Subject: [PATCH] Added level. (not correct BCD after 9) --- src/test/kc/examples/tetris/tetris-data.kc | 4 + src/test/kc/examples/tetris/tetris-play.kc | 7 + src/test/kc/examples/tetris/tetris-render.kc | 39 +- src/test/ref/examples/tetris/tetris.asm | 270 +- src/test/ref/examples/tetris/tetris.cfg | 1065 +- src/test/ref/examples/tetris/tetris.log | 12886 +++++++++-------- src/test/ref/examples/tetris/tetris.sym | 496 +- 7 files changed, 8208 insertions(+), 6559 deletions(-) diff --git a/src/test/kc/examples/tetris/tetris-data.kc b/src/test/kc/examples/tetris/tetris-data.kc index 8ec85f116..1ef4bbfc4 100644 --- a/src/test/kc/examples/tetris/tetris-data.kc +++ b/src/test/kc/examples/tetris/tetris-data.kc @@ -44,4 +44,8 @@ volatile byte render_screen_showing = 0; // Current score in BCD-format dword score_bcd = 0; +// Current number of cleared lines in BCD-format +word lines_bcd = 0; +// Current level BCD-format +byte level_bcd = 1; diff --git a/src/test/kc/examples/tetris/tetris-play.kc b/src/test/kc/examples/tetris/tetris-play.kc index 54fb6bad8..0c0f32864 100644 --- a/src/test/kc/examples/tetris/tetris-play.kc +++ b/src/test/kc/examples/tetris/tetris-play.kc @@ -238,8 +238,15 @@ byte play_remove_lines() { void play_update_score(byte removed) { if(removed!=0){ dword add_bcd = score_add_bcd[removed<<2]; + byte lines_before = >4); + word score_offset = 40*$05 + $1c; + render_bcd( screen, score_offset, score_bytes[2], 0); + render_bcd( screen, score_offset+2, score_bytes[1], 0); + render_bcd( screen, score_offset+4, score_bytes[0], 0); + + word lines_offset = 40*$01 + $16; + render_bcd( screen, lines_offset, >lines_bcd, 1); + render_bcd( screen, lines_offset+1, > 4); } + *screen_pos++ = ZERO_CHAR + (bcd & $0f); } // Copy the original screen data to the passed screen diff --git a/src/test/ref/examples/tetris/tetris.asm b/src/test/ref/examples/tetris/tetris.asm index a26877e80..5799bece2 100644 --- a/src/test/ref/examples/tetris/tetris.asm +++ b/src/test/ref/examples/tetris/tetris.asm @@ -76,29 +76,31 @@ .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 = $1a - .label render_screen_showing = $1e - .label irq_raster_next = $1d - .label irq_sprite_ypos = $1f - .label irq_sprite_ptr = $20 - .label irq_cnt = $21 + .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 current_movedown_counter = 4 - .label current_ypos = $e - .label current_piece_gfx = $16 - .label current_xpos = $18 - .label current_piece_char = $19 - .label current_orientation = $15 - .label score_bcd = $f + .label current_ypos = $10 + .label current_piece_gfx = $1a + .label current_xpos = $1c + .label current_piece_char = $1d + .label current_orientation = $19 + .label level_bcd = $1e .label render_screen_render = 3 .label render_screen_show = 2 - .label current_piece = $13 + .label lines_bcd = $11 + .label score_bcd = $13 + .label current_piece = $17 .label current_piece_12 = 5 - .label render_screen_render_30 = 7 - .label current_xpos_47 = 8 + .label render_screen_render_30 = 9 + .label current_xpos_47 = $a .label current_piece_gfx_53 = 5 - .label render_screen_render_64 = 7 - .label current_xpos_112 = 8 - .label current_xpos_113 = 8 + .label render_screen_render_64 = 9 + .label current_xpos_112 = $a + .label current_xpos_113 = $a .label current_piece_gfx_102 = 5 .label current_piece_gfx_103 = 5 .label current_piece_76 = 5 @@ -118,8 +120,8 @@ bbegin: sta irq_cnt jsr main main: { - .label key_event = $d - .label render = $22 + .label key_event = $f + .label render = $25 jsr sid_rnd_init sei jsr render_init @@ -145,11 +147,15 @@ main: { sta current_piece lda PIECES+1,y sta current_piece+1 + lda #1 + sta level_bcd lda #0 sta score_bcd sta score_bcd+1 sta score_bcd+2 sta score_bcd+3 + sta lines_bcd + sta lines_bcd+1 sta current_movedown_counter sta keyboard_events_size sta current_orientation @@ -208,42 +214,86 @@ render_screen_swap: { rts } render_score: { - .const ZERO_CHAR = $33 - .const SCREEN_SCORE_ROW = 5 - .const SCREEN_SCORE_COL = $21 .label score_bytes = score_bcd - .label score_byte = 7 - .label screen_score_pos = 5 + .const score_offset = $28*5+$1c + .const lines_offset = $28*1+$16 + .const level_offset = $28*$13+$1f + .label screen = 5 lda render_screen_render cmp #0 beq b1 - lda #PLAYFIELD_SCREEN_2+$28*SCREEN_SCORE_ROW+SCREEN_SCORE_COL - sta screen_score_pos+1 + lda #PLAYFIELD_SCREEN_2 + sta screen+1 jmp b2 b1: - lda #PLAYFIELD_SCREEN_1+$28*SCREEN_SCORE_ROW+SCREEN_SCORE_COL - sta screen_score_pos+1 + lda #PLAYFIELD_SCREEN_1 + sta screen+1 b2: - ldx #0 - b3: - lda score_bytes,x - sta score_byte - lda #$f - and score_byte - clc - adc #ZERO_CHAR + ldx score_bytes+2 ldy #0 - sta (screen_score_pos),y - lda screen_score_pos - bne !+ - dec screen_score_pos+1 - !: - dec screen_score_pos - lda score_byte + lda #score_offset + sta render_bcd.offset+1 + jsr render_bcd + ldx score_bytes+1 + ldy #0 + lda #score_offset+2 + sta render_bcd.offset+1 + jsr render_bcd + ldx score_bytes + ldy #0 + lda #score_offset+4 + sta render_bcd.offset+1 + jsr render_bcd + lda lines_bcd+1 + tax + ldy #1 + lda #lines_offset + sta render_bcd.offset+1 + jsr render_bcd + lda lines_bcd + tax + ldy #0 + lda #lines_offset+1 + sta render_bcd.offset+1 + jsr render_bcd + ldx level_bcd + ldy #0 + lda #level_offset + sta render_bcd.offset+1 + jsr render_bcd + rts +} +render_bcd: { + .const ZERO_CHAR = $33 + .label screen = 5 + .label screen_pos = 7 + .label offset = 7 + lda screen_pos + clc + adc screen + sta screen_pos + lda screen_pos+1 + adc screen+1 + sta screen_pos+1 + cpy #0 + bne b1 + txa lsr lsr lsr @@ -251,24 +301,31 @@ render_score: { clc adc #ZERO_CHAR ldy #0 - sta (screen_score_pos),y - lda screen_score_pos + sta (screen_pos),y + inc screen_pos bne !+ - dec screen_score_pos+1 + inc screen_pos+1 + !: + b1: + txa + and #$f + clc + adc #ZERO_CHAR + ldy #0 + sta (screen_pos),y + inc screen_pos + bne !+ + inc screen_pos+1 !: - dec screen_score_pos - inx - cpx #3 - bne b3 rts } render_current: { - .label ypos2 = 9 - .label screen_line = $1b - .label xpos = $c - .label i = $b - .label l = $a - .label c = $d + .label ypos2 = $b + .label screen_line = 7 + .label xpos = $e + .label i = $d + .label l = $c + .label c = $f tya asl sta ypos2 @@ -336,9 +393,9 @@ render_current: { } render_playfield: { .label screen_line = 5 - .label i = 8 - .label c = 9 - .label l = 7 + .label i = $a + .label c = $b + .label l = 9 lda #PLAYFIELD_COLS*2 sta i lda #2 @@ -377,7 +434,7 @@ render_playfield: { rts } play_move_rotate: { - .label orientation = 7 + .label orientation = 9 cmp #KEY_Z beq b1 cmp #KEY_X @@ -423,17 +480,17 @@ play_move_rotate: { jmp b4 } play_collision: { - .label xpos = 8 + .label xpos = $a .label piece_gfx = 5 - .label ypos2 = 9 - .label playfield_line = $1b - .label i = $23 - .label col = $c - .label l = $a - .label i_2 = $b - .label i_3 = $b - .label i_11 = $b - .label i_13 = $b + .label ypos2 = $b + .label playfield_line = 7 + .label i = $26 + .label col = $e + .label l = $c + .label i_2 = $d + .label i_3 = $d + .label i_11 = $d + .label i_13 = $d txa clc adc piece_gfx @@ -596,6 +653,7 @@ play_move_down: { jsr play_lock_current jsr play_remove_lines lda play_remove_lines.removed + tax jsr play_update_score jsr play_spawn_current ldy play_spawn_current._3 @@ -650,9 +708,11 @@ sid_rnd: { rts } play_update_score: { - .label add_bcd = $24 - cmp #0 + .label add_bcd = $27 + .label lines_before = 4 + cpx #0 beq breturn + txa asl asl tay @@ -664,7 +724,17 @@ play_update_score: { sta add_bcd+2 lda score_add_bcd+3,y sta add_bcd+3 + lda lines_bcd + and #$f0 + sta lines_before sed + txa + clc + adc lines_bcd + sta lines_bcd + lda #0 + adc lines_bcd+1 + sta lines_bcd+1 lda score_bcd clc adc add_bcd @@ -678,16 +748,22 @@ play_update_score: { lda score_bcd+3 adc add_bcd+3 sta score_bcd+3 + lda lines_bcd + and #$f0 + cmp lines_before + beq b2 + inc level_bcd + b2: cld breturn: rts } play_remove_lines: { - .label c = $a - .label x = 8 + .label c = $c + .label x = $a .label y = 4 - .label removed = 7 - .label full = 9 + .label removed = 9 + .label full = $b lda #0 sta removed sta y @@ -738,15 +814,15 @@ play_remove_lines: { jmp b5 } play_lock_current: { - .label ypos2 = $e + .label ypos2 = $10 .label playfield_line = 5 - .label col = 8 - .label i = 9 + .label col = $a + .label i = $b .label l = 4 - .label i_2 = 7 - .label i_3 = 7 - .label i_7 = 7 - .label i_9 = 7 + .label i_2 = 9 + .label i_3 = 9 + .label i_7 = 9 + .label i_9 = 9 asl ypos2 lda #0 sta l @@ -795,8 +871,8 @@ play_lock_current: { jmp b2 } keyboard_event_pressed: { - .label row_bits = 8 - .label keycode = 7 + .label row_bits = $a + .label keycode = 9 lda keycode lsr lsr @@ -825,9 +901,9 @@ keyboard_event_get: { rts } keyboard_event_scan: { - .label row_scan = 9 - .label keycode = 8 - .label row = 7 + .label row_scan = $b + .label keycode = $a + .label row = 9 lda #0 sta keycode sta row @@ -1038,7 +1114,7 @@ sprites_init: { render_init: { .const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_CHARSET)>>6 .label li_1 = 5 - .label li_2 = $13 + .label li_2 = 7 lda #3 sta CIA2_PORT_A_DDR lda #vicSelectGfxBank1_toDd001_return @@ -1109,10 +1185,10 @@ render_init: { } render_screen_original: { .const SPACE = 0 - .label screen = $16 - .label cols = $1b + .label screen = $11 + .label cols = $17 .label oscr = 5 - .label ocols = $13 + .label ocols = 7 .label y = 2 lda #0 sta y diff --git a/src/test/ref/examples/tetris/tetris.cfg b/src/test/ref/examples/tetris/tetris.cfg index 55e4d1c0d..b66aafc5d 100644 --- a/src/test/ref/examples/tetris/tetris.cfg +++ b/src/test/ref/examples/tetris/tetris.cfg @@ -17,8 +17,8 @@ }} kickasm(location (const byte*) PLAYFIELD_COLORS_ORIGINAL#0) {{ .import binary "playfield-screen.col" }} - to:@21 -@21: scope:[] from @14 + to:@22 +@22: scope:[] from @14 kickasm(location (const 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++) { @@ -31,25 +31,25 @@ } } }} - to:@22 -@22: scope:[] from @21 + to:@23 +@23: scope:[] from @22 [6] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 [7] (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 to:toSpritePtr1 -toSpritePtr1: scope:[] from @22 +toSpritePtr1: scope:[] from @23 [8] phi() - to:@35 -@35: scope:[] from toSpritePtr1 + to:@36 +@36: 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:@34 -@34: scope:[] from @35 + to:@35 +@35: scope:[] from @36 [11] phi() [12] call main to:@end -@end: scope:[] from @34 +@end: scope:[] from @35 [13] phi() -main: scope:[main] from @34 +main: scope:[main] from @35 [14] phi() [15] call sid_rnd_init to:main::@15 @@ -86,7 +86,9 @@ main::@21: scope:[main] from main::@20 [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#14 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 1 main::@31/(byte) level_bcd#10 main::@28/(byte) level_bcd#10 ) [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 ) [34] (byte) keyboard_events_size#19 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@31/(byte) keyboard_events_size#16 main::@28/(byte) keyboard_events_size#16 ) [34] (byte) current_piece_char#15 ← phi( main::@21/(byte) current_piece_char#12 main::@31/(byte) current_piece_char#1 main::@28/(byte) current_piece_char#1 ) @@ -168,846 +170,901 @@ render_screen_swap::@return: scope:[render_screen_swap] from render_screen_swap to:@return render_score: scope:[render_score] from main::@30 [75] if((byte) render_screen_render#17==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_score::@2 - to:render_score::@4 -render_score::@4: scope:[render_score] from render_score + to:render_score::@3 +render_score::@3: scope:[render_score] from render_score [76] phi() to:render_score::@2 -render_score::@2: scope:[render_score] from render_score render_score::@4 - [77] (byte*) render_score::screen_score_pos#5 ← phi( render_score/(const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(const byte) render_score::SCREEN_SCORE_ROW#0+(const byte) render_score::SCREEN_SCORE_COL#0 render_score::@4/(const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(const byte) render_score::SCREEN_SCORE_ROW#0+(const byte) render_score::SCREEN_SCORE_COL#0 ) - to:render_score::@3 -render_score::@3: scope:[render_score] from render_score::@2 render_score::@3 - [78] (byte*) render_score::screen_score_pos#4 ← phi( render_score::@2/(byte*) render_score::screen_score_pos#5 render_score::@3/(byte*) render_score::screen_score_pos#3 ) - [78] (byte) render_score::b#2 ← phi( render_score::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_score::@3/(byte) render_score::b#1 ) - [79] (byte) render_score::score_byte#0 ← *((const byte*) render_score::score_bytes#0 + (byte) render_score::b#2) - [80] (byte~) render_score::$9 ← (byte) render_score::score_byte#0 & (byte/signed byte/word/signed word/dword/signed dword) 15 - [81] (byte~) render_score::$10 ← (const byte) render_score::ZERO_CHAR#0 + (byte~) render_score::$9 - [82] *((byte*) render_score::screen_score_pos#4) ← (byte~) render_score::$10 - [83] (byte*) render_score::screen_score_pos#2 ← -- (byte*) render_score::screen_score_pos#4 - [84] (byte~) render_score::$11 ← (byte) render_score::score_byte#0 >> (byte/signed byte/word/signed word/dword/signed dword) 4 - [85] (byte~) render_score::$12 ← (const byte) render_score::ZERO_CHAR#0 + (byte~) render_score::$11 - [86] *((byte*) render_score::screen_score_pos#2) ← (byte~) render_score::$12 - [87] (byte*) render_score::screen_score_pos#3 ← -- (byte*) render_score::screen_score_pos#2 - [88] (byte) render_score::b#1 ← ++ (byte) render_score::b#2 - [89] if((byte) render_score::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto render_score::@3 +render_score::@2: scope:[render_score] from render_score render_score::@3 + [77] (byte*) render_score::screen#2 ← phi( render_score/(const byte*) PLAYFIELD_SCREEN_1#0 render_score::@3/(const byte*) PLAYFIELD_SCREEN_2#0 ) + [78] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 + [79] (byte) render_bcd::bcd#0 ← *((const byte*) render_score::score_bytes#0+(byte/signed byte/word/signed word/dword/signed dword) 2) + [80] call render_bcd + to:render_score::@5 +render_score::@5: scope:[render_score] from render_score::@2 + [81] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#2 + [82] (byte) render_bcd::bcd#1 ← *((const byte*) render_score::score_bytes#0+(byte/signed byte/word/signed word/dword/signed dword) 1) + [83] call render_bcd + to:render_score::@6 +render_score::@6: scope:[render_score] from render_score::@5 + [84] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#2 + [85] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes#0) + [86] call render_bcd + to:render_score::@7 +render_score::@7: scope:[render_score] from render_score::@6 + [87] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#11 + [88] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#2 + [89] call render_bcd + to:render_score::@8 +render_score::@8: scope:[render_score] from render_score::@7 + [90] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#11 + [91] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#2 + [92] call render_bcd + 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#10 + [95] call render_bcd to:render_score::@return -render_score::@return: scope:[render_score] from render_score::@3 - [90] return +render_score::@return: scope:[render_score] from render_score::@9 + [96] return + to:@return +render_bcd: scope:[render_bcd] from render_score::@2 render_score::@5 render_score::@6 render_score::@7 render_score::@8 render_score::@9 + [97] (byte) render_bcd::bcd#6 ← phi( render_score::@2/(byte) render_bcd::bcd#0 render_score::@5/(byte) render_bcd::bcd#1 render_score::@6/(byte) render_bcd::bcd#2 render_score::@7/(byte) render_bcd::bcd#3 render_score::@8/(byte) render_bcd::bcd#4 render_score::@9/(byte) render_bcd::bcd#5 ) + [97] (byte) render_bcd::only_low#6 ← phi( render_score::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_score::@5/(byte/signed byte/word/signed word/dword/signed dword) 0 render_score::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 render_score::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 render_score::@8/(byte/signed byte/word/signed word/dword/signed dword) 0 render_score::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [97] (word) render_bcd::offset#6 ← phi( render_score::@2/(const word) render_score::score_offset#0 render_score::@5/(const word) render_score::score_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 2 render_score::@6/(const word) render_score::score_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 4 render_score::@7/(const word) render_score::lines_offset#0 render_score::@8/(const word) render_score::lines_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 1 render_score::@9/(const word) render_score::level_offset#0 ) + [97] (byte*) render_bcd::screen#6 ← phi( render_score::@2/(byte*) render_bcd::screen#0 render_score::@5/(byte*) render_bcd::screen#1 render_score::@6/(byte*) render_bcd::screen#2 render_score::@7/(byte*) render_bcd::screen#3 render_score::@8/(byte*) render_bcd::screen#4 render_score::@9/(byte*) render_bcd::screen#5 ) + [98] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 + [99] if((byte) render_bcd::only_low#6!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_bcd::@1 + to:render_bcd::@2 +render_bcd::@2: scope:[render_bcd] from render_bcd + [100] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 + [101] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$3 + [102] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 + [103] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 + to:render_bcd::@1 +render_bcd::@1: scope:[render_bcd] from render_bcd render_bcd::@2 + [104] (byte*) render_bcd::screen_pos#3 ← phi( render_bcd/(byte*) render_bcd::screen_pos#0 render_bcd::@2/(byte*) render_bcd::screen_pos#2 ) + [105] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [106] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 + [107] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 + [108] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 + to:render_bcd::@return +render_bcd::@return: scope:[render_bcd] from render_bcd::@1 + [109] return to:@return render_current: scope:[render_current] from main::@21 main::@29 - [91] (byte) current_piece_char#64 ← phi( main::@21/(byte~) current_piece_char#90 main::@29/(byte~) current_piece_char#91 ) - [91] (byte*) current_piece_gfx#53 ← phi( main::@21/(byte*~) current_piece_gfx#102 main::@29/(byte*~) current_piece_gfx#103 ) - [91] (byte) current_xpos#47 ← phi( main::@21/(byte~) current_xpos#112 main::@29/(byte~) current_xpos#113 ) - [91] (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 ) - [91] (byte) current_ypos#9 ← phi( main::@21/(byte~) current_ypos#86 main::@29/(byte~) current_ypos#87 ) - [92] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [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 - [93] (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 ) - [93] (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 ) - [93] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@3/(byte) render_current::ypos2#1 ) - [94] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 + [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 - [95] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 + [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 - [96] (byte) render_current::i#8 ← phi( render_current::@5/(byte) render_current::i#10 render_current::@7/(byte) render_current::i#1 ) - [97] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [98] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 - [99] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 + [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 - [100] return + [119] return to:@return render_current::@13: scope:[render_current] from render_current::@1 - [101] 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 + [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 - [102] (byte~) render_current::$5 ← (byte) render_screen_render#30 + (byte) render_current::ypos2#2 - [103] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) - [104] (byte) render_current::xpos#0 ← (byte) current_xpos#47 + [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 - [105] (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 ) - [105] (byte) render_current::xpos#2 ← phi( render_current::@2/(byte) render_current::xpos#0 render_current::@5/(byte) render_current::xpos#1 ) - [105] (byte) render_current::i#4 ← phi( render_current::@2/(byte) render_current::i#3 render_current::@5/(byte) render_current::i#10 ) - [106] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) - [107] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 - [108] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto 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 - [109] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 + [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 - [110] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#64 + [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 - [111] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 - [112] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 - [113] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@4 + [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_playfield: scope:[render_playfield] from main::@13 main::@20 - [114] (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 ) + [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 render_playfield::@1: scope:[render_playfield] from render_playfield render_playfield::@3 - [115] (byte) render_playfield::i#3 ← phi( render_playfield/(const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::i#1 ) - [115] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::l#1 ) - [116] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [117] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 - [118] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) + [134] (byte) render_playfield::i#3 ← phi( render_playfield/(const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::i#1 ) + [134] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::l#1 ) + [135] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [136] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 + [137] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) to:render_playfield::@2 render_playfield::@2: scope:[render_playfield] from render_playfield::@1 render_playfield::@2 - [119] (byte) render_playfield::c#2 ← phi( render_playfield::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@2/(byte) render_playfield::c#1 ) - [119] (byte*) render_playfield::screen_line#2 ← phi( render_playfield::@1/(byte*) render_playfield::screen_line#0 render_playfield::@2/(byte*) render_playfield::screen_line#1 ) - [119] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) - [120] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) - [121] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 - [122] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 - [123] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 - [124] 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 + [138] (byte) render_playfield::c#2 ← phi( render_playfield::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@2/(byte) render_playfield::c#1 ) + [138] (byte*) render_playfield::screen_line#2 ← phi( render_playfield::@1/(byte*) render_playfield::screen_line#0 render_playfield::@2/(byte*) render_playfield::screen_line#1 ) + [138] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) + [139] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) + [140] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 + [141] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 + [142] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 + [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 to:render_playfield::@3 render_playfield::@3: scope:[render_playfield] from render_playfield::@2 - [125] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 - [126] 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 + [144] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 + [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 to:render_playfield::@return render_playfield::@return: scope:[render_playfield] from render_playfield::@3 - [127] return + [146] return to:@return play_move_rotate: scope:[play_move_rotate] from main::@27 - [128] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 + [147] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 to:play_move_rotate::@6 play_move_rotate::@6: scope:[play_move_rotate] from play_move_rotate - [129] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 + [148] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 to:play_move_rotate::@return play_move_rotate::@return: scope:[play_move_rotate] from play_move_rotate::@11 play_move_rotate::@14 play_move_rotate::@6 - [130] (byte*) current_piece_gfx#14 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#3 play_move_rotate::@14/(byte*) current_piece_gfx#1 play_move_rotate::@6/(byte*) current_piece_gfx#1 ) - [130] (byte) current_orientation#19 ← phi( play_move_rotate::@11/(byte) current_orientation#4 play_move_rotate::@14/(byte) current_orientation#14 play_move_rotate::@6/(byte) current_orientation#14 ) - [130] (byte) play_move_rotate::return#1 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [131] return + [149] (byte*) current_piece_gfx#14 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#3 play_move_rotate::@14/(byte*) current_piece_gfx#1 play_move_rotate::@6/(byte*) current_piece_gfx#1 ) + [149] (byte) current_orientation#19 ← phi( play_move_rotate::@11/(byte) current_orientation#4 play_move_rotate::@14/(byte) current_orientation#14 play_move_rotate::@6/(byte) current_orientation#14 ) + [149] (byte) play_move_rotate::return#1 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [150] return to:@return play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6 - [132] (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 - [133] (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 + [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 + [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 to:play_move_rotate::@4 play_move_rotate::@4: scope:[play_move_rotate] from play_move_rotate::@1 play_move_rotate::@2 - [134] (byte) play_move_rotate::orientation#3 ← phi( play_move_rotate::@1/(byte) play_move_rotate::orientation#1 play_move_rotate::@2/(byte) play_move_rotate::orientation#2 ) - [135] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 - [136] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 - [137] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 - [138] (byte*~) current_piece#79 ← (byte*) current_piece#10 - [139] call play_collision - [140] (byte) play_collision::return#13 ← (byte) play_collision::return#14 + [153] (byte) play_move_rotate::orientation#3 ← phi( play_move_rotate::@1/(byte) play_move_rotate::orientation#1 play_move_rotate::@2/(byte) play_move_rotate::orientation#2 ) + [154] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 + [155] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 + [156] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 + [157] (byte*~) current_piece#79 ← (byte*) current_piece#10 + [158] call play_collision + [159] (byte) play_collision::return#13 ← (byte) play_collision::return#14 to:play_move_rotate::@14 play_move_rotate::@14: scope:[play_move_rotate] from play_move_rotate::@4 - [141] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 - [142] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return + [160] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 + [161] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return to:play_move_rotate::@11 play_move_rotate::@11: scope:[play_move_rotate] from play_move_rotate::@14 - [143] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 - [144] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 + [162] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 + [163] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 to:play_move_rotate::@return play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate - [145] (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 - [146] (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 + [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 + [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 to:play_move_rotate::@4 play_collision: scope:[play_collision] from play_move_down::@12 play_move_leftright::@1 play_move_leftright::@7 play_move_rotate::@4 - [147] (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 ) - [147] (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 ) - [147] (byte) play_collision::orientation#4 ← phi( play_move_down::@12/(byte) play_collision::orientation#0 play_move_leftright::@1/(byte) play_collision::orientation#1 play_move_leftright::@7/(byte) play_collision::orientation#2 play_move_rotate::@4/(byte) play_collision::orientation#3 ) - [147] (byte*) current_piece#12 ← phi( play_move_down::@12/(byte*~) current_piece#76 play_move_leftright::@1/(byte*~) current_piece#77 play_move_leftright::@7/(byte*~) current_piece#78 play_move_rotate::@4/(byte*~) current_piece#79 ) - [148] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 - [149] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [166] (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 ) + [166] (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 ) + [166] (byte) play_collision::orientation#4 ← phi( play_move_down::@12/(byte) play_collision::orientation#0 play_move_leftright::@1/(byte) play_collision::orientation#1 play_move_leftright::@7/(byte) play_collision::orientation#2 play_move_rotate::@4/(byte) play_collision::orientation#3 ) + [166] (byte*) current_piece#12 ← phi( play_move_down::@12/(byte*~) current_piece#76 play_move_leftright::@1/(byte*~) current_piece#77 play_move_leftright::@7/(byte*~) current_piece#78 play_move_rotate::@4/(byte*~) current_piece#79 ) + [167] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 + [168] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_collision::@1 play_collision::@1: scope:[play_collision] from play_collision play_collision::@20 - [150] (byte) play_collision::l#6 ← phi( play_collision/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@20/(byte) play_collision::l#1 ) - [150] (byte) play_collision::i#3 ← phi( play_collision/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@20/(byte~) play_collision::i#11 ) - [150] (byte) play_collision::ypos2#2 ← phi( play_collision/(byte) play_collision::ypos2#0 play_collision::@20/(byte) play_collision::ypos2#1 ) - [151] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) - [152] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 + [169] (byte) play_collision::l#6 ← phi( play_collision/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@20/(byte) play_collision::l#1 ) + [169] (byte) play_collision::i#3 ← phi( play_collision/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@20/(byte~) play_collision::i#11 ) + [169] (byte) play_collision::ypos2#2 ← phi( play_collision/(byte) play_collision::ypos2#0 play_collision::@20/(byte) play_collision::ypos2#1 ) + [170] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) + [171] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 to:play_collision::@2 play_collision::@2: scope:[play_collision] from play_collision::@1 play_collision::@21 - [153] (byte) play_collision::c#2 ← phi( play_collision::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@21/(byte) play_collision::c#1 ) - [153] (byte) play_collision::col#2 ← phi( play_collision::@1/(byte~) play_collision::col#9 play_collision::@21/(byte) play_collision::col#1 ) - [153] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@21/(byte~) play_collision::i#13 ) - [154] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 - [155] 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 + [172] (byte) play_collision::c#2 ← phi( play_collision::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@21/(byte) play_collision::c#1 ) + [172] (byte) play_collision::col#2 ← phi( play_collision::@1/(byte~) play_collision::col#9 play_collision::@21/(byte) play_collision::col#1 ) + [172] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@21/(byte~) play_collision::i#13 ) + [173] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 + [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 to:play_collision::@8 play_collision::@8: scope:[play_collision] from play_collision::@2 - [156] 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 + [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 to:play_collision::@return play_collision::@return: scope:[play_collision] from play_collision::@17 play_collision::@4 play_collision::@5 play_collision::@6 play_collision::@8 - [157] (byte) play_collision::return#14 ← phi( play_collision::@4/(const byte) COLLISION_LEFT#0 play_collision::@5/(const byte) COLLISION_RIGHT#0 play_collision::@6/(const byte) COLLISION_PLAYFIELD#0 play_collision::@17/(const byte) COLLISION_NONE#0 play_collision::@8/(const byte) COLLISION_BOTTOM#0 ) - [158] return + [176] (byte) play_collision::return#14 ← phi( play_collision::@4/(const byte) COLLISION_LEFT#0 play_collision::@5/(const byte) COLLISION_RIGHT#0 play_collision::@6/(const byte) COLLISION_PLAYFIELD#0 play_collision::@17/(const byte) COLLISION_NONE#0 play_collision::@8/(const byte) COLLISION_BOTTOM#0 ) + [177] return to:@return play_collision::@4: scope:[play_collision] from play_collision::@8 - [159] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 - [160] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 + [178] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 + [179] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 to:play_collision::@return play_collision::@5: scope:[play_collision] from play_collision::@4 - [161] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 + [180] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 to:play_collision::@return play_collision::@6: scope:[play_collision] from play_collision::@5 - [162] 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 + [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 to:play_collision::@return play_collision::@3: scope:[play_collision] from play_collision::@2 play_collision::@6 - [163] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 - [164] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 - [165] if((byte) play_collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@21 + [182] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 + [183] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 + [184] if((byte) play_collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@21 to:play_collision::@17 play_collision::@17: scope:[play_collision] from play_collision::@3 - [166] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [167] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 - [168] if((byte) play_collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@20 + [185] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [186] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 + [187] if((byte) play_collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@20 to:play_collision::@return play_collision::@20: scope:[play_collision] from play_collision::@17 - [169] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 + [188] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 to:play_collision::@1 play_collision::@21: scope:[play_collision] from play_collision::@3 - [170] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 + [189] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 to:play_collision::@2 play_move_leftright: scope:[play_move_leftright] from main::@26 - [171] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 + [190] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 to:play_move_leftright::@6 play_move_leftright::@6: scope:[play_move_leftright] from play_move_leftright - [172] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return + [191] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return to:play_move_leftright::@7 play_move_leftright::@7: scope:[play_move_leftright] from play_move_leftright::@6 - [173] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [174] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 - [175] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 - [176] (byte*~) current_piece#78 ← (byte*) current_piece#10 - [177] call play_collision - [178] (byte) play_collision::return#12 ← (byte) play_collision::return#14 + [192] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [193] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 + [194] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 + [195] (byte*~) current_piece#78 ← (byte*) current_piece#10 + [196] call play_collision + [197] (byte) play_collision::return#12 ← (byte) play_collision::return#14 to:play_move_leftright::@15 play_move_leftright::@15: scope:[play_move_leftright] from play_move_leftright::@7 - [179] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 - [180] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [198] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 + [199] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return to:play_move_leftright::@8 play_move_leftright::@8: scope:[play_move_leftright] from play_move_leftright::@15 - [181] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 + [200] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 to:play_move_leftright::@return play_move_leftright::@return: scope:[play_move_leftright] from play_move_leftright::@11 play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 play_move_leftright::@8 - [182] (byte) current_xpos#19 ← phi( play_move_leftright::@11/(byte) current_xpos#4 play_move_leftright::@15/(byte) current_xpos#1 play_move_leftright::@8/(byte) current_xpos#2 play_move_leftright::@14/(byte) current_xpos#1 play_move_leftright::@6/(byte) current_xpos#1 ) - [182] (byte) play_move_leftright::return#1 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [183] return + [201] (byte) current_xpos#19 ← phi( play_move_leftright::@11/(byte) current_xpos#4 play_move_leftright::@15/(byte) current_xpos#1 play_move_leftright::@8/(byte) current_xpos#2 play_move_leftright::@14/(byte) current_xpos#1 play_move_leftright::@6/(byte) current_xpos#1 ) + [201] (byte) play_move_leftright::return#1 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [202] return to:@return play_move_leftright::@1: scope:[play_move_leftright] from play_move_leftright - [184] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 - [185] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 - [186] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 - [187] (byte*~) current_piece#77 ← (byte*) current_piece#10 - [188] call play_collision - [189] (byte) play_collision::return#1 ← (byte) play_collision::return#14 + [203] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [204] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 + [205] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 + [206] (byte*~) current_piece#77 ← (byte*) current_piece#10 + [207] call play_collision + [208] (byte) play_collision::return#1 ← (byte) play_collision::return#14 to:play_move_leftright::@14 play_move_leftright::@14: scope:[play_move_leftright] from play_move_leftright::@1 - [190] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 - [191] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [209] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + [210] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return to:play_move_leftright::@11 play_move_leftright::@11: scope:[play_move_leftright] from play_move_leftright::@14 - [192] (byte) current_xpos#4 ← -- (byte) current_xpos#1 + [211] (byte) current_xpos#4 ← -- (byte) current_xpos#1 to:play_move_leftright::@return play_move_down: scope:[play_move_down] from main::@25 - [193] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 - [194] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 + [212] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 + [213] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 to:play_move_down::@8 play_move_down::@8: scope:[play_move_down] from play_move_down - [195] phi() + [214] phi() to:play_move_down::@1 play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down::@8 - [196] (byte) play_move_down::movedown#10 ← phi( play_move_down/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [197] call keyboard_event_pressed - [198] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + [215] (byte) play_move_down::movedown#10 ← phi( play_move_down/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [216] call keyboard_event_pressed + [217] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 to:play_move_down::@17 play_move_down::@17: scope:[play_move_down] from play_move_down::@1 - [199] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 - [200] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 + [218] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + [219] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 to:play_move_down::@9 play_move_down::@9: scope:[play_move_down] from play_move_down::@17 - [201] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 + [220] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 to:play_move_down::@10 play_move_down::@10: scope:[play_move_down] from play_move_down::@9 - [202] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 + [221] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 to:play_move_down::@2 play_move_down::@2: scope:[play_move_down] from play_move_down::@10 play_move_down::@17 play_move_down::@9 - [203] (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 ) - [204] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 + [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 to:play_move_down::@11 play_move_down::@11: scope:[play_move_down] from play_move_down::@2 - [205] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 + [224] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 to:play_move_down::@4 play_move_down::@4: scope:[play_move_down] from play_move_down::@11 play_move_down::@2 - [206] (byte) play_move_down::movedown#6 ← phi( play_move_down::@11/(byte) play_move_down::movedown#3 play_move_down::@2/(byte) play_move_down::movedown#7 ) - [207] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return + [225] (byte) play_move_down::movedown#6 ← phi( play_move_down::@11/(byte) play_move_down::movedown#3 play_move_down::@2/(byte) play_move_down::movedown#7 ) + [226] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return to:play_move_down::@12 play_move_down::@12: scope:[play_move_down] from play_move_down::@4 - [208] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [209] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 - [210] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 - [211] (byte*~) current_piece#76 ← (byte*) current_piece#16 - [212] call play_collision - [213] (byte) play_collision::return#0 ← (byte) play_collision::return#14 + [227] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [228] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 + [229] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 + [230] (byte*~) current_piece#76 ← (byte*) current_piece#16 + [231] call play_collision + [232] (byte) play_collision::return#0 ← (byte) play_collision::return#14 to:play_move_down::@18 play_move_down::@18: scope:[play_move_down] from play_move_down::@12 - [214] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 - [215] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 + [233] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + [234] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 to:play_move_down::@13 play_move_down::@13: scope:[play_move_down] from play_move_down::@18 - [216] phi() - [217] call play_lock_current + [235] phi() + [236] call play_lock_current to:play_move_down::@19 play_move_down::@19: scope:[play_move_down] from play_move_down::@13 - [218] phi() - [219] call play_remove_lines - [220] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 + [237] phi() + [238] call play_remove_lines + [239] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 to:play_move_down::@20 play_move_down::@20: scope:[play_move_down] from play_move_down::@19 - [221] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 - [222] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 - [223] call play_update_score + [240] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 + [241] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 + [242] call play_update_score to:play_move_down::@21 play_move_down::@21: scope:[play_move_down] from play_move_down::@20 - [224] phi() - [225] call play_spawn_current - [226] (byte*~) current_piece#80 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + [243] phi() + [244] call play_spawn_current + [245] (byte*~) current_piece#80 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) to:play_move_down::@7 play_move_down::@7: scope:[play_move_down] from play_move_down::@21 play_move_down::@6 - [227] (byte) current_piece_char#20 ← phi( play_move_down::@21/(byte) current_piece_char#12 play_move_down::@6/(byte) current_piece_char#15 ) - [227] (byte) current_xpos#33 ← phi( play_move_down::@21/(byte) current_xpos#23 play_move_down::@6/(byte) current_xpos#10 ) - [227] (byte*) current_piece_gfx#26 ← phi( play_move_down::@21/(byte*) current_piece_gfx#16 play_move_down::@6/(byte*) current_piece_gfx#20 ) - [227] (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 ) - [227] (byte*) current_piece#20 ← phi( play_move_down::@21/(byte*~) current_piece#80 play_move_down::@6/(byte*) current_piece#16 ) - [227] (dword) score_bcd#20 ← phi( play_move_down::@21/(dword) score_bcd#12 play_move_down::@6/(dword) score_bcd#14 ) - [227] (byte) current_ypos#29 ← phi( play_move_down::@21/(byte) current_ypos#18 play_move_down::@6/(byte) current_ypos#0 ) + [246] (byte) current_piece_char#20 ← phi( play_move_down::@21/(byte) current_piece_char#12 play_move_down::@6/(byte) current_piece_char#15 ) + [246] (byte) current_xpos#33 ← phi( play_move_down::@21/(byte) current_xpos#23 play_move_down::@6/(byte) current_xpos#10 ) + [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#19 ← phi( play_move_down::@21/(byte) level_bcd#12 play_move_down::@6/(byte) level_bcd#14 ) + [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 ) to:play_move_down::@return play_move_down::@return: scope:[play_move_down] from play_move_down::@4 play_move_down::@7 - [228] (byte) current_piece_char#1 ← phi( play_move_down::@4/(byte) current_piece_char#15 play_move_down::@7/(byte) current_piece_char#20 ) - [228] (byte) current_xpos#1 ← phi( play_move_down::@4/(byte) current_xpos#10 play_move_down::@7/(byte) current_xpos#33 ) - [228] (byte*) current_piece_gfx#1 ← phi( play_move_down::@4/(byte*) current_piece_gfx#20 play_move_down::@7/(byte*) current_piece_gfx#26 ) - [228] (byte) current_orientation#14 ← phi( play_move_down::@4/(byte) current_orientation#10 play_move_down::@7/(byte) current_orientation#29 ) - [228] (byte*) current_piece#10 ← phi( play_move_down::@4/(byte*) current_piece#16 play_move_down::@7/(byte*) current_piece#20 ) - [228] (dword) score_bcd#10 ← phi( play_move_down::@4/(dword) score_bcd#14 play_move_down::@7/(dword) score_bcd#20 ) - [228] (byte) current_ypos#13 ← phi( play_move_down::@4/(byte) current_ypos#21 play_move_down::@7/(byte) current_ypos#29 ) - [228] (byte) current_movedown_counter#10 ← phi( play_move_down::@4/(byte) current_movedown_counter#1 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [228] (byte) play_move_down::return#2 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [229] return + [247] (byte) current_piece_char#1 ← phi( play_move_down::@4/(byte) current_piece_char#15 play_move_down::@7/(byte) current_piece_char#20 ) + [247] (byte) current_xpos#1 ← phi( play_move_down::@4/(byte) current_xpos#10 play_move_down::@7/(byte) current_xpos#33 ) + [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#10 ← phi( play_move_down::@4/(byte) level_bcd#14 play_move_down::@7/(byte) level_bcd#19 ) + [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 ) + [247] (byte) current_movedown_counter#10 ← phi( play_move_down::@4/(byte) current_movedown_counter#1 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [247] (byte) play_move_down::return#2 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [248] return to:@return play_move_down::@6: scope:[play_move_down] from play_move_down::@18 - [230] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 + [249] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 to:play_move_down::@7 play_spawn_current: scope:[play_spawn_current] from main::@19 play_move_down::@21 - [231] phi() + [250] phi() to:play_spawn_current::@1 play_spawn_current::@1: scope:[play_spawn_current] from play_spawn_current play_spawn_current::@7 - [232] (byte) play_spawn_current::piece_idx#2 ← phi( play_spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 7 play_spawn_current::@7/(byte) play_spawn_current::piece_idx#1 ) - [233] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 + [251] (byte) play_spawn_current::piece_idx#2 ← phi( play_spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 7 play_spawn_current::@7/(byte) play_spawn_current::piece_idx#1 ) + [252] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 to:play_spawn_current::@3 play_spawn_current::@3: scope:[play_spawn_current] from play_spawn_current::@1 - [234] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [235] (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 - [236] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) - [237] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) - [238] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) + [253] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [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 + [255] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) + [256] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) + [257] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) to:play_spawn_current::@return play_spawn_current::@return: scope:[play_spawn_current] from play_spawn_current::@3 - [239] return + [258] return to:@return play_spawn_current::@2: scope:[play_spawn_current] from play_spawn_current::@1 - [240] phi() - [241] call sid_rnd - [242] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + [259] phi() + [260] call sid_rnd + [261] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 to:play_spawn_current::@7 play_spawn_current::@7: scope:[play_spawn_current] from play_spawn_current::@2 - [243] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 - [244] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [262] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 + [263] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 to:play_spawn_current::@1 sid_rnd: scope:[sid_rnd] from play_spawn_current::@2 - [245] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) + [264] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) to:sid_rnd::@return sid_rnd::@return: scope:[sid_rnd] from sid_rnd - [246] return + [265] return to:@return play_update_score: scope:[play_update_score] from play_move_down::@20 - [247] 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::@2 -play_update_score::@2: scope:[play_update_score] from play_update_score - [248] (byte~) play_update_score::$2 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 - [249] (dword) play_update_score::add_bcd#0 ← *((const dword[]) score_add_bcd#0 + (byte~) play_update_score::$2) + [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::@3 +play_update_score::@3: scope:[play_update_score] from play_update_score + [267] (byte~) play_update_score::$2 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 + [268] (dword) play_update_score::add_bcd#0 ← *((const dword[]) score_add_bcd#0 + (byte~) play_update_score::$2) + [269] (byte~) play_update_score::$3 ← < (word) lines_bcd#15 + [270] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$3 & (byte/word/signed word/dword/signed dword) 240 asm { sed } - [251] (dword) score_bcd#3 ← (dword) score_bcd#14 + (dword) play_update_score::add_bcd#0 + [272] (word) lines_bcd#23 ← (word) lines_bcd#15 + (byte) play_update_score::removed#0 + [273] (dword) score_bcd#23 ← (dword) score_bcd#14 + (dword) play_update_score::add_bcd#0 + [274] (byte~) play_update_score::$5 ← < (word) lines_bcd#23 + [275] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 + [276] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@2 + to:play_update_score::@4 +play_update_score::@4: scope:[play_update_score] from play_update_score::@3 + [277] (byte) level_bcd#3 ← (byte) level_bcd#14 + (byte/signed byte/word/signed word/dword/signed dword) 1 + to:play_update_score::@2 +play_update_score::@2: scope:[play_update_score] from play_update_score::@3 play_update_score::@4 + [278] (byte) level_bcd#22 ← phi( play_update_score::@3/(byte) level_bcd#14 play_update_score::@4/(byte) level_bcd#3 ) asm { cld } to:play_update_score::@return play_update_score::@return: scope:[play_update_score] from play_update_score play_update_score::@2 - [253] (dword) score_bcd#12 ← phi( play_update_score/(dword) score_bcd#14 play_update_score::@2/(dword) score_bcd#3 ) - [254] return + [280] (byte) level_bcd#12 ← phi( play_update_score/(byte) level_bcd#14 play_update_score::@2/(byte) level_bcd#22 ) + [280] (dword) score_bcd#12 ← phi( play_update_score/(dword) score_bcd#14 play_update_score::@2/(dword) score_bcd#23 ) + [280] (word) lines_bcd#13 ← phi( play_update_score/(word) lines_bcd#15 play_update_score::@2/(word) lines_bcd#23 ) + [281] return to:@return play_remove_lines: scope:[play_remove_lines] from play_move_down::@19 - [255] phi() + [282] phi() to:play_remove_lines::@1 play_remove_lines::@1: scope:[play_remove_lines] from play_remove_lines play_remove_lines::@4 - [256] (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 ) - [256] (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 ) - [256] (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 ) - [256] (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 ) + [283] (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 ) + [283] (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 ) + [283] (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 ) + [283] (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 - [257] (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 ) - [257] (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 ) - [257] (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 ) - [257] (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 ) - [258] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) - [259] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 - [260] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@18 + [284] (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 ) + [284] (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 ) + [284] (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 ) + [284] (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 ) + [285] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) + [286] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 + [287] 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 - [261] (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 ) - [262] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 - [263] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 - [264] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 - [265] 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 + [288] (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 ) + [289] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 + [290] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 + [291] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 + [292] 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 - [266] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 + [293] 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 - [267] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 - [268] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 + [294] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 + [295] (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 - [269] (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 ) - [269] (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 ) - [270] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 - [271] 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 + [296] (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 ) + [296] (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 ) + [297] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 + [298] 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 - [272] (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 ) - [273] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 + [299] (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 ) + [300] 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 - [274] return + [301] return to:@return play_remove_lines::@6: scope:[play_remove_lines] from play_remove_lines::@5 - [275] *((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 - [276] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 + [302] *((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 + [303] (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 - [277] phi() + [304] phi() to:play_remove_lines::@3 play_lock_current: scope:[play_lock_current] from play_move_down::@13 - [278] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [305] (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 - [279] (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 ) - [279] (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 ) - [279] (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 ) - [280] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) - [281] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 + [306] (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 ) + [306] (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 ) + [306] (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 ) + [307] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) + [308] (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 - [282] (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 ) - [282] (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 ) - [282] (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 ) - [283] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 - [284] 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 + [309] (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 ) + [309] (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 ) + [309] (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 ) + [310] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 + [311] 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 - [285] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 + [312] *((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 - [286] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 - [287] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 - [288] if((byte) play_lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@8 + [313] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 + [314] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 + [315] 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 - [289] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [290] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 - [291] if((byte) play_lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@7 + [316] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [317] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 + [318] 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 - [292] return + [319] return to:@return play_lock_current::@7: scope:[play_lock_current] from play_lock_current::@5 - [293] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 + [320] (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 - [294] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 + [321] (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 - [295] (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 ) - [296] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 - [297] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) - [298] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 - [299] (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) + [322] (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 ) + [323] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 + [324] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) + [325] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [326] (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 - [300] return + [327] return to:@return keyboard_event_get: scope:[keyboard_event_get] from main::@24 - [301] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return + [328] 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 - [302] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 - [303] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) + [329] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 + [330] (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 - [304] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) - [304] (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 ) - [305] return + [331] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) + [331] (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 ) + [332] return to:@return keyboard_event_scan: scope:[keyboard_event_scan] from main::@23 - [306] phi() + [333] phi() to:keyboard_event_scan::@1 keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@3 - [307] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) - [307] (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 ) - [307] (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 ) - [308] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 - [309] call keyboard_matrix_read - [310] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + [334] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) + [334] (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 ) + [334] (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 ) + [335] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 + [336] call keyboard_matrix_read + [337] (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 - [311] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 - [312] 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 + [338] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 + [339] 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 - [313] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 + [340] (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 - [314] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) - [314] (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 ) - [315] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 - [316] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 + [341] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) + [341] (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 ) + [342] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 + [343] 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 - [317] phi() - [318] call keyboard_event_pressed - [319] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + [344] phi() + [345] call keyboard_event_pressed + [346] (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 - [320] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 - [321] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 + [347] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + [348] 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 - [322] phi() + [349] phi() to:keyboard_event_scan::@9 keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@21 keyboard_event_scan::@26 - [323] (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 ) - [324] call keyboard_event_pressed - [325] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + [350] (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 ) + [351] call keyboard_event_pressed + [352] (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 - [326] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 - [327] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 + [353] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + [354] 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 - [328] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 + [355] (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 - [329] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) - [330] call keyboard_event_pressed - [331] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + [356] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) + [357] call keyboard_event_pressed + [358] (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 - [332] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 - [333] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 + [359] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + [360] 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 - [334] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 + [361] (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 - [335] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) - [336] call keyboard_event_pressed - [337] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + [362] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) + [363] call keyboard_event_pressed + [364] (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 - [338] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 - [339] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return + [365] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + [366] 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 - [340] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 + [367] (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 - [341] return + [368] return to:@return keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@25 keyboard_event_scan::@5 - [342] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) - [342] (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 ) - [342] (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 ) - [343] (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) - [344] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) - [345] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 + [369] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) + [369] (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 ) + [369] (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 ) + [370] (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) + [371] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) + [372] 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 - [346] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 + [373] 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 - [347] (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) - [348] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 + [374] (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) + [375] 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 - [349] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 - [350] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 + [376] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 + [377] (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 - [351] (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 ) - [352] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 - [353] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 - [354] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 + [378] (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 ) + [379] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 + [380] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 + [381] 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 - [355] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 + [382] *((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 - [356] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 - [357] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 - [358] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 + [383] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 + [384] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 + [385] (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 - [359] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) - [360] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) + [386] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) + [387] (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 - [361] return + [388] return to:@return render_show: scope:[render_show] from main::@6 - [362] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 + [389] 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 - [363] phi() + [390] phi() to:render_show::@2 render_show::@2: scope:[render_show] from render_show::toD0181 render_show::toD0182 - [364] (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 ) - [365] *((const byte*) D018#0) ← (byte) render_show::d018val#3 - [366] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 + [391] (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 ) + [392] *((const byte*) D018#0) ← (byte) render_show::d018val#3 + [393] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 to:render_show::@return render_show::@return: scope:[render_show] from render_show::@2 - [367] return + [394] return to:@return render_show::toD0181: scope:[render_show] from render_show - [368] phi() + [395] phi() to:render_show::@2 play_init: scope:[play_init] from main::@18 - [369] phi() + [396] phi() to:play_init::@1 play_init::@1: scope:[play_init] from play_init play_init::@1 - [370] (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 ) - [370] (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 ) - [370] (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 ) - [371] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [372] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 - [373] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 - [374] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 - [375] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 - [376] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 - [377] 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 + [397] (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 ) + [397] (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 ) + [397] (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 ) + [398] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [399] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 + [400] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 + [401] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 + [402] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 + [403] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 + [404] 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 - [378] *((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 + [405] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 to:play_init::@return play_init::@return: scope:[play_init] from play_init::@2 - [379] return + [406] return to:@return sprites_irq_init: scope:[sprites_irq_init] from main::@17 asm { sei } - [381] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 + [408] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 asm { ldaCIA1_INTERRUPT } - [383] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 - [384] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 - [385] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [386] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 - [387] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 - [388] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 - [389] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() + [410] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 + [411] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 + [412] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 + [413] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 + [414] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 + [415] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 + [416] *((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 - [391] return + [418] return to:@return sprites_init: scope:[sprites_init] from main::@16 - [392] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 - [393] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [394] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) - [395] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) + [419] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + [420] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [421] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) + [422] *((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 - [396] (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 ) - [396] (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 ) - [397] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [398] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 - [399] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 - [400] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 - [401] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 - [402] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 + [423] (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 ) + [423] (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 ) + [424] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [425] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 + [426] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 + [427] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 + [428] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 + [429] 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 - [403] return + [430] return to:@return render_init: scope:[render_init] from main::@15 - [404] phi() + [431] phi() to:render_init::vicSelectGfxBank1 render_init::vicSelectGfxBank1: scope:[render_init] from render_init - [405] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [432] *((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 - [406] phi() + [433] phi() to:render_init::vicSelectGfxBank1_@1 render_init::vicSelectGfxBank1_@1: scope:[render_init] from render_init::vicSelectGfxBank1_toDd001 - [407] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 + [434] *((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 - [408] *((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 - [409] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 - [410] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 - [411] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 - [412] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 - [413] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 - [414] call render_screen_original + [435] *((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 + [436] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 + [437] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 + [438] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 + [439] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 + [440] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 + [441] call render_screen_original to:render_init::@4 render_init::@4: scope:[render_init] from render_init::@3 - [415] phi() - [416] call render_screen_original + [442] phi() + [443] call render_screen_original to:render_init::@1 render_init::@1: scope:[render_init] from render_init::@1 render_init::@4 - [417] (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 ) - [417] (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 ) - [417] (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 ) - [418] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [419] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 - [420] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [421] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 - [422] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [423] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [424] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 - [425] 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 + [444] (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 ) + [444] (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 ) + [444] (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 ) + [445] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [446] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 + [447] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [448] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 + [449] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [450] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [451] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 + [452] 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 - [426] return + [453] return to:@return render_screen_original: scope:[render_screen_original] from render_init::@3 render_init::@4 - [427] (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 ) + [454] (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 - [428] (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 ) - [428] (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 ) - [428] (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 ) - [428] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS#0 render_screen_original::@7/(byte*) render_screen_original::cols#3 ) - [428] (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 ) + [455] (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 ) + [455] (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 ) + [455] (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 ) + [455] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS#0 render_screen_original::@7/(byte*) render_screen_original::cols#3 ) + [455] (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 - [429] (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 ) - [429] (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 ) - [429] (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 ) - [430] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 - [431] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 - [432] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 - [433] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 - [434] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 - [435] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 + [456] (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 ) + [456] (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 ) + [456] (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 ) + [457] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 + [458] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 + [459] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 + [460] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 + [461] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 + [462] 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 - [436] (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 ) - [436] (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 ) - [436] (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 ) - [436] (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 ) - [436] (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 ) - [437] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) - [438] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 - [439] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 - [440] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) - [441] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 - [442] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 - [443] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 - [444] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 + [463] (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 ) + [463] (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 ) + [463] (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 ) + [463] (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 ) + [463] (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 ) + [464] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) + [465] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 + [466] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 + [467] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) + [468] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 + [469] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 + [470] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 + [471] 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 - [445] (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 ) - [445] (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 ) - [445] (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 ) - [446] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 - [447] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 - [448] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 - [449] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 - [450] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 - [451] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 + [472] (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 ) + [472] (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 ) + [472] (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 ) + [473] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 + [474] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 + [475] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 + [476] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 + [477] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 + [478] 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 - [452] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 - [453] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 + [479] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 + [480] 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 - [454] return + [481] return to:@return sid_rnd_init: scope:[sid_rnd_init] from main - [455] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 - [456] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 + [482] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 + [483] *((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 - [457] return + [484] return to:@return sprites_irq: scope:[sprites_irq] from asm { cld } - [459] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 - [460] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 - [461] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 - [462] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 - [463] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 + [486] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 + [487] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 + [488] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 + [489] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 + [490] *((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 - [464] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 + [491] 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 - [465] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 - [466] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 + [492] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 + [493] 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 - [467] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 - [468] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 - [469] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 - [470] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 - [471] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 - [472] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 + [494] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 + [495] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 + [496] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 + [497] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 + [498] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 + [499] *((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 - [473] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 - [474] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 + [500] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 + [501] 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 - [475] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [476] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [477] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 + [502] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [503] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [504] (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 - [478] (byte) irq_raster_next#13 ← phi( sprites_irq::@10/(byte) irq_raster_next#2 sprites_irq::@13/(byte) irq_raster_next#1 ) - [479] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 - [480] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 - [481] if((byte~) sprites_irq::$4!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto sprites_irq::@6 + [505] (byte) irq_raster_next#13 ← phi( sprites_irq::@10/(byte) irq_raster_next#2 sprites_irq::@13/(byte) irq_raster_next#1 ) + [506] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 + [507] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [508] 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 - [482] (byte) sprites_irq::raster_next#1 ← (byte) sprites_irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [509] (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 - [483] (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 ) - [484] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 - [485] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 + [510] (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 ) + [511] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 + [512] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 to:sprites_irq::@return sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@6 - [486] return + [513] return to:@return sprites_irq::@4: scope:[sprites_irq] from sprites_irq::@3 - [487] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [488] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 - [489] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 + [514] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [515] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 + [516] (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 - [490] phi() + [517] phi() to:sprites_irq::@13 sprites_irq::@13: scope:[sprites_irq] from sprites_irq::toSpritePtr2 - [491] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 + [518] (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 - [492] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 - [493] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 - [494] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 - [495] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 - [496] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 - [497] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 + [519] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 + [520] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 + [521] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 + [522] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 + [523] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 + [524] *((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 64f00d781..f150ea949 100644 --- a/src/test/ref/examples/tetris/tetris.log +++ b/src/test/ref/examples/tetris/tetris.log @@ -513,6 +513,8 @@ sid_rnd::@return: scope:[sid_rnd] from sid_rnd (byte) render_screen_show#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (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 kickasm(location (byte*) PLAYFIELD_CHARSET#0) {{ .fill 8,$00 // Place a filled char at the start of the charset .import binary "playfield-screen.imap" }} @@ -530,7 +532,7 @@ sid_rnd::@return: scope:[sid_rnd] from sid_rnd }} (byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 ← { fill( PLAYFIELD_LINES#0, 0) } (byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 ← { fill( PLAYFIELD_LINES#0, 0) } - to:@21 + to:@22 render_init: scope:[render_init] from main::@15 (byte*) render_init::vicSelectGfxBank1_gfx#0 ← (byte*) PLAYFIELD_CHARSET#0 to:render_init::vicSelectGfxBank1 @@ -703,58 +705,141 @@ render_screen_swap::@return: scope:[render_screen_swap] from render_screen_swap return to:@return render_score: scope:[render_score] from main::@30 - (dword) score_bcd#26 ← phi( main::@30/(dword) score_bcd#36 ) + (byte) level_bcd#73 ← phi( main::@30/(byte) level_bcd#56 ) + (word) lines_bcd#59 ← phi( main::@30/(word) lines_bcd#58 ) + (dword) score_bcd#27 ← phi( main::@30/(dword) score_bcd#38 ) (byte) render_screen_render#12 ← phi( main::@30/(byte) render_screen_render#20 ) - (byte) render_score::ZERO_CHAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 51 - (byte) render_score::SCREEN_SCORE_ROW#0 ← (byte/signed byte/word/signed word/dword/signed dword) 5 - (byte) render_score::SCREEN_SCORE_COL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 33 (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::@4 -render_score::@1: scope:[render_score] from render_score - (dword) score_bcd#16 ← phi( render_score/(dword) score_bcd#26 ) - (byte) render_score::SCREEN_SCORE_COL#1 ← phi( render_score/(byte) render_score::SCREEN_SCORE_COL#0 ) - (byte) render_score::SCREEN_SCORE_ROW#1 ← phi( render_score/(byte) render_score::SCREEN_SCORE_ROW#0 ) - (byte/signed word/word/dword/signed dword~) render_score::$4 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte) render_score::SCREEN_SCORE_ROW#1 - (byte*~) render_score::$5 ← (byte*) PLAYFIELD_SCREEN_1#0 + (byte/signed word/word/dword/signed dword~) render_score::$4 - (byte*~) render_score::$6 ← (byte*~) render_score::$5 + (byte) render_score::SCREEN_SCORE_COL#1 - (byte*) render_score::screen_score_pos#0 ← (byte*~) render_score::$6 - to:render_score::@2 -render_score::@4: scope:[render_score] from render_score - (dword) score_bcd#17 ← phi( render_score/(dword) score_bcd#26 ) - (byte) render_score::SCREEN_SCORE_COL#2 ← phi( render_score/(byte) render_score::SCREEN_SCORE_COL#0 ) - (byte) render_score::SCREEN_SCORE_ROW#2 ← phi( render_score/(byte) render_score::SCREEN_SCORE_ROW#0 ) - (byte/signed word/word/dword/signed dword~) render_score::$1 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte) render_score::SCREEN_SCORE_ROW#2 - (byte*~) render_score::$2 ← (byte*) PLAYFIELD_SCREEN_2#0 + (byte/signed word/word/dword/signed dword~) render_score::$1 - (byte*~) render_score::$3 ← (byte*~) render_score::$2 + (byte) render_score::SCREEN_SCORE_COL#2 - (byte*) render_score::screen_score_pos#1 ← (byte*~) render_score::$3 - to:render_score::@2 -render_score::@2: scope:[render_score] from render_score::@1 render_score::@4 - (byte*) render_score::screen_score_pos#5 ← phi( render_score::@1/(byte*) render_score::screen_score_pos#0 render_score::@4/(byte*) render_score::screen_score_pos#1 ) - (dword) score_bcd#8 ← phi( render_score::@1/(dword) score_bcd#16 render_score::@4/(dword) score_bcd#17 ) - (dword*~) render_score::$7 ← & (dword) score_bcd#8 - (byte*~) render_score::$8 ← ((byte*)) (dword*~) render_score::$7 - (byte*) render_score::score_bytes#0 ← (byte*~) render_score::$8 - (byte) render_score::b#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_score::@3 -render_score::@3: scope:[render_score] from render_score::@2 render_score::@3 - (byte*) render_score::screen_score_pos#4 ← phi( render_score::@2/(byte*) render_score::screen_score_pos#5 render_score::@3/(byte*) render_score::screen_score_pos#3 ) - (byte) render_score::b#2 ← phi( render_score::@2/(byte) render_score::b#0 render_score::@3/(byte) render_score::b#1 ) - (byte*) render_score::score_bytes#1 ← phi( render_score::@2/(byte*) render_score::score_bytes#0 render_score::@3/(byte*) render_score::score_bytes#1 ) - (byte) render_score::score_byte#0 ← *((byte*) render_score::score_bytes#1 + (byte) render_score::b#2) - (byte~) render_score::$9 ← (byte) render_score::score_byte#0 & (byte/signed byte/word/signed word/dword/signed dword) 15 - (byte~) render_score::$10 ← (byte) render_score::ZERO_CHAR#0 + (byte~) render_score::$9 - *((byte*) render_score::screen_score_pos#4) ← (byte~) render_score::$10 - (byte*) render_score::screen_score_pos#2 ← -- (byte*) render_score::screen_score_pos#4 - (byte~) render_score::$11 ← (byte) render_score::score_byte#0 >> (byte/signed byte/word/signed word/dword/signed dword) 4 - (byte~) render_score::$12 ← (byte) render_score::ZERO_CHAR#0 + (byte~) render_score::$11 - *((byte*) render_score::screen_score_pos#2) ← (byte~) render_score::$12 - (byte*) render_score::screen_score_pos#3 ← -- (byte*) render_score::screen_score_pos#2 - (byte) render_score::b#1 ← (byte) render_score::b#2 + rangenext(0,2) - (bool~) render_score::$13 ← (byte) render_score::b#1 != rangelast(0,2) - if((bool~) render_score::$13) goto render_score::@3 +render_score::@1: scope:[render_score] from render_score + (byte) level_bcd#64 ← phi( render_score/(byte) level_bcd#73 ) + (word) lines_bcd#48 ← phi( render_score/(word) lines_bcd#59 ) + (dword) score_bcd#16 ← phi( render_score/(dword) score_bcd#27 ) + (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#65 ← phi( render_score/(byte) level_bcd#73 ) + (word) lines_bcd#49 ← phi( render_score/(word) lines_bcd#59 ) + (dword) score_bcd#17 ← phi( render_score/(dword) score_bcd#27 ) + (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#57 ← phi( render_score::@1/(byte) level_bcd#64 render_score::@3/(byte) level_bcd#65 ) + (word) lines_bcd#38 ← phi( render_score::@1/(word) lines_bcd#48 render_score::@3/(word) lines_bcd#49 ) + (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 + (byte*~) render_score::$2 ← ((byte*)) (dword*~) render_score::$1 + (byte*) render_score::score_bytes#0 ← (byte*~) render_score::$2 + (byte/word/signed word/dword/signed dword~) render_score::$3 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 5 + (byte/signed word/word/dword/signed dword~) render_score::$4 ← (byte/word/signed word/dword/signed dword~) render_score::$3 + (byte/signed byte/word/signed word/dword/signed dword) 28 + (word) render_score::score_offset#0 ← (byte/signed word/word/dword/signed dword~) render_score::$4 + (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 + (word) render_bcd::offset#0 ← (word) render_score::score_offset#0 + (byte) render_bcd::bcd#0 ← *((byte*) render_score::score_bytes#0 + (byte/signed byte/word/signed word/dword/signed dword) 2) + (byte) render_bcd::only_low#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + call render_bcd + to:render_score::@5 +render_score::@5: scope:[render_score] from render_score::@2 + (byte) level_bcd#47 ← phi( render_score::@2/(byte) level_bcd#57 ) + (word) lines_bcd#27 ← phi( render_score::@2/(word) lines_bcd#38 ) + (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 ) + (word/signed dword/dword~) render_score::$6 ← (word) render_score::score_offset#1 + (byte/signed byte/word/signed word/dword/signed dword) 2 + (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#3 + (word) render_bcd::offset#1 ← (word/signed dword/dword~) render_score::$6 + (byte) render_bcd::bcd#1 ← *((byte*) render_score::score_bytes#1 + (byte/signed byte/word/signed word/dword/signed dword) 1) + (byte) render_bcd::only_low#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + call render_bcd + to:render_score::@6 +render_score::@6: scope:[render_score] from render_score::@5 + (byte) level_bcd#37 ← phi( render_score::@5/(byte) level_bcd#47 ) + (word) lines_bcd#17 ← phi( render_score::@5/(word) lines_bcd#27 ) + (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 ) + (word/signed dword/dword~) render_score::$8 ← (word) render_score::score_offset#2 + (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#4 + (word) render_bcd::offset#2 ← (word/signed dword/dword~) render_score::$8 + (byte) render_bcd::bcd#2 ← *((byte*) render_score::score_bytes#2 + (byte/signed byte/word/signed word/dword/signed dword) 0) + (byte) render_bcd::only_low#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + call render_bcd + to:render_score::@7 +render_score::@7: scope:[render_score] from render_score::@6 + (byte) level_bcd#26 ← phi( render_score::@6/(byte) level_bcd#37 ) + (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 + (byte/signed word/word/dword/signed dword/signed byte~) render_score::$11 ← (byte/signed byte/word/signed word/dword/signed dword~) render_score::$10 + (byte/signed byte/word/signed word/dword/signed dword) 22 + (word) render_score::lines_offset#0 ← (byte/signed word/word/dword/signed dword/signed byte~) render_score::$11 + (byte~) render_score::$12 ← > (word) lines_bcd#8 + (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#5 + (word) render_bcd::offset#3 ← (word) render_score::lines_offset#0 + (byte) render_bcd::bcd#3 ← (byte~) render_score::$12 + (byte) render_bcd::only_low#3 ← (byte/signed byte/word/signed word/dword/signed dword) 1 + call render_bcd + to:render_score::@8 +render_score::@8: scope:[render_score] from render_score::@7 + (byte) level_bcd#16 ← phi( render_score::@7/(byte) level_bcd#26 ) + (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 ) + (word/signed dword/dword~) render_score::$14 ← (word) render_score::lines_offset#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte~) render_score::$15 ← < (word) lines_bcd#9 + (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#6 + (word) render_bcd::offset#4 ← (word/signed dword/dword~) render_score::$14 + (byte) render_bcd::bcd#4 ← (byte~) render_score::$15 + (byte) render_bcd::only_low#4 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + call render_bcd + to:render_score::@9 +render_score::@9: scope:[render_score] from render_score::@8 + (byte) level_bcd#8 ← phi( render_score::@8/(byte) level_bcd#16 ) + (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#8 + (byte) render_bcd::only_low#5 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + call render_bcd + to:render_score::@10 +render_score::@10: scope:[render_score] from render_score::@9 to:render_score::@return -render_score::@return: scope:[render_score] from render_score::@3 +render_score::@return: scope:[render_score] from render_score::@10 + return + to:@return +render_bcd: scope:[render_bcd] from render_score::@2 render_score::@5 render_score::@6 render_score::@7 render_score::@8 render_score::@9 + (byte) render_bcd::bcd#8 ← phi( render_score::@2/(byte) render_bcd::bcd#0 render_score::@5/(byte) render_bcd::bcd#1 render_score::@6/(byte) render_bcd::bcd#2 render_score::@7/(byte) render_bcd::bcd#3 render_score::@8/(byte) render_bcd::bcd#4 render_score::@9/(byte) render_bcd::bcd#5 ) + (byte) render_bcd::only_low#6 ← phi( render_score::@2/(byte) render_bcd::only_low#0 render_score::@5/(byte) render_bcd::only_low#1 render_score::@6/(byte) render_bcd::only_low#2 render_score::@7/(byte) render_bcd::only_low#3 render_score::@8/(byte) render_bcd::only_low#4 render_score::@9/(byte) render_bcd::only_low#5 ) + (word) render_bcd::offset#6 ← phi( render_score::@2/(word) render_bcd::offset#0 render_score::@5/(word) render_bcd::offset#1 render_score::@6/(word) render_bcd::offset#2 render_score::@7/(word) render_bcd::offset#3 render_score::@8/(word) render_bcd::offset#4 render_score::@9/(word) render_bcd::offset#5 ) + (byte*) render_bcd::screen#6 ← phi( render_score::@2/(byte*) render_bcd::screen#0 render_score::@5/(byte*) render_bcd::screen#1 render_score::@6/(byte*) render_bcd::screen#2 render_score::@7/(byte*) render_bcd::screen#3 render_score::@8/(byte*) render_bcd::screen#4 render_score::@9/(byte*) render_bcd::screen#5 ) + (byte) render_bcd::ZERO_CHAR#0 ← (byte/signed byte/word/signed word/dword/signed dword) 51 + (byte*~) render_bcd::$0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 + (byte*) render_bcd::screen_pos#0 ← (byte*~) render_bcd::$0 + (bool~) render_bcd::$1 ← (byte) render_bcd::only_low#6 == (byte/signed byte/word/signed word/dword/signed dword) 0 + (bool~) render_bcd::$2 ← ! (bool~) render_bcd::$1 + if((bool~) render_bcd::$2) goto render_bcd::@1 + to:render_bcd::@2 +render_bcd::@1: scope:[render_bcd] from render_bcd render_bcd::@2 + (byte*) render_bcd::screen_pos#3 ← phi( render_bcd/(byte*) render_bcd::screen_pos#0 render_bcd::@2/(byte*) render_bcd::screen_pos#2 ) + (byte) render_bcd::bcd#6 ← phi( render_bcd/(byte) render_bcd::bcd#8 render_bcd::@2/(byte) render_bcd::bcd#7 ) + (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 + (byte~) render_bcd::$6 ← (byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 + *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 + (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 + to:render_bcd::@return +render_bcd::@2: scope:[render_bcd] from render_bcd + (byte*) render_bcd::screen_pos#4 ← phi( render_bcd/(byte*) render_bcd::screen_pos#0 ) + (byte) render_bcd::bcd#7 ← phi( render_bcd/(byte) render_bcd::bcd#8 ) + (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#7 >> (byte/signed byte/word/signed word/dword/signed dword) 4 + (byte~) render_bcd::$4 ← (byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$3 + *((byte*) render_bcd::screen_pos#4) ← (byte~) render_bcd::$4 + (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#4 + to:render_bcd::@1 +render_bcd::@return: scope:[render_bcd] from render_bcd::@1 return to:@return render_screen_original: scope:[render_screen_original] from render_init::@3 render_init::@4 @@ -1020,8 +1105,10 @@ render_current::@10: scope:[render_current] from render_current::@9 render_current::@return: scope:[render_current] from render_current::@3 return to:@return -@21: scope:[] from @14 - (dword) score_bcd#69 ← phi( @14/(dword) score_bcd#0 ) +@22: scope:[] from @14 + (byte) level_bcd#76 ← phi( @14/(byte) level_bcd#0 ) + (dword) score_bcd#71 ← phi( @14/(dword) score_bcd#0 ) + (word) lines_bcd#75 ← 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 ) @@ -1043,7 +1130,7 @@ render_current::@return: scope:[render_current] from render_current::@3 } } }} - to:@22 + to:@23 sprites_init: scope:[sprites_init] from main::@16 *((byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 *((byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -1070,36 +1157,40 @@ sprites_init::@1: scope:[sprites_init] from sprites_init sprites_init::@1 sprites_init::@return: scope:[sprites_init] from sprites_init::@1 return to:@return -@22: scope:[] from @21 - (dword) score_bcd#67 ← phi( @21/(dword) score_bcd#69 ) - (byte) keyboard_modifiers#53 ← phi( @21/(byte) keyboard_modifiers#55 ) - (byte) keyboard_events_size#69 ← phi( @21/(byte) keyboard_events_size#73 ) - (byte) render_screen_showing#39 ← phi( @21/(byte) render_screen_showing#42 ) - (byte) current_piece_char#80 ← phi( @21/(byte) current_piece_char#81 ) - (byte) current_ypos#76 ← phi( @21/(byte) current_ypos#77 ) - (byte) current_xpos#102 ← phi( @21/(byte) current_xpos#103 ) - (byte*) current_piece_gfx#92 ← phi( @21/(byte*) current_piece_gfx#93 ) - (byte) render_screen_render#55 ← phi( @21/(byte) render_screen_render#57 ) - (byte) render_screen_show#53 ← phi( @21/(byte) render_screen_show#56 ) +@23: scope:[] from @22 + (byte) level_bcd#74 ← phi( @22/(byte) level_bcd#76 ) + (dword) score_bcd#69 ← phi( @22/(dword) score_bcd#71 ) + (word) lines_bcd#73 ← phi( @22/(word) lines_bcd#75 ) + (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 ) + (byte) current_piece_char#80 ← phi( @22/(byte) current_piece_char#81 ) + (byte) current_ypos#76 ← phi( @22/(byte) current_ypos#77 ) + (byte) current_xpos#102 ← phi( @22/(byte) current_xpos#103 ) + (byte*) current_piece_gfx#92 ← phi( @22/(byte*) current_piece_gfx#93 ) + (byte) render_screen_render#55 ← phi( @22/(byte) render_screen_render#57 ) + (byte) render_screen_show#53 ← phi( @22/(byte) render_screen_show#56 ) (byte) IRQ_RASTER_FIRST#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 (byte) irq_raster_next#0 ← (byte) IRQ_RASTER_FIRST#0 (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 (byte*) toSpritePtr1_sprite#0 ← (byte*) PLAYFIELD_SPRITES#0 to:toSpritePtr1 -toSpritePtr1: scope:[] from @22 - (byte) irq_raster_next#23 ← phi( @22/(byte) irq_raster_next#0 ) - (dword) score_bcd#61 ← phi( @22/(dword) score_bcd#67 ) - (byte) keyboard_modifiers#49 ← phi( @22/(byte) keyboard_modifiers#53 ) - (byte) keyboard_events_size#65 ← phi( @22/(byte) keyboard_events_size#69 ) - (byte) render_screen_showing#35 ← phi( @22/(byte) render_screen_showing#39 ) - (byte) current_piece_char#73 ← phi( @22/(byte) current_piece_char#80 ) - (byte) current_ypos#72 ← phi( @22/(byte) current_ypos#76 ) - (byte) current_xpos#98 ← phi( @22/(byte) current_xpos#102 ) - (byte*) current_piece_gfx#86 ← phi( @22/(byte*) current_piece_gfx#92 ) - (byte) render_screen_render#53 ← phi( @22/(byte) render_screen_render#55 ) - (byte) render_screen_show#50 ← phi( @22/(byte) render_screen_show#53 ) - (byte) irq_sprite_ypos#23 ← phi( @22/(byte) irq_sprite_ypos#0 ) - (byte*) toSpritePtr1_sprite#1 ← phi( @22/(byte*) toSpritePtr1_sprite#0 ) +toSpritePtr1: scope:[] from @23 + (byte) irq_raster_next#23 ← phi( @23/(byte) irq_raster_next#0 ) + (byte) level_bcd#66 ← phi( @23/(byte) level_bcd#74 ) + (dword) score_bcd#63 ← phi( @23/(dword) score_bcd#69 ) + (word) lines_bcd#66 ← phi( @23/(word) lines_bcd#73 ) + (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 ) + (byte) current_piece_char#73 ← phi( @23/(byte) current_piece_char#80 ) + (byte) current_ypos#72 ← phi( @23/(byte) current_ypos#76 ) + (byte) current_xpos#98 ← phi( @23/(byte) current_xpos#102 ) + (byte*) current_piece_gfx#86 ← phi( @23/(byte*) current_piece_gfx#92 ) + (byte) render_screen_render#53 ← phi( @23/(byte) render_screen_render#55 ) + (byte) render_screen_show#50 ← phi( @23/(byte) render_screen_show#53 ) + (byte) irq_sprite_ypos#23 ← phi( @23/(byte) irq_sprite_ypos#0 ) + (byte*) toSpritePtr1_sprite#1 ← phi( @23/(byte*) toSpritePtr1_sprite#0 ) (word) toSpritePtr1_$0#0 ← ((word)) (byte*) toSpritePtr1_sprite#1 (word) toSpritePtr1_$1#0 ← (word) toSpritePtr1_$0#0 >> (byte/signed byte/word/signed word/dword/signed dword) 6 (byte) toSpritePtr1_$2#0 ← ((byte)) (word) toSpritePtr1_$1#0 @@ -1107,7 +1198,9 @@ toSpritePtr1: scope:[] from @22 to:toSpritePtr1_@return toSpritePtr1_@return: scope:[] from toSpritePtr1 (byte) irq_raster_next#22 ← phi( toSpritePtr1/(byte) irq_raster_next#23 ) - (dword) score_bcd#55 ← phi( toSpritePtr1/(dword) score_bcd#61 ) + (byte) level_bcd#58 ← phi( toSpritePtr1/(byte) level_bcd#66 ) + (dword) score_bcd#57 ← phi( toSpritePtr1/(dword) score_bcd#63 ) + (word) lines_bcd#60 ← phi( toSpritePtr1/(word) lines_bcd#66 ) (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 ) @@ -1120,10 +1213,12 @@ 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:@35 -@35: scope:[] from toSpritePtr1_@return + to:@36 +@36: scope:[] from toSpritePtr1_@return (byte) irq_raster_next#21 ← phi( toSpritePtr1_@return/(byte) irq_raster_next#22 ) - (dword) score_bcd#46 ← phi( toSpritePtr1_@return/(dword) score_bcd#55 ) + (byte) level_bcd#48 ← phi( toSpritePtr1_@return/(byte) level_bcd#58 ) + (dword) score_bcd#48 ← phi( toSpritePtr1_@return/(dword) score_bcd#57 ) + (word) lines_bcd#50 ← phi( toSpritePtr1_@return/(word) lines_bcd#60 ) (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 ) @@ -1138,7 +1233,7 @@ toSpritePtr1_@return: scope:[] from toSpritePtr1 (byte~) $4 ← (byte) toSpritePtr1_return#3 (byte) irq_sprite_ptr#0 ← (byte~) $4 (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - to:@24 + to:@25 sprites_irq_init: scope:[sprites_irq_init] from main::@17 asm { sei } *((byte*) IRQ_STATUS#0) ← (byte) IRQ_RASTER#0 @@ -1157,11 +1252,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( @34/(byte) irq_raster_next#18 ) - (byte) irq_cnt#15 ← phi( @34/(byte) irq_cnt#17 ) - (byte) render_screen_showing#15 ← phi( @34/(byte) render_screen_showing#14 ) - (byte) irq_sprite_ptr#10 ← phi( @34/(byte) irq_sprite_ptr#15 ) - (byte) irq_sprite_ypos#4 ← phi( @34/(byte) irq_sprite_ypos#8 ) + (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 ) 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 @@ -1302,21 +1397,23 @@ sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@6 (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#6 return to:@return -@24: scope:[] from @35 - (byte) irq_raster_next#20 ← phi( @35/(byte) irq_raster_next#21 ) - (byte) irq_cnt#20 ← phi( @35/(byte) irq_cnt#0 ) - (byte) irq_sprite_ptr#17 ← phi( @35/(byte) irq_sprite_ptr#0 ) - (dword) score_bcd#41 ← phi( @35/(dword) score_bcd#46 ) - (byte) keyboard_modifiers#34 ← phi( @35/(byte) keyboard_modifiers#39 ) - (byte) keyboard_events_size#40 ← phi( @35/(byte) keyboard_events_size#48 ) - (byte) render_screen_showing#21 ← phi( @35/(byte) render_screen_showing#27 ) - (byte) current_piece_char#44 ← phi( @35/(byte) current_piece_char#54 ) - (byte) current_ypos#56 ← phi( @35/(byte) current_ypos#61 ) - (byte) current_xpos#75 ← phi( @35/(byte) current_xpos#85 ) - (byte*) current_piece_gfx#62 ← phi( @35/(byte*) current_piece_gfx#70 ) - (byte) render_screen_render#40 ← phi( @35/(byte) render_screen_render#46 ) - (byte) render_screen_show#35 ← phi( @35/(byte) render_screen_show#43 ) - (byte) irq_sprite_ypos#18 ← phi( @35/(byte) irq_sprite_ypos#20 ) +@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#42 ← phi( @36/(byte) level_bcd#48 ) + (dword) score_bcd#43 ← phi( @36/(dword) score_bcd#48 ) + (word) lines_bcd#43 ← phi( @36/(word) lines_bcd#50 ) + (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 ) (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 } @@ -1358,7 +1455,7 @@ sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@6 (byte) current_movedown_fast#0 ← (byte/signed byte/word/signed word/dword/signed dword) 5 (byte) current_movedown_counter#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (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 } - to:@28 + to:@29 play_init: scope:[play_init] from main::@18 (byte) play_init::idx#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) play_init::pli#0 ← (byte[$3]) playfield#0 @@ -1389,7 +1486,9 @@ 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 ) - (dword) score_bcd#62 ← phi( main::@25/(dword) score_bcd#23 ) + (byte) level_bcd#67 ← phi( main::@25/(byte) level_bcd#23 ) + (dword) score_bcd#64 ← phi( main::@25/(dword) score_bcd#24 ) + (word) lines_bcd#67 ← phi( main::@25/(word) lines_bcd#24 ) (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 ) @@ -1405,7 +1504,9 @@ 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 ) - (dword) score_bcd#56 ← phi( play_move_down/(dword) score_bcd#62 play_move_down::@8/(dword) score_bcd#63 ) + (byte) level_bcd#59 ← phi( play_move_down/(byte) level_bcd#67 play_move_down::@8/(byte) level_bcd#68 ) + (dword) score_bcd#58 ← phi( play_move_down/(dword) score_bcd#64 play_move_down::@8/(dword) score_bcd#65 ) + (word) lines_bcd#61 ← phi( play_move_down/(word) lines_bcd#67 play_move_down::@8/(word) lines_bcd#68 ) (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 ) @@ -1419,7 +1520,9 @@ 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 ) - (dword) score_bcd#48 ← phi( play_move_down::@1/(dword) score_bcd#56 ) + (byte) level_bcd#50 ← phi( play_move_down::@1/(byte) level_bcd#59 ) + (dword) score_bcd#50 ← phi( play_move_down::@1/(dword) score_bcd#58 ) + (word) lines_bcd#52 ← phi( play_move_down::@1/(word) lines_bcd#61 ) (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 ) @@ -1435,7 +1538,9 @@ 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 ) - (dword) score_bcd#63 ← phi( play_move_down/(dword) score_bcd#62 ) + (byte) level_bcd#68 ← phi( play_move_down/(byte) level_bcd#67 ) + (dword) score_bcd#65 ← phi( play_move_down/(dword) score_bcd#64 ) + (word) lines_bcd#68 ← phi( play_move_down/(word) lines_bcd#67 ) (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 ) @@ -1447,7 +1552,9 @@ 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 ) - (dword) score_bcd#38 ← phi( play_move_down::@10/(dword) score_bcd#47 play_move_down::@17/(dword) score_bcd#48 play_move_down::@3/(dword) score_bcd#49 ) + (byte) level_bcd#39 ← phi( play_move_down::@10/(byte) level_bcd#49 play_move_down::@17/(byte) level_bcd#50 play_move_down::@3/(byte) level_bcd#51 ) + (dword) score_bcd#40 ← phi( play_move_down::@10/(dword) score_bcd#49 play_move_down::@17/(dword) score_bcd#50 play_move_down::@3/(dword) score_bcd#51 ) + (word) lines_bcd#40 ← phi( play_move_down::@10/(word) lines_bcd#51 play_move_down::@17/(word) lines_bcd#52 play_move_down::@3/(word) lines_bcd#53 ) (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 ) @@ -1461,7 +1568,9 @@ 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 ) - (dword) score_bcd#57 ← phi( play_move_down::@17/(dword) score_bcd#48 ) + (byte) level_bcd#60 ← phi( play_move_down::@17/(byte) level_bcd#50 ) + (dword) score_bcd#59 ← phi( play_move_down::@17/(dword) score_bcd#50 ) + (word) lines_bcd#62 ← phi( play_move_down::@17/(word) lines_bcd#52 ) (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 ) @@ -1475,7 +1584,9 @@ 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 ) - (dword) score_bcd#49 ← phi( play_move_down::@9/(dword) score_bcd#57 ) + (byte) level_bcd#51 ← phi( play_move_down::@9/(byte) level_bcd#60 ) + (dword) score_bcd#51 ← phi( play_move_down::@9/(dword) score_bcd#59 ) + (word) lines_bcd#53 ← phi( play_move_down::@9/(word) lines_bcd#62 ) (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 ) @@ -1486,7 +1597,9 @@ 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 ) - (dword) score_bcd#47 ← phi( play_move_down::@9/(dword) score_bcd#57 ) + (byte) level_bcd#49 ← phi( play_move_down::@9/(byte) level_bcd#60 ) + (dword) score_bcd#49 ← phi( play_move_down::@9/(dword) score_bcd#59 ) + (word) lines_bcd#51 ← phi( play_move_down::@9/(word) lines_bcd#62 ) (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 ) @@ -1498,7 +1611,9 @@ 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 ) - (dword) score_bcd#27 ← phi( play_move_down::@11/(dword) score_bcd#37 play_move_down::@2/(dword) score_bcd#38 ) + (byte) level_bcd#27 ← phi( play_move_down::@11/(byte) level_bcd#38 play_move_down::@2/(byte) level_bcd#39 ) + (dword) score_bcd#28 ← phi( play_move_down::@11/(dword) score_bcd#39 play_move_down::@2/(dword) score_bcd#40 ) + (word) lines_bcd#28 ← phi( play_move_down::@11/(word) lines_bcd#39 play_move_down::@2/(word) lines_bcd#40 ) (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 ) @@ -1512,7 +1627,9 @@ 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 ) - (dword) score_bcd#37 ← phi( play_move_down::@2/(dword) score_bcd#38 ) + (byte) level_bcd#38 ← phi( play_move_down::@2/(byte) level_bcd#39 ) + (dword) score_bcd#39 ← phi( play_move_down::@2/(dword) score_bcd#40 ) + (word) lines_bcd#39 ← phi( play_move_down::@2/(word) lines_bcd#40 ) (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 ) @@ -1526,7 +1643,9 @@ 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 ) - (dword) score_bcd#19 ← phi( play_move_down::@4/(dword) score_bcd#27 ) + (byte) level_bcd#18 ← phi( play_move_down::@4/(byte) level_bcd#27 ) + (dword) score_bcd#19 ← phi( play_move_down::@4/(dword) score_bcd#28 ) + (word) lines_bcd#19 ← phi( play_move_down::@4/(word) lines_bcd#28 ) (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 @@ -1534,7 +1653,9 @@ 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 ) - (dword) score_bcd#50 ← phi( play_move_down::@4/(dword) score_bcd#27 ) + (byte) level_bcd#52 ← phi( play_move_down::@4/(byte) level_bcd#27 ) + (dword) score_bcd#52 ← phi( play_move_down::@4/(dword) score_bcd#28 ) + (word) lines_bcd#54 ← phi( play_move_down::@4/(word) lines_bcd#28 ) (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 ) @@ -1552,7 +1673,9 @@ 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 ) - (dword) score_bcd#39 ← phi( play_move_down::@12/(dword) score_bcd#50 ) + (byte) level_bcd#40 ← phi( play_move_down::@12/(byte) level_bcd#52 ) + (dword) score_bcd#41 ← phi( play_move_down::@12/(dword) score_bcd#52 ) + (word) lines_bcd#41 ← phi( play_move_down::@12/(word) lines_bcd#54 ) (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 @@ -1565,7 +1688,9 @@ 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 ) - (dword) score_bcd#30 ← phi( play_move_down::@18/(dword) score_bcd#39 ) + (byte) level_bcd#30 ← phi( play_move_down::@18/(byte) level_bcd#40 ) + (dword) score_bcd#31 ← phi( play_move_down::@18/(dword) score_bcd#41 ) + (word) lines_bcd#31 ← phi( play_move_down::@18/(word) lines_bcd#41 ) (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 @@ -1574,7 +1699,9 @@ 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 ) - (dword) score_bcd#40 ← phi( play_move_down::@18/(dword) score_bcd#39 ) + (byte) level_bcd#41 ← phi( play_move_down::@18/(byte) level_bcd#40 ) + (dword) score_bcd#42 ← phi( play_move_down::@18/(dword) score_bcd#41 ) + (word) lines_bcd#42 ← phi( play_move_down::@18/(word) lines_bcd#41 ) (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 @@ -1586,7 +1713,9 @@ 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 ) - (dword) score_bcd#28 ← phi( play_move_down::@13/(dword) score_bcd#40 ) + (byte) level_bcd#28 ← phi( play_move_down::@13/(byte) level_bcd#41 ) + (dword) score_bcd#29 ← phi( play_move_down::@13/(dword) score_bcd#42 ) + (word) lines_bcd#29 ← phi( play_move_down::@13/(word) lines_bcd#42 ) call play_remove_lines (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::return#2 to:play_move_down::@20 @@ -1597,7 +1726,9 @@ 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 ) - (dword) score_bcd#18 ← phi( play_move_down::@19/(dword) score_bcd#28 ) + (byte) level_bcd#17 ← phi( play_move_down::@19/(byte) level_bcd#28 ) + (dword) score_bcd#18 ← phi( play_move_down::@19/(dword) score_bcd#29 ) + (word) lines_bcd#18 ← phi( play_move_down::@19/(word) lines_bcd#29 ) (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 @@ -1611,12 +1742,18 @@ 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#9 ← phi( play_move_down::@20/(byte) level_bcd#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#9 call play_spawn_current to:play_move_down::@22 play_move_down::@22: scope:[play_move_down] from play_move_down::@21 - (dword) score_bcd#29 ← phi( play_move_down::@21/(dword) score_bcd#1 ) + (byte) level_bcd#29 ← phi( play_move_down::@21/(byte) level_bcd#1 ) + (dword) score_bcd#30 ← phi( play_move_down::@21/(dword) score_bcd#1 ) + (word) lines_bcd#30 ← 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 ) @@ -1636,7 +1773,9 @@ 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 ) - (dword) score_bcd#20 ← phi( play_move_down::@22/(dword) score_bcd#29 play_move_down::@6/(dword) score_bcd#30 ) + (byte) level_bcd#19 ← phi( play_move_down::@22/(byte) level_bcd#29 play_move_down::@6/(byte) level_bcd#30 ) + (dword) score_bcd#20 ← phi( play_move_down::@22/(dword) score_bcd#30 play_move_down::@6/(dword) score_bcd#31 ) + (word) lines_bcd#20 ← phi( play_move_down::@22/(word) lines_bcd#30 play_move_down::@6/(word) lines_bcd#31 ) (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 @@ -1647,14 +1786,18 @@ 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#10 ← phi( play_move_down::@5/(byte) level_bcd#18 play_move_down::@7/(byte) level_bcd#19 ) (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 ) (byte) current_movedown_counter#10 ← phi( play_move_down::@5/(byte) current_movedown_counter#18 play_move_down::@7/(byte) current_movedown_counter#2 ) (byte) play_move_down::return#4 ← phi( play_move_down::@5/(byte) play_move_down::return#0 play_move_down::@7/(byte) play_move_down::return#1 ) (byte) play_move_down::return#2 ← (byte) play_move_down::return#4 (byte) current_movedown_counter#3 ← (byte) current_movedown_counter#10 (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#10 (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 @@ -1843,30 +1986,32 @@ play_move_rotate::@11: scope:[play_move_rotate] from play_move_rotate::@14 (byte*) current_piece_gfx#3 ← (byte*~) play_move_rotate::$9 (byte) play_move_rotate::return#3 ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_move_rotate::@return -@28: scope:[] from @24 - (byte) irq_raster_next#19 ← phi( @24/(byte) irq_raster_next#20 ) - (byte) irq_cnt#19 ← phi( @24/(byte) irq_cnt#20 ) - (byte) irq_sprite_ptr#16 ← phi( @24/(byte) irq_sprite_ptr#17 ) - (dword) score_bcd#35 ← phi( @24/(dword) score_bcd#41 ) - (byte) current_movedown_counter#27 ← phi( @24/(byte) current_movedown_counter#0 ) - (byte) keyboard_modifiers#33 ← phi( @24/(byte) keyboard_modifiers#34 ) - (byte) keyboard_events_size#36 ← phi( @24/(byte) keyboard_events_size#40 ) - (byte) render_screen_showing#20 ← phi( @24/(byte) render_screen_showing#21 ) - (byte) current_piece_char#37 ← phi( @24/(byte) current_piece_char#44 ) - (byte) current_ypos#50 ← phi( @24/(byte) current_ypos#56 ) - (byte) current_xpos#65 ← phi( @24/(byte) current_xpos#75 ) - (byte*) current_piece_gfx#52 ← phi( @24/(byte*) current_piece_gfx#62 ) - (byte) current_orientation#51 ← phi( @24/(byte) current_orientation#0 ) - (byte*) current_piece#42 ← phi( @24/(byte*) current_piece#0 ) - (byte) render_screen_render#36 ← phi( @24/(byte) render_screen_render#40 ) - (byte) render_screen_show#32 ← phi( @24/(byte) render_screen_show#35 ) - (byte) irq_sprite_ypos#15 ← phi( @24/(byte) irq_sprite_ypos#18 ) +@29: scope:[] from @25 + (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#36 ← phi( @25/(byte) level_bcd#42 ) + (dword) score_bcd#37 ← phi( @25/(dword) score_bcd#43 ) + (word) lines_bcd#37 ← phi( @25/(word) lines_bcd#43 ) + (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 ) + (byte) render_screen_showing#20 ← phi( @25/(byte) render_screen_showing#21 ) + (byte) current_piece_char#37 ← phi( @25/(byte) current_piece_char#44 ) + (byte) current_ypos#50 ← phi( @25/(byte) current_ypos#56 ) + (byte) current_xpos#65 ← phi( @25/(byte) current_xpos#75 ) + (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) 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 ) (byte) COLLISION_NONE#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) COLLISION_PLAYFIELD#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) COLLISION_BOTTOM#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) COLLISION_LEFT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 4 (byte) COLLISION_RIGHT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 8 - to:@34 + to:@35 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 ) @@ -2240,47 +2385,83 @@ 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#31 ← phi( play_move_down::@20/(byte) level_bcd#17 ) (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::@2 + to:play_update_score::@3 play_update_score::@1: scope:[play_update_score] from play_update_score + (byte) level_bcd#21 ← phi( play_update_score/(byte) level_bcd#31 ) (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::@2: scope:[play_update_score] from play_update_score +play_update_score::@3: scope:[play_update_score] from play_update_score + (byte) level_bcd#20 ← phi( play_update_score/(byte) level_bcd#31 ) (dword) score_bcd#11 ← phi( play_update_score/(dword) score_bcd#21 ) + (word) lines_bcd#12 ← phi( play_update_score/(word) lines_bcd#21 ) (byte) play_update_score::removed#2 ← phi( play_update_score/(byte) play_update_score::removed#1 ) (byte~) play_update_score::$2 ← (byte) play_update_score::removed#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 (dword) play_update_score::add_bcd#0 ← *((dword[]) score_add_bcd#0 + (byte~) play_update_score::$2) + (byte~) play_update_score::$3 ← < (word) lines_bcd#12 + (byte~) play_update_score::$4 ← (byte~) play_update_score::$3 & (byte/word/signed word/dword/signed dword) 240 + (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$4 asm { sed } + (word) lines_bcd#3 ← (word) lines_bcd#12 + (byte) play_update_score::removed#2 (dword) score_bcd#3 ← (dword) score_bcd#11 + (dword) play_update_score::add_bcd#0 + (byte~) play_update_score::$5 ← < (word) lines_bcd#3 + (byte~) play_update_score::$6 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 + (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$6 + (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 play_update_score::@4 + (byte) level_bcd#22 ← phi( play_update_score::@3/(byte) level_bcd#20 play_update_score::@4/(byte) level_bcd#3 ) + (dword) score_bcd#23 ← phi( play_update_score::@3/(dword) score_bcd#3 play_update_score::@4/(dword) score_bcd#32 ) + (word) lines_bcd#23 ← phi( play_update_score::@3/(word) lines_bcd#3 play_update_score::@4/(word) lines_bcd#32 ) asm { cld } to:play_update_score::@return +play_update_score::@4: scope:[play_update_score] from play_update_score::@3 + (dword) score_bcd#32 ← phi( play_update_score::@3/(dword) score_bcd#3 ) + (word) lines_bcd#32 ← phi( play_update_score::@3/(word) lines_bcd#3 ) + (byte) level_bcd#11 ← phi( play_update_score::@3/(byte) level_bcd#20 ) + (byte/signed word/word/dword/signed dword~) play_update_score::$9 ← (byte) level_bcd#11 + (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) level_bcd#3 ← (byte/signed word/word/dword/signed dword~) play_update_score::$9 + to:play_update_score::@2 play_update_score::@return: scope:[play_update_score] from play_update_score::@1 play_update_score::@2 - (dword) score_bcd#12 ← phi( play_update_score::@1/(dword) score_bcd#22 play_update_score::@2/(dword) score_bcd#3 ) + (byte) level_bcd#12 ← phi( play_update_score::@1/(byte) level_bcd#21 play_update_score::@2/(byte) level_bcd#22 ) + (dword) score_bcd#12 ← phi( play_update_score::@1/(dword) score_bcd#22 play_update_score::@2/(dword) score_bcd#23 ) + (word) lines_bcd#13 ← phi( play_update_score::@1/(word) lines_bcd#22 play_update_score::@2/(word) lines_bcd#23 ) + (word) lines_bcd#4 ← (word) lines_bcd#13 (dword) score_bcd#4 ← (dword) score_bcd#12 + (byte) level_bcd#4 ← (byte) level_bcd#12 return to:@return -main: scope:[main] from @34 - (dword) score_bcd#72 ← phi( @34/(dword) score_bcd#25 ) - (byte) current_movedown_counter#48 ← phi( @34/(byte) current_movedown_counter#20 ) - (byte) keyboard_modifiers#60 ← phi( @34/(byte) keyboard_modifiers#25 ) - (byte) keyboard_events_size#79 ← phi( @34/(byte) keyboard_events_size#28 ) - (byte) render_screen_showing#45 ← phi( @34/(byte) render_screen_showing#14 ) - (byte) current_piece_char#76 ← phi( @34/(byte) current_piece_char#25 ) - (byte) current_ypos#73 ← phi( @34/(byte) current_ypos#38 ) - (byte) current_xpos#99 ← phi( @34/(byte) current_xpos#46 ) - (byte*) current_piece_gfx#89 ← phi( @34/(byte*) current_piece_gfx#35 ) - (byte) current_orientation#73 ← phi( @34/(byte) current_orientation#40 ) - (byte*) current_piece#69 ← phi( @34/(byte*) current_piece#29 ) - (byte) render_screen_render#32 ← phi( @34/(byte) render_screen_render#26 ) - (byte) render_screen_show#27 ← phi( @34/(byte) render_screen_show#24 ) +main: scope:[main] from @35 + (byte) level_bcd#79 ← phi( @35/(byte) level_bcd#25 ) + (dword) score_bcd#74 ← phi( @35/(dword) score_bcd#26 ) + (word) lines_bcd#78 ← phi( @35/(word) lines_bcd#26 ) + (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 ) call sid_rnd_init to:main::@15 main::@15: scope:[main] from main - (dword) score_bcd#71 ← phi( main/(dword) score_bcd#72 ) + (byte) level_bcd#78 ← phi( main/(byte) level_bcd#79 ) + (dword) score_bcd#73 ← phi( main/(dword) score_bcd#74 ) + (word) lines_bcd#77 ← phi( main/(word) lines_bcd#78 ) (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 ) @@ -2297,7 +2478,9 @@ main::@15: scope:[main] from main call render_init to:main::@16 main::@16: scope:[main] from main::@15 - (dword) score_bcd#70 ← phi( main::@15/(dword) score_bcd#71 ) + (byte) level_bcd#77 ← phi( main::@15/(byte) level_bcd#78 ) + (dword) score_bcd#72 ← phi( main::@15/(dword) score_bcd#73 ) + (word) lines_bcd#76 ← phi( main::@15/(word) lines_bcd#77 ) (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 ) @@ -2315,7 +2498,9 @@ main::@16: scope:[main] from main::@15 call sprites_init to:main::@17 main::@17: scope:[main] from main::@16 - (dword) score_bcd#68 ← phi( main::@16/(dword) score_bcd#70 ) + (byte) level_bcd#75 ← phi( main::@16/(byte) level_bcd#77 ) + (dword) score_bcd#70 ← phi( main::@16/(dword) score_bcd#72 ) + (word) lines_bcd#74 ← phi( main::@16/(word) lines_bcd#76 ) (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 ) @@ -2331,7 +2516,9 @@ main::@17: scope:[main] from main::@16 call sprites_irq_init to:main::@18 main::@18: scope:[main] from main::@17 - (dword) score_bcd#64 ← phi( main::@17/(dword) score_bcd#68 ) + (byte) level_bcd#69 ← phi( main::@17/(byte) level_bcd#75 ) + (dword) score_bcd#66 ← phi( main::@17/(dword) score_bcd#70 ) + (word) lines_bcd#69 ← phi( main::@17/(word) lines_bcd#74 ) (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 ) @@ -2347,7 +2534,9 @@ main::@18: scope:[main] from main::@17 call play_init to:main::@19 main::@19: scope:[main] from main::@18 - (dword) score_bcd#58 ← phi( main::@18/(dword) score_bcd#64 ) + (byte) level_bcd#61 ← phi( main::@18/(byte) level_bcd#69 ) + (dword) score_bcd#60 ← phi( main::@18/(dword) score_bcd#66 ) + (word) lines_bcd#63 ← phi( main::@18/(word) lines_bcd#69 ) (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 ) @@ -2363,7 +2552,9 @@ main::@19: scope:[main] from main::@18 call play_spawn_current to:main::@20 main::@20: scope:[main] from main::@19 - (dword) score_bcd#51 ← phi( main::@19/(dword) score_bcd#58 ) + (byte) level_bcd#53 ← phi( main::@19/(byte) level_bcd#61 ) + (dword) score_bcd#53 ← phi( main::@19/(dword) score_bcd#60 ) + (word) lines_bcd#55 ← phi( main::@19/(word) lines_bcd#63 ) (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 ) @@ -2385,7 +2576,9 @@ main::@20: scope:[main] from main::@19 call render_playfield to:main::@21 main::@21: scope:[main] from main::@20 - (dword) score_bcd#42 ← phi( main::@20/(dword) score_bcd#51 ) + (byte) level_bcd#43 ← phi( main::@20/(byte) level_bcd#53 ) + (dword) score_bcd#44 ← phi( main::@20/(dword) score_bcd#53 ) + (word) lines_bcd#44 ← phi( main::@20/(word) lines_bcd#55 ) (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 ) @@ -2401,7 +2594,9 @@ main::@21: scope:[main] from main::@20 call render_current to:main::@22 main::@22: scope:[main] from main::@21 - (dword) score_bcd#31 ← phi( main::@21/(dword) score_bcd#42 ) + (byte) level_bcd#32 ← phi( main::@21/(byte) level_bcd#43 ) + (dword) score_bcd#33 ← phi( main::@21/(dword) score_bcd#44 ) + (word) lines_bcd#33 ← phi( main::@21/(word) lines_bcd#44 ) (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 ) @@ -2416,7 +2611,9 @@ main::@22: scope:[main] from main::@21 (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 - (dword) score_bcd#24 ← phi( main::@22/(dword) score_bcd#31 main::@32/(dword) score_bcd#32 main::@7/(dword) score_bcd#33 ) + (byte) level_bcd#24 ← phi( main::@22/(byte) level_bcd#32 main::@32/(byte) level_bcd#33 main::@7/(byte) level_bcd#34 ) + (dword) score_bcd#25 ← phi( main::@22/(dword) score_bcd#33 main::@32/(dword) score_bcd#34 main::@7/(dword) score_bcd#35 ) + (word) lines_bcd#25 ← phi( main::@22/(word) lines_bcd#33 main::@32/(word) lines_bcd#34 main::@7/(word) lines_bcd#35 ) (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 ) @@ -2438,7 +2635,9 @@ 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 ) - (dword) score_bcd#65 ← phi( main::@1/(dword) score_bcd#24 ) + (byte) level_bcd#70 ← phi( main::@1/(byte) level_bcd#24 ) + (dword) score_bcd#67 ← phi( main::@1/(dword) score_bcd#25 ) + (word) lines_bcd#70 ← phi( main::@1/(word) lines_bcd#25 ) (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 ) @@ -2453,7 +2652,9 @@ 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 ) - (dword) score_bcd#59 ← phi( main::@2/(dword) score_bcd#65 main::@5/(dword) score_bcd#66 ) + (byte) level_bcd#62 ← phi( main::@2/(byte) level_bcd#70 main::@5/(byte) level_bcd#71 ) + (dword) score_bcd#61 ← phi( main::@2/(dword) score_bcd#67 main::@5/(dword) score_bcd#68 ) + (word) lines_bcd#64 ← phi( main::@2/(word) lines_bcd#70 main::@5/(word) lines_bcd#71 ) (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 ) @@ -2470,7 +2671,9 @@ 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 ) - (dword) score_bcd#66 ← phi( main::@4/(dword) score_bcd#59 ) + (byte) level_bcd#71 ← phi( main::@4/(byte) level_bcd#62 ) + (dword) score_bcd#68 ← phi( main::@4/(dword) score_bcd#61 ) + (word) lines_bcd#71 ← phi( main::@4/(word) lines_bcd#64 ) (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 ) @@ -2485,7 +2688,9 @@ 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 ) - (dword) score_bcd#52 ← phi( main::@4/(dword) score_bcd#59 ) + (byte) level_bcd#54 ← phi( main::@4/(byte) level_bcd#62 ) + (dword) score_bcd#54 ← phi( main::@4/(dword) score_bcd#61 ) + (word) lines_bcd#56 ← phi( main::@4/(word) lines_bcd#64 ) (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 ) @@ -2502,7 +2707,9 @@ 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 ) - (dword) score_bcd#43 ← phi( main::@6/(dword) score_bcd#52 ) + (byte) level_bcd#44 ← phi( main::@6/(byte) level_bcd#54 ) + (dword) score_bcd#45 ← phi( main::@6/(dword) score_bcd#54 ) + (word) lines_bcd#45 ← phi( main::@6/(word) lines_bcd#56 ) (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 ) @@ -2520,7 +2727,9 @@ 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 ) - (dword) score_bcd#34 ← phi( main::@23/(dword) score_bcd#43 ) + (byte) level_bcd#35 ← phi( main::@23/(byte) level_bcd#44 ) + (dword) score_bcd#36 ← phi( main::@23/(dword) score_bcd#45 ) + (word) lines_bcd#36 ← phi( main::@23/(word) lines_bcd#45 ) (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 ) @@ -2540,7 +2749,9 @@ 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 ) - (dword) score_bcd#23 ← phi( main::@24/(dword) score_bcd#34 ) + (byte) level_bcd#23 ← phi( main::@24/(byte) level_bcd#35 ) + (dword) score_bcd#24 ← phi( main::@24/(dword) score_bcd#36 ) + (word) lines_bcd#24 ← phi( main::@24/(word) lines_bcd#36 ) (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 ) @@ -2566,14 +2777,18 @@ 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#13 ← phi( main::@25/(byte) level_bcd#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 ) (byte) current_movedown_counter#11 ← phi( main::@25/(byte) current_movedown_counter#3 ) (byte) play_move_down::return#5 ← phi( main::@25/(byte) play_move_down::return#3 ) (byte~) main::$12 ← (byte) play_move_down::return#5 (byte) current_movedown_counter#4 ← (byte) current_movedown_counter#11 (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#5 ← (byte) level_bcd#13 (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 @@ -2585,7 +2800,9 @@ 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 - (dword) score_bcd#53 ← phi( main::@26/(dword) score_bcd#5 ) + (byte) level_bcd#55 ← phi( main::@26/(byte) level_bcd#5 ) + (dword) score_bcd#55 ← phi( main::@26/(dword) score_bcd#5 ) + (word) lines_bcd#57 ← 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 ) @@ -2609,7 +2826,9 @@ 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 - (dword) score_bcd#44 ← phi( main::@27/(dword) score_bcd#53 ) + (byte) level_bcd#45 ← phi( main::@27/(byte) level_bcd#55 ) + (dword) score_bcd#46 ← phi( main::@27/(dword) score_bcd#55 ) + (word) lines_bcd#46 ← phi( main::@27/(word) lines_bcd#57 ) (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 ) @@ -2633,7 +2852,9 @@ main::@28: scope:[main] from main::@27 if((bool~) main::$16) goto main::@7 to:main::@13 main::@7: scope:[main] from main::@28 - (dword) score_bcd#33 ← phi( main::@28/(dword) score_bcd#44 ) + (byte) level_bcd#34 ← phi( main::@28/(byte) level_bcd#45 ) + (dword) score_bcd#35 ← phi( main::@28/(dword) score_bcd#46 ) + (word) lines_bcd#35 ← phi( main::@28/(word) lines_bcd#46 ) (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 ) @@ -2648,6 +2869,8 @@ main::@7: scope:[main] from main::@28 (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#72 ← phi( main::@28/(byte) level_bcd#45 ) + (word) lines_bcd#72 ← phi( main::@28/(word) lines_bcd#46 ) (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 ) @@ -2655,7 +2878,7 @@ 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#60 ← phi( main::@28/(dword) score_bcd#44 ) + (dword) score_bcd#62 ← phi( main::@28/(dword) score_bcd#46 ) (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 ) @@ -2664,6 +2887,8 @@ main::@13: scope:[main] from main::@28 call render_playfield to:main::@29 main::@29: scope:[main] from main::@13 + (byte) level_bcd#63 ← phi( main::@13/(byte) level_bcd#72 ) + (word) lines_bcd#65 ← phi( main::@13/(word) lines_bcd#72 ) (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 ) @@ -2671,7 +2896,7 @@ 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#54 ← phi( main::@13/(dword) score_bcd#60 ) + (dword) score_bcd#56 ← phi( main::@13/(dword) score_bcd#62 ) (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 ) @@ -2680,6 +2905,8 @@ main::@29: scope:[main] from main::@13 call render_current to:main::@30 main::@30: scope:[main] from main::@29 + (byte) level_bcd#56 ← phi( main::@29/(byte) level_bcd#63 ) + (word) lines_bcd#58 ← phi( main::@29/(word) lines_bcd#65 ) (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 ) @@ -2690,13 +2917,15 @@ 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#36 ← phi( main::@29/(dword) score_bcd#54 ) + (dword) score_bcd#38 ← phi( main::@29/(dword) score_bcd#56 ) (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 - (dword) score_bcd#45 ← phi( main::@30/(dword) score_bcd#36 ) + (byte) level_bcd#46 ← phi( main::@30/(byte) level_bcd#56 ) + (dword) score_bcd#47 ← phi( main::@30/(dword) score_bcd#38 ) + (word) lines_bcd#47 ← phi( main::@30/(word) lines_bcd#58 ) (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 ) @@ -2712,7 +2941,9 @@ main::@31: scope:[main] from main::@30 call render_screen_swap to:main::@32 main::@32: scope:[main] from main::@31 - (dword) score_bcd#32 ← phi( main::@31/(dword) score_bcd#45 ) + (byte) level_bcd#33 ← phi( main::@31/(byte) level_bcd#46 ) + (dword) score_bcd#34 ← phi( main::@31/(dword) score_bcd#47 ) + (word) lines_bcd#34 ← phi( main::@31/(word) lines_bcd#47 ) (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 ) @@ -2729,7 +2960,9 @@ main::@32: scope:[main] from main::@31 (byte) render_screen_show#6 ← (byte) render_screen_show#15 to:main::@1 main::@return: scope:[main] from main::@1 - (dword) score_bcd#14 ← phi( main::@1/(dword) score_bcd#24 ) + (byte) level_bcd#14 ← phi( main::@1/(byte) level_bcd#24 ) + (dword) score_bcd#14 ← phi( main::@1/(dword) score_bcd#25 ) + (word) lines_bcd#15 ← phi( main::@1/(word) lines_bcd#25 ) (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 ) @@ -2754,43 +2987,49 @@ main::@return: scope:[main] from main::@1 (byte) keyboard_events_size#8 ← (byte) keyboard_events_size#19 (byte) keyboard_modifiers#8 ← (byte) keyboard_modifiers#16 (byte) current_movedown_counter#5 ← (byte) current_movedown_counter#12 + (word) lines_bcd#6 ← (word) lines_bcd#15 (dword) score_bcd#6 ← (dword) score_bcd#14 + (byte) level_bcd#6 ← (byte) level_bcd#14 return to:@return -@34: scope:[] from @28 - (byte) irq_raster_next#18 ← phi( @28/(byte) irq_raster_next#19 ) - (byte) irq_cnt#17 ← phi( @28/(byte) irq_cnt#19 ) - (byte) irq_sprite_ptr#15 ← phi( @28/(byte) irq_sprite_ptr#16 ) - (dword) score_bcd#25 ← phi( @28/(dword) score_bcd#35 ) - (byte) current_movedown_counter#20 ← phi( @28/(byte) current_movedown_counter#27 ) - (byte) keyboard_modifiers#25 ← phi( @28/(byte) keyboard_modifiers#33 ) - (byte) keyboard_events_size#28 ← phi( @28/(byte) keyboard_events_size#36 ) - (byte) render_screen_showing#14 ← phi( @28/(byte) render_screen_showing#20 ) - (byte) current_piece_char#25 ← phi( @28/(byte) current_piece_char#37 ) - (byte) current_ypos#38 ← phi( @28/(byte) current_ypos#50 ) - (byte) current_xpos#46 ← phi( @28/(byte) current_xpos#65 ) - (byte*) current_piece_gfx#35 ← phi( @28/(byte*) current_piece_gfx#52 ) - (byte) current_orientation#40 ← phi( @28/(byte) current_orientation#51 ) - (byte*) current_piece#29 ← phi( @28/(byte*) current_piece#42 ) - (byte) render_screen_render#26 ← phi( @28/(byte) render_screen_render#36 ) - (byte) render_screen_show#24 ← phi( @28/(byte) render_screen_show#32 ) - (byte) irq_sprite_ypos#8 ← phi( @28/(byte) irq_sprite_ypos#15 ) +@35: 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#25 ← phi( @29/(byte) level_bcd#36 ) + (dword) score_bcd#26 ← phi( @29/(dword) score_bcd#37 ) + (word) lines_bcd#26 ← phi( @29/(word) lines_bcd#37 ) + (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 ) + (byte) render_screen_showing#14 ← phi( @29/(byte) render_screen_showing#20 ) + (byte) current_piece_char#25 ← phi( @29/(byte) current_piece_char#37 ) + (byte) current_ypos#38 ← phi( @29/(byte) current_ypos#50 ) + (byte) current_xpos#46 ← phi( @29/(byte) current_xpos#65 ) + (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) 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:@36 -@36: scope:[] from @34 - (dword) score_bcd#15 ← phi( @34/(dword) score_bcd#6 ) - (byte) current_movedown_counter#13 ← phi( @34/(byte) current_movedown_counter#5 ) - (byte) keyboard_modifiers#17 ← phi( @34/(byte) keyboard_modifiers#8 ) - (byte) keyboard_events_size#20 ← phi( @34/(byte) keyboard_events_size#8 ) - (byte) render_screen_showing#10 ← phi( @34/(byte) render_screen_showing#4 ) - (byte) current_piece_char#16 ← phi( @34/(byte) current_piece_char#6 ) - (byte) current_ypos#22 ← phi( @34/(byte) current_ypos#7 ) - (byte) current_xpos#28 ← phi( @34/(byte) current_xpos#10 ) - (byte*) current_piece_gfx#21 ← phi( @34/(byte*) current_piece_gfx#9 ) - (byte) current_orientation#25 ← phi( @34/(byte) current_orientation#10 ) - (byte*) current_piece#17 ← phi( @34/(byte*) current_piece#7 ) - (byte) render_screen_render#18 ← phi( @34/(byte) render_screen_render#7 ) - (byte) render_screen_show#17 ← phi( @34/(byte) render_screen_show#7 ) + to:@37 +@37: scope:[] from @35 + (byte) level_bcd#15 ← phi( @35/(byte) level_bcd#6 ) + (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 ) (byte) render_screen_show#8 ← (byte) render_screen_show#17 (byte) render_screen_render#8 ← (byte) render_screen_render#18 (byte*) current_piece#8 ← (byte*) current_piece#17 @@ -2803,9 +3042,11 @@ main::@return: scope:[main] from main::@1 (byte) keyboard_events_size#9 ← (byte) keyboard_events_size#20 (byte) keyboard_modifiers#9 ← (byte) keyboard_modifiers#17 (byte) current_movedown_counter#6 ← (byte) current_movedown_counter#13 + (word) lines_bcd#7 ← (word) lines_bcd#16 (dword) score_bcd#7 ← (dword) score_bcd#15 + (byte) level_bcd#7 ← (byte) level_bcd#15 to:@end -@end: scope:[] from @36 +@end: scope:[] from @37 SYMBOL TABLE SSA (byte~) $0 @@ -2837,13 +3078,13 @@ SYMBOL TABLE SSA (byte/signed byte/word/signed word/dword/signed dword~) $9 (label) @12 (label) @14 -(label) @21 (label) @22 -(label) @24 -(label) @28 -(label) @34 +(label) @23 +(label) @25 +(label) @29 (label) @35 (label) @36 +(label) @37 (label) @5 (label) @9 (label) @begin @@ -4226,6 +4467,167 @@ SYMBOL TABLE SSA (byte) keyboard_modifiers#9 (byte[8]) keyboard_scan_values (byte[8]) keyboard_scan_values#0 +(byte) level_bcd +(byte) level_bcd#0 +(byte) level_bcd#1 +(byte) level_bcd#10 +(byte) level_bcd#11 +(byte) level_bcd#12 +(byte) level_bcd#13 +(byte) level_bcd#14 +(byte) level_bcd#15 +(byte) level_bcd#16 +(byte) level_bcd#17 +(byte) level_bcd#18 +(byte) level_bcd#19 +(byte) level_bcd#2 +(byte) level_bcd#20 +(byte) level_bcd#21 +(byte) level_bcd#22 +(byte) level_bcd#23 +(byte) level_bcd#24 +(byte) level_bcd#25 +(byte) level_bcd#26 +(byte) level_bcd#27 +(byte) level_bcd#28 +(byte) level_bcd#29 +(byte) level_bcd#3 +(byte) level_bcd#30 +(byte) level_bcd#31 +(byte) level_bcd#32 +(byte) level_bcd#33 +(byte) level_bcd#34 +(byte) level_bcd#35 +(byte) level_bcd#36 +(byte) level_bcd#37 +(byte) level_bcd#38 +(byte) level_bcd#39 +(byte) level_bcd#4 +(byte) level_bcd#40 +(byte) level_bcd#41 +(byte) level_bcd#42 +(byte) level_bcd#43 +(byte) level_bcd#44 +(byte) level_bcd#45 +(byte) level_bcd#46 +(byte) level_bcd#47 +(byte) level_bcd#48 +(byte) level_bcd#49 +(byte) level_bcd#5 +(byte) level_bcd#50 +(byte) level_bcd#51 +(byte) level_bcd#52 +(byte) level_bcd#53 +(byte) level_bcd#54 +(byte) level_bcd#55 +(byte) level_bcd#56 +(byte) level_bcd#57 +(byte) level_bcd#58 +(byte) level_bcd#59 +(byte) level_bcd#6 +(byte) level_bcd#60 +(byte) level_bcd#61 +(byte) level_bcd#62 +(byte) level_bcd#63 +(byte) level_bcd#64 +(byte) level_bcd#65 +(byte) level_bcd#66 +(byte) level_bcd#67 +(byte) level_bcd#68 +(byte) level_bcd#69 +(byte) level_bcd#7 +(byte) level_bcd#70 +(byte) level_bcd#71 +(byte) level_bcd#72 +(byte) level_bcd#73 +(byte) level_bcd#74 +(byte) level_bcd#75 +(byte) level_bcd#76 +(byte) level_bcd#77 +(byte) level_bcd#78 +(byte) level_bcd#79 +(byte) level_bcd#8 +(byte) level_bcd#9 +(word) lines_bcd +(word) lines_bcd#0 +(word) lines_bcd#1 +(word) lines_bcd#10 +(word) lines_bcd#11 +(word) lines_bcd#12 +(word) lines_bcd#13 +(word) lines_bcd#14 +(word) lines_bcd#15 +(word) lines_bcd#16 +(word) lines_bcd#17 +(word) lines_bcd#18 +(word) lines_bcd#19 +(word) lines_bcd#2 +(word) lines_bcd#20 +(word) lines_bcd#21 +(word) lines_bcd#22 +(word) lines_bcd#23 +(word) lines_bcd#24 +(word) lines_bcd#25 +(word) lines_bcd#26 +(word) lines_bcd#27 +(word) lines_bcd#28 +(word) lines_bcd#29 +(word) lines_bcd#3 +(word) lines_bcd#30 +(word) lines_bcd#31 +(word) lines_bcd#32 +(word) lines_bcd#33 +(word) lines_bcd#34 +(word) lines_bcd#35 +(word) lines_bcd#36 +(word) lines_bcd#37 +(word) lines_bcd#38 +(word) lines_bcd#39 +(word) lines_bcd#4 +(word) lines_bcd#40 +(word) lines_bcd#41 +(word) lines_bcd#42 +(word) lines_bcd#43 +(word) lines_bcd#44 +(word) lines_bcd#45 +(word) lines_bcd#46 +(word) lines_bcd#47 +(word) lines_bcd#48 +(word) lines_bcd#49 +(word) lines_bcd#5 +(word) lines_bcd#50 +(word) lines_bcd#51 +(word) lines_bcd#52 +(word) lines_bcd#53 +(word) lines_bcd#54 +(word) lines_bcd#55 +(word) lines_bcd#56 +(word) lines_bcd#57 +(word) lines_bcd#58 +(word) lines_bcd#59 +(word) lines_bcd#6 +(word) lines_bcd#60 +(word) lines_bcd#61 +(word) lines_bcd#62 +(word) lines_bcd#63 +(word) lines_bcd#64 +(word) lines_bcd#65 +(word) lines_bcd#66 +(word) lines_bcd#67 +(word) lines_bcd#68 +(word) lines_bcd#69 +(word) lines_bcd#7 +(word) lines_bcd#70 +(word) lines_bcd#71 +(word) lines_bcd#72 +(word) lines_bcd#73 +(word) lines_bcd#74 +(word) lines_bcd#75 +(word) lines_bcd#76 +(word) lines_bcd#77 +(word) lines_bcd#78 +(word) lines_bcd#8 +(word) lines_bcd#9 (void()) main() (byte~) main::$11 (byte~) main::$12 @@ -4748,11 +5150,24 @@ SYMBOL TABLE SSA (bool~) play_update_score::$0 (bool~) play_update_score::$1 (byte~) play_update_score::$2 +(byte~) play_update_score::$3 +(byte~) play_update_score::$4 +(byte~) play_update_score::$5 +(byte~) play_update_score::$6 +(bool~) play_update_score::$7 +(bool~) play_update_score::$8 +(byte/signed word/word/dword/signed dword~) 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::@return (dword) play_update_score::add_bcd (dword) play_update_score::add_bcd#0 +(byte) play_update_score::lines_after +(byte) play_update_score::lines_after#0 +(byte) play_update_score::lines_before +(byte) play_update_score::lines_before#0 (byte) play_update_score::removed (byte) play_update_score::removed#0 (byte) play_update_score::removed#1 @@ -4763,6 +5178,59 @@ SYMBOL TABLE SSA (byte*[PLAYFIELD_LINES#0]) playfield_lines#0 (byte[$26]) playfield_lines_idx (byte[$26]) playfield_lines_idx#0 +(void()) render_bcd((byte*) render_bcd::screen , (word) render_bcd::offset , (byte) render_bcd::bcd , (byte) render_bcd::only_low) +(byte*~) render_bcd::$0 +(bool~) render_bcd::$1 +(bool~) render_bcd::$2 +(byte~) render_bcd::$3 +(byte~) render_bcd::$4 +(byte~) render_bcd::$5 +(byte~) render_bcd::$6 +(label) render_bcd::@1 +(label) render_bcd::@2 +(label) render_bcd::@return +(byte) render_bcd::ZERO_CHAR +(byte) render_bcd::ZERO_CHAR#0 +(byte) render_bcd::bcd +(byte) render_bcd::bcd#0 +(byte) render_bcd::bcd#1 +(byte) render_bcd::bcd#2 +(byte) render_bcd::bcd#3 +(byte) render_bcd::bcd#4 +(byte) render_bcd::bcd#5 +(byte) render_bcd::bcd#6 +(byte) render_bcd::bcd#7 +(byte) render_bcd::bcd#8 +(word) render_bcd::offset +(word) render_bcd::offset#0 +(word) render_bcd::offset#1 +(word) render_bcd::offset#2 +(word) render_bcd::offset#3 +(word) render_bcd::offset#4 +(word) render_bcd::offset#5 +(word) render_bcd::offset#6 +(byte) render_bcd::only_low +(byte) render_bcd::only_low#0 +(byte) render_bcd::only_low#1 +(byte) render_bcd::only_low#2 +(byte) render_bcd::only_low#3 +(byte) render_bcd::only_low#4 +(byte) render_bcd::only_low#5 +(byte) render_bcd::only_low#6 +(byte*) render_bcd::screen +(byte*) render_bcd::screen#0 +(byte*) render_bcd::screen#1 +(byte*) render_bcd::screen#2 +(byte*) render_bcd::screen#3 +(byte*) render_bcd::screen#4 +(byte*) render_bcd::screen#5 +(byte*) render_bcd::screen#6 +(byte*) render_bcd::screen_pos +(byte*) render_bcd::screen_pos#0 +(byte*) render_bcd::screen_pos#1 +(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 @@ -4939,50 +5407,51 @@ SYMBOL TABLE SSA (byte*) render_playfield::screen_line#2 (void()) render_score() (bool~) render_score::$0 -(byte/signed word/word/dword/signed dword~) render_score::$1 -(byte~) render_score::$10 -(byte~) render_score::$11 +(dword*~) render_score::$1 +(byte/signed byte/word/signed word/dword/signed dword~) render_score::$10 +(byte/signed word/word/dword/signed dword/signed byte~) render_score::$11 (byte~) render_score::$12 -(bool~) render_score::$13 +(word/signed dword/dword~) render_score::$14 +(byte~) render_score::$15 +(word/signed word/dword/signed dword~) render_score::$17 +(word/signed dword/dword/signed word~) render_score::$18 (byte*~) render_score::$2 -(byte*~) render_score::$3 +(byte/word/signed word/dword/signed dword~) render_score::$3 (byte/signed word/word/dword/signed dword~) render_score::$4 -(byte*~) render_score::$5 -(byte*~) render_score::$6 -(dword*~) render_score::$7 -(byte*~) render_score::$8 -(byte~) render_score::$9 +(word/signed dword/dword~) render_score::$6 +(word/signed dword/dword~) render_score::$8 (label) render_score::@1 +(label) render_score::@10 (label) render_score::@2 (label) render_score::@3 -(label) render_score::@4 +(label) render_score::@5 +(label) render_score::@6 +(label) render_score::@7 +(label) render_score::@8 +(label) render_score::@9 (label) render_score::@return -(byte) render_score::SCREEN_SCORE_COL -(byte) render_score::SCREEN_SCORE_COL#0 -(byte) render_score::SCREEN_SCORE_COL#1 -(byte) render_score::SCREEN_SCORE_COL#2 -(byte) render_score::SCREEN_SCORE_ROW -(byte) render_score::SCREEN_SCORE_ROW#0 -(byte) render_score::SCREEN_SCORE_ROW#1 -(byte) render_score::SCREEN_SCORE_ROW#2 -(byte) render_score::ZERO_CHAR -(byte) render_score::ZERO_CHAR#0 -(byte) render_score::b -(byte) render_score::b#0 -(byte) render_score::b#1 -(byte) render_score::b#2 -(byte) render_score::score_byte -(byte) render_score::score_byte#0 +(word) render_score::level_offset +(word) render_score::level_offset#0 +(word) render_score::lines_offset +(word) render_score::lines_offset#0 +(word) render_score::lines_offset#1 (byte*) render_score::score_bytes (byte*) render_score::score_bytes#0 (byte*) render_score::score_bytes#1 -(byte*) render_score::screen_score_pos -(byte*) render_score::screen_score_pos#0 -(byte*) render_score::screen_score_pos#1 -(byte*) render_score::screen_score_pos#2 -(byte*) render_score::screen_score_pos#3 -(byte*) render_score::screen_score_pos#4 -(byte*) render_score::screen_score_pos#5 +(byte*) render_score::score_bytes#2 +(word) render_score::score_offset +(word) render_score::score_offset#0 +(word) render_score::score_offset#1 +(word) render_score::score_offset#2 +(byte*) render_score::screen +(byte*) render_score::screen#0 +(byte*) render_score::screen#1 +(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 (void()) render_screen_original((byte*) render_screen_original::screen) (byte/signed byte/word/signed word/dword/signed dword~) render_screen_original::$0 (byte*~) render_screen_original::$1 @@ -5382,6 +5851,8 @@ SYMBOL TABLE SSA (dword) score_bcd#70 (dword) score_bcd#71 (dword) score_bcd#72 +(dword) score_bcd#73 +(dword) score_bcd#74 (dword) score_bcd#8 (dword) score_bcd#9 (byte*[PLAYFIELD_LINES#0]) screen_lines_1 @@ -5487,12 +5958,15 @@ interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() (byte*) toSpritePtr1_sprite#0 (byte*) toSpritePtr1_sprite#1 +Culled Empty Block (label) render_score::@10 +Successful SSA optimization Pass2CullEmptyBlocks Inversing boolean not (bool~) keyboard_event_scan::$6 ← (byte~) keyboard_event_scan::$4 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) keyboard_event_scan::$5 ← (byte~) keyboard_event_scan::$4 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) keyboard_event_scan::$8 ← (byte) keyboard_events_size#10 == (byte/signed byte/word/signed word/dword/signed dword) 8 from (bool~) keyboard_event_scan::$7 ← (byte) keyboard_events_size#10 != (byte/signed byte/word/signed word/dword/signed dword) 8 Inversing boolean not (bool~) keyboard_event_scan::$16 ← (byte~) keyboard_event_scan::$14 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) keyboard_event_scan::$15 ← (byte~) keyboard_event_scan::$14 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not (bool~) keyboard_event_scan::$20 ← (byte~) keyboard_event_scan::$18 == (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) keyboard_event_scan::$19 ← (byte~) keyboard_event_scan::$18 != (byte/signed byte/word/signed word/dword/signed dword) 0 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~) 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 @@ -5514,6 +5988,7 @@ Inversing boolean not (bool~) play_lock_current::$2 ← *((byte*) current_piece_ Inversing boolean not (bool~) play_remove_lines::$7 ← (byte) play_remove_lines::c#0 != (byte/signed byte/word/signed word/dword/signed dword) 0 from (bool~) play_remove_lines::$6 ← (byte) play_remove_lines::c#0 == (byte/signed byte/word/signed word/dword/signed dword) 0 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~) 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 @@ -5584,12 +6059,23 @@ 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 (byte) render_score::SCREEN_SCORE_ROW#0 = (byte) render_score::SCREEN_SCORE_ROW#1 (byte) render_score::SCREEN_SCORE_ROW#2 -Alias (byte) render_score::SCREEN_SCORE_COL#0 = (byte) render_score::SCREEN_SCORE_COL#1 (byte) render_score::SCREEN_SCORE_COL#2 -Alias (dword) score_bcd#16 = (dword) score_bcd#26 (dword) score_bcd#17 -Alias (byte*) render_score::screen_score_pos#0 = (byte*~) render_score::$6 -Alias (byte*) render_score::screen_score_pos#1 = (byte*~) render_score::$3 -Alias (byte*) render_score::score_bytes#0 = (byte*~) render_score::$8 +Alias (dword) score_bcd#16 = (dword) score_bcd#27 (dword) score_bcd#17 +Alias (word) lines_bcd#48 = (word) lines_bcd#59 (word) lines_bcd#49 +Alias (byte) level_bcd#64 = (byte) level_bcd#73 (byte) level_bcd#65 +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#27 (word) lines_bcd#38 (word) lines_bcd#8 (word) lines_bcd#9 +Alias (byte) level_bcd#16 = (byte) level_bcd#47 (byte) level_bcd#57 (byte) level_bcd#37 (byte) level_bcd#26 (byte) level_bcd#8 +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 +Alias (byte) render_bcd::bcd#3 = (byte~) render_score::$12 +Alias (word) render_bcd::offset#4 = (word/signed dword/dword~) render_score::$14 +Alias (byte) render_bcd::bcd#4 = (byte~) render_score::$15 +Alias (word) render_score::level_offset#0 = (word/signed dword/dword/signed word~) render_score::$18 +Alias (byte*) render_bcd::screen_pos#0 = (byte*~) render_bcd::$0 (byte*) render_bcd::screen_pos#4 +Alias (byte) render_bcd::bcd#7 = (byte) render_bcd::bcd#8 Alias (byte*) render_screen_original::oscr#0 = (byte*~) render_screen_original::$1 Alias (byte*) render_screen_original::ocols#0 = (byte*~) render_screen_original::$3 Alias (byte) render_screen_original::y#2 = (byte) render_screen_original::y#3 @@ -5623,7 +6109,9 @@ Alias (byte) current_xpos#82 = (byte) current_xpos#92 (byte) current_xpos#83 (by 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 (dword) score_bcd#0 = (dword) score_bcd#69 (dword) score_bcd#67 (dword) score_bcd#61 (dword) score_bcd#55 (dword) score_bcd#46 (dword) score_bcd#41 (dword) score_bcd#35 (dword) score_bcd#25 +Alias (word) lines_bcd#0 = (word) lines_bcd#75 (word) lines_bcd#73 (word) lines_bcd#66 (word) lines_bcd#60 (word) lines_bcd#50 (word) lines_bcd#43 (word) lines_bcd#37 (word) lines_bcd#26 +Alias (dword) score_bcd#0 = (dword) score_bcd#71 (dword) score_bcd#69 (dword) score_bcd#63 (dword) score_bcd#57 (dword) score_bcd#48 (dword) score_bcd#43 (dword) score_bcd#37 (dword) score_bcd#26 +Alias (byte) level_bcd#0 = (byte) level_bcd#76 (byte) level_bcd#74 (byte) level_bcd#66 (byte) level_bcd#58 (byte) level_bcd#48 (byte) level_bcd#42 (byte) level_bcd#36 (byte) level_bcd#25 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 @@ -5659,7 +6147,9 @@ Alias (byte) play_move_down::movedown#10 = (byte) play_move_down::movedown#12 (b 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 (dword) score_bcd#47 = (dword) score_bcd#48 (dword) score_bcd#56 (dword) score_bcd#57 (dword) score_bcd#49 +Alias (word) lines_bcd#51 = (word) lines_bcd#52 (word) lines_bcd#61 (word) lines_bcd#62 (word) lines_bcd#53 +Alias (dword) score_bcd#49 = (dword) score_bcd#50 (dword) score_bcd#58 (dword) score_bcd#59 (dword) score_bcd#51 +Alias (byte) level_bcd#49 = (byte) level_bcd#50 (byte) level_bcd#59 (byte) level_bcd#60 (byte) level_bcd#51 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 @@ -5668,7 +6158,9 @@ Alias (byte) current_movedown_counter#1 = (byte) current_movedown_counter#28 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 (dword) score_bcd#62 = (dword) score_bcd#63 +Alias (word) lines_bcd#67 = (word) lines_bcd#68 +Alias (dword) score_bcd#64 = (dword) score_bcd#65 +Alias (byte) level_bcd#67 = (byte) level_bcd#68 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 @@ -5677,13 +6169,17 @@ 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 (dword) score_bcd#37 = (dword) score_bcd#38 +Alias (word) lines_bcd#39 = (word) lines_bcd#40 +Alias (dword) score_bcd#39 = (dword) score_bcd#40 +Alias (byte) level_bcd#38 = (byte) level_bcd#39 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 (dword) score_bcd#18 = (dword) score_bcd#19 (dword) score_bcd#27 (dword) score_bcd#50 (dword) score_bcd#39 (dword) score_bcd#30 (dword) score_bcd#40 (dword) score_bcd#28 +Alias (word) lines_bcd#18 = (word) lines_bcd#19 (word) lines_bcd#28 (word) lines_bcd#54 (word) lines_bcd#41 (word) lines_bcd#31 (word) lines_bcd#42 (word) lines_bcd#29 +Alias (dword) score_bcd#18 = (dword) score_bcd#19 (dword) score_bcd#28 (dword) score_bcd#52 (dword) score_bcd#41 (dword) score_bcd#31 (dword) score_bcd#42 (dword) score_bcd#29 +Alias (byte) level_bcd#17 = (byte) level_bcd#18 (byte) level_bcd#27 (byte) level_bcd#52 (byte) level_bcd#40 (byte) level_bcd#30 (byte) level_bcd#41 (byte) level_bcd#28 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 @@ -5693,7 +6189,9 @@ 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 (dword) score_bcd#1 = (dword) score_bcd#9 (dword) score_bcd#29 +Alias (word) lines_bcd#1 = (word) lines_bcd#10 (word) lines_bcd#30 +Alias (dword) score_bcd#1 = (dword) score_bcd#9 (dword) score_bcd#30 +Alias (byte) level_bcd#1 = (byte) level_bcd#9 (byte) level_bcd#29 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 @@ -5703,7 +6201,9 @@ Alias (byte) current_piece_char#0 = (byte) current_piece_char#9 Alias (byte) play_move_down::return#2 = (byte) play_move_down::return#4 Alias (byte) current_movedown_counter#10 = (byte) current_movedown_counter#3 Alias (byte) current_ypos#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#10 = (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 @@ -5798,9 +6298,18 @@ Alias (byte) play_remove_lines::r#4 = (byte) play_remove_lines::r#8 (byte) play_ Alias (byte) play_remove_lines::w#2 = (byte~) play_remove_lines::$11 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#11 = (byte) level_bcd#21 (byte) level_bcd#31 (byte) level_bcd#20 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::$4 +Alias (byte) play_update_score::lines_after#0 = (byte~) play_update_score::$6 +Alias (word) lines_bcd#3 = (word) lines_bcd#32 +Alias (dword) score_bcd#3 = (dword) score_bcd#32 +Alias (byte) level_bcd#3 = (byte/signed word/word/dword/signed dword~) play_update_score::$9 +Alias (word) lines_bcd#13 = (word) lines_bcd#4 Alias (dword) score_bcd#12 = (dword) score_bcd#4 +Alias (byte) level_bcd#12 = (byte) level_bcd#4 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_piece#26 = (byte*) current_piece#64 (byte*) current_piece#69 (byte*) current_piece#59 (byte*) current_piece#49 (byte*) current_piece#37 @@ -5813,7 +6322,9 @@ Alias (byte) render_screen_showing#16 = (byte) render_screen_showing#44 (byte) r 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 (dword) score_bcd#31 = (dword) score_bcd#71 (dword) score_bcd#72 (dword) score_bcd#70 (dword) score_bcd#68 (dword) score_bcd#64 (dword) score_bcd#58 (dword) score_bcd#51 (dword) score_bcd#42 +Alias (word) lines_bcd#33 = (word) lines_bcd#77 (word) lines_bcd#78 (word) lines_bcd#76 (word) lines_bcd#74 (word) lines_bcd#69 (word) lines_bcd#63 (word) lines_bcd#55 (word) lines_bcd#44 +Alias (dword) score_bcd#33 = (dword) score_bcd#73 (dword) score_bcd#74 (dword) score_bcd#72 (dword) score_bcd#70 (dword) score_bcd#66 (dword) score_bcd#60 (dword) score_bcd#53 (dword) score_bcd#44 +Alias (byte) level_bcd#32 = (byte) level_bcd#78 (byte) level_bcd#79 (byte) level_bcd#77 (byte) level_bcd#75 (byte) level_bcd#69 (byte) level_bcd#61 (byte) level_bcd#53 (byte) level_bcd#43 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_piece#14 = (byte*) current_piece#5 (byte*) current_piece#50 (byte*) current_piece#38 @@ -5828,7 +6339,9 @@ 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 (dword) score_bcd#14 = (dword) score_bcd#65 (dword) score_bcd#24 (dword) score_bcd#6 +Alias (word) lines_bcd#15 = (word) lines_bcd#70 (word) lines_bcd#25 (word) lines_bcd#6 +Alias (dword) score_bcd#14 = (dword) score_bcd#67 (dword) score_bcd#25 (dword) score_bcd#6 +Alias (byte) level_bcd#14 = (byte) level_bcd#70 (byte) level_bcd#24 (byte) level_bcd#6 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 @@ -5841,7 +6354,9 @@ 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 (dword) score_bcd#23 = (dword) score_bcd#66 (dword) score_bcd#59 (dword) score_bcd#52 (dword) score_bcd#43 (dword) score_bcd#34 +Alias (word) lines_bcd#24 = (word) lines_bcd#71 (word) lines_bcd#64 (word) lines_bcd#56 (word) lines_bcd#45 (word) lines_bcd#36 +Alias (dword) score_bcd#24 = (dword) score_bcd#68 (dword) score_bcd#61 (dword) score_bcd#54 (dword) score_bcd#45 (dword) score_bcd#36 +Alias (byte) level_bcd#23 = (byte) level_bcd#71 (byte) level_bcd#62 (byte) level_bcd#54 (byte) level_bcd#44 (byte) level_bcd#35 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 @@ -5858,7 +6373,9 @@ 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 (dword) score_bcd#13 = (dword) score_bcd#5 (dword) score_bcd#53 (dword) score_bcd#44 (dword) score_bcd#33 (dword) score_bcd#60 (dword) score_bcd#54 (dword) score_bcd#36 (dword) score_bcd#45 (dword) score_bcd#32 +Alias (word) lines_bcd#14 = (word) lines_bcd#5 (word) lines_bcd#57 (word) lines_bcd#46 (word) lines_bcd#35 (word) lines_bcd#72 (word) lines_bcd#65 (word) lines_bcd#58 (word) lines_bcd#47 (word) lines_bcd#34 +Alias (dword) score_bcd#13 = (dword) score_bcd#5 (dword) score_bcd#55 (dword) score_bcd#46 (dword) score_bcd#35 (dword) score_bcd#62 (dword) score_bcd#56 (dword) score_bcd#38 (dword) score_bcd#47 (dword) score_bcd#34 +Alias (byte) level_bcd#13 = (byte) level_bcd#5 (byte) level_bcd#55 (byte) level_bcd#45 (byte) level_bcd#34 (byte) level_bcd#72 (byte) level_bcd#63 (byte) level_bcd#56 (byte) level_bcd#46 (byte) level_bcd#33 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 @@ -5885,7 +6402,9 @@ Alias (byte) render_screen_showing#10 = (byte) render_screen_showing#5 Alias (byte) keyboard_events_size#20 = (byte) keyboard_events_size#9 Alias (byte) keyboard_modifiers#17 = (byte) keyboard_modifiers#9 Alias (byte) current_movedown_counter#13 = (byte) current_movedown_counter#6 +Alias (word) lines_bcd#16 = (word) lines_bcd#7 Alias (dword) score_bcd#15 = (dword) score_bcd#7 +Alias (byte) level_bcd#15 = (byte) level_bcd#7 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 @@ -5897,6 +6416,9 @@ 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#48 +Alias (byte) level_bcd#16 = (byte) level_bcd#64 +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 @@ -5919,7 +6441,9 @@ Alias (byte) current_movedown_counter#1 = (byte) current_movedown_counter#15 (by 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 (dword) score_bcd#18 = (dword) score_bcd#47 (dword) score_bcd#62 (dword) score_bcd#37 +Alias (word) lines_bcd#18 = (word) lines_bcd#51 (word) lines_bcd#67 (word) lines_bcd#39 +Alias (dword) score_bcd#18 = (dword) score_bcd#49 (dword) score_bcd#64 (dword) score_bcd#39 +Alias (byte) level_bcd#17 = (byte) level_bcd#49 (byte) level_bcd#67 (byte) level_bcd#38 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 @@ -5952,6 +6476,8 @@ 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 (word) lines_bcd#23 = (word) lines_bcd#3 +Alias (dword) score_bcd#23 = (dword) score_bcd#3 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 @@ -5959,7 +6485,6 @@ Alias candidate removed (volatile)(byte) toSpritePtr1_return#0 = (byte) toSprite Alias candidate removed (volatile)(byte) sprites_irq::toSpritePtr2_return#0 = (byte) sprites_irq::toSpritePtr2_$2#0 (byte) sprites_irq::toSpritePtr2_return#2 (byte) sprites_irq::toSpritePtr2_return#1 (byte) sprites_irq::toSpritePtr2_return#3 (byte~) sprites_irq::$3 (byte) irq_sprite_ptr#1 Self Phi Eliminated (byte) keyboard_event_scan::row_scan#1 Self Phi Eliminated (byte) keyboard_event_scan::row#10 -Self Phi Eliminated (byte*) render_score::score_bytes#1 Self Phi Eliminated (byte) render_screen_original::SPACE#1 Self Phi Eliminated (byte*) render_screen_original::oscr#3 Self Phi Eliminated (byte*) render_screen_original::ocols#3 @@ -6004,7 +6529,9 @@ 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 (dword) score_bcd#23 +Self Phi Eliminated (word) lines_bcd#24 +Self Phi Eliminated (dword) score_bcd#24 +Self Phi Eliminated (byte) level_bcd#23 Self Phi Eliminated (byte*) current_piece#27 Self Phi Eliminated (byte) current_orientation#37 Self Phi Eliminated (byte*) current_piece_gfx#32 @@ -6028,7 +6555,8 @@ Redundant Phi (byte) render_screen_render#10 (byte) render_screen_render#19 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 (byte*) render_score::score_bytes#1 (byte*) render_score::score_bytes#0 +Redundant Phi (word) lines_bcd#17 (word) lines_bcd#14 +Redundant Phi (byte) level_bcd#16 (byte) level_bcd#13 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 @@ -6072,11 +6600,15 @@ Redundant Phi (byte) play_move_down::key_event#1 (byte) play_move_down::key_even 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 (dword) score_bcd#18 (dword) score_bcd#23 +Redundant Phi (word) lines_bcd#18 (word) lines_bcd#24 +Redundant Phi (dword) score_bcd#18 (dword) score_bcd#24 +Redundant Phi (byte) level_bcd#17 (byte) level_bcd#23 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#12 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 @@ -6115,7 +6647,9 @@ Redundant Phi (byte) play_remove_lines::y#2 (byte) play_remove_lines::y#8 Redundant Phi (byte) play_remove_lines::removed#10 (byte) play_remove_lines::removed#11 Redundant Phi (byte) play_remove_lines::removed#3 (byte) play_remove_lines::removed#7 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#11 (byte) level_bcd#17 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_piece#26 (byte*) current_piece#0 @@ -6128,7 +6662,9 @@ 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 (dword) score_bcd#31 (dword) score_bcd#0 +Redundant Phi (word) lines_bcd#33 (word) lines_bcd#0 +Redundant Phi (dword) score_bcd#33 (dword) score_bcd#0 +Redundant Phi (byte) level_bcd#32 (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_piece#14 (byte*) current_piece#13 @@ -6143,7 +6679,9 @@ 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 (dword) score_bcd#23 (dword) score_bcd#14 +Redundant Phi (word) lines_bcd#24 (word) lines_bcd#15 +Redundant Phi (dword) score_bcd#24 (dword) score_bcd#14 +Redundant Phi (byte) level_bcd#23 (byte) level_bcd#14 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 @@ -6156,7 +6694,9 @@ Redundant Phi (byte) keyboard_modifiers#15 (byte) keyboard_modifiers#14 Redundant Phi (byte) keyboard_events_size#18 (byte) keyboard_events_size#16 Redundant Phi (byte) current_movedown_counter#11 (byte) current_movedown_counter#10 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#13 (byte) level_bcd#10 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 @@ -6181,7 +6721,9 @@ Redundant Phi (byte) render_screen_showing#10 (byte) render_screen_showing#13 Redundant Phi (byte) keyboard_events_size#20 (byte) keyboard_events_size#19 Redundant Phi (byte) keyboard_modifiers#17 (byte) keyboard_modifiers#16 Redundant Phi (byte) current_movedown_counter#13 (byte) current_movedown_counter#12 +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#15 (byte) level_bcd#14 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 @@ -6205,7 +6747,7 @@ Simple Condition (bool~) keyboard_event_get::$0 if((byte) keyboard_events_size#1 Simple Condition (bool~) render_init::$15 if((byte) render_init::i#1!=rangelast(0,render_init::$12)) goto render_init::@1 Simple Condition (bool~) render_show::$0 if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::@1 Simple Condition (bool~) render_score::$0 if((byte) render_screen_render#17==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_score::@1 -Simple Condition (bool~) render_score::$13 if((byte) render_score::b#1!=rangelast(0,2)) goto render_score::@3 +Simple Condition (bool~) render_bcd::$2 if((byte) render_bcd::only_low#6!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_bcd::@1 Simple Condition (bool~) render_screen_original::$4 if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 Simple Condition (bool~) render_screen_original::$5 if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 Simple Condition (bool~) render_screen_original::$6 if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 @@ -6252,6 +6794,7 @@ Simple Condition (bool~) play_remove_lines::$10 if((byte) play_remove_lines::ful Simple Condition (bool~) play_remove_lines::$12 if((byte) play_remove_lines::y#1!=rangelast(0,play_remove_lines::$4)) goto play_remove_lines::@1 Simple Condition (bool~) play_remove_lines::$13 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~) 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 @@ -6439,6 +6982,8 @@ Constant (const byte) PLAYFIELD_COLS#0 = 10 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) 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 @@ -6446,11 +6991,17 @@ Constant (const byte) render_init::i#0 = 0 Constant (const byte) render_screen_show#1 = 0 Constant (const byte) render_screen_render#1 = 64 Constant (const byte) render_show::d018val#0 = 0 -Constant (const byte) render_score::ZERO_CHAR#0 = 51 -Constant (const byte) render_score::SCREEN_SCORE_ROW#0 = 5 -Constant (const byte) render_score::SCREEN_SCORE_COL#0 = 33 -Constant (const dword*) render_score::$7 = &score_bcd#10 -Constant (const byte) render_score::b#0 = 0 +Constant (const dword*) render_score::$1 = &score_bcd#10 +Constant (const byte/word/signed word/dword/signed dword) render_score::$3 = 40*5 +Constant (const byte) render_bcd::only_low#0 = 0 +Constant (const byte) render_bcd::only_low#1 = 0 +Constant (const byte) render_bcd::only_low#2 = 0 +Constant (const byte/signed byte/word/signed word/dword/signed dword) render_score::$10 = 40*1 +Constant (const byte) render_bcd::only_low#3 = 1 +Constant (const byte) render_bcd::only_low#4 = 0 +Constant (const word/signed word/dword/signed dword) render_score::$17 = 40*19 +Constant (const byte) render_bcd::only_low#5 = 0 +Constant (const byte) render_bcd::ZERO_CHAR#0 = 51 Constant (const byte) render_screen_original::SPACE#0 = 0 Constant (const byte/signed byte/word/signed word/dword/signed dword) render_screen_original::$0 = 32*2 Constant (const byte/signed byte/word/signed word/dword/signed dword) render_screen_original::$2 = 32*2 @@ -6544,9 +7095,12 @@ Constant (const byte*) render_show::toD0181_screen#0 = PLAYFIELD_SCREEN_1#0 Constant (const byte*) render_show::toD0181_gfx#0 = PLAYFIELD_CHARSET#0 Constant (const byte*) render_show::toD0182_screen#0 = PLAYFIELD_SCREEN_2#0 Constant (const byte*) render_show::toD0182_gfx#0 = PLAYFIELD_CHARSET#0 -Constant (const byte/signed word/word/dword/signed dword) render_score::$4 = 40*render_score::SCREEN_SCORE_ROW#0 -Constant (const byte/signed word/word/dword/signed dword) render_score::$1 = 40*render_score::SCREEN_SCORE_ROW#0 -Constant (const byte*) render_score::score_bytes#0 = ((byte*))render_score::$7 +Constant (const byte*) render_score::screen#0 = PLAYFIELD_SCREEN_1#0 +Constant (const byte*) render_score::screen#1 = PLAYFIELD_SCREEN_2#0 +Constant (const byte*) render_score::score_bytes#0 = ((byte*))render_score::$1 +Constant (const word) render_score::score_offset#0 = render_score::$3+28 +Constant (const word) render_score::lines_offset#0 = render_score::$10+22 +Constant (const word) render_score::level_offset#0 = render_score::$17+31 Constant (const byte*) render_screen_original::oscr#0 = PLAYFIELD_SCREEN_ORIGINAL#0+render_screen_original::$0 Constant (const byte*) render_screen_original::ocols#0 = PLAYFIELD_COLORS_ORIGINAL#0+render_screen_original::$2 Constant (const byte*) render_screen_original::cols#0 = COLS#0 @@ -6597,8 +7151,12 @@ Constant (const word) render_show::toD0181_$0#0 = ((word))render_show::toD0181_s Constant (const word) render_show::toD0181_$4#0 = ((word))render_show::toD0181_gfx#0 Constant (const word) render_show::toD0182_$0#0 = ((word))render_show::toD0182_screen#0 Constant (const word) render_show::toD0182_$4#0 = ((word))render_show::toD0182_gfx#0 -Constant (const byte*) render_score::$5 = PLAYFIELD_SCREEN_1#0+render_score::$4 -Constant (const byte*) render_score::$2 = PLAYFIELD_SCREEN_2#0+render_score::$1 +Constant (const word) render_bcd::offset#0 = render_score::score_offset#0 +Constant (const word) render_bcd::offset#1 = render_score::score_offset#0+2 +Constant (const word) render_bcd::offset#2 = render_score::score_offset#0+4 +Constant (const word) render_bcd::offset#3 = render_score::lines_offset#0 +Constant (const word) render_bcd::offset#4 = render_score::lines_offset#0+1 +Constant (const word) render_bcd::offset#5 = render_score::level_offset#0 Constant (const word) toSpritePtr1_$1#0 = toSpritePtr1_$0#0>>6 Constant (const word) sprites_irq::toSpritePtr2_$0#0 = ((word))sprites_irq::toSpritePtr2_sprite#0 Constant (const word[]) PIECES#0 = { $19, $20, $21, $22, $23, $24, $25 } @@ -6612,8 +7170,6 @@ Constant (const word) render_show::toD0181_$1#0 = render_show::toD0181_$0#0&1638 Constant (const byte) render_show::toD0181_$5#0 = >render_show::toD0181_$4#0 Constant (const word) render_show::toD0182_$1#0 = render_show::toD0182_$0#0&16383 Constant (const byte) render_show::toD0182_$5#0 = >render_show::toD0182_$4#0 -Constant (const byte*) render_score::screen_score_pos#0 = render_score::$5+render_score::SCREEN_SCORE_COL#0 -Constant (const byte*) render_score::screen_score_pos#1 = render_score::$2+render_score::SCREEN_SCORE_COL#0 Constant (const byte) toSpritePtr1_$2#0 = ((byte))toSpritePtr1_$1#0 Constant (const word) sprites_irq::toSpritePtr2_$1#0 = sprites_irq::toSpritePtr2_$0#0>>6 Constant (const byte*) play_init::pli#0 = playfield#0 @@ -6641,6 +7197,9 @@ Constant (const byte) sprites_irq::toSpritePtr2_return#1 = sprites_irq::toSprite Successful SSA optimization Pass2ConstantIdentification Constant (const byte) sprites_irq::$3 = sprites_irq::toSpritePtr2_return#1 Successful SSA optimization Pass2ConstantIdentification +Consolidated array index constant in *(render_score::score_bytes#0+2) +Consolidated array index constant in *(render_score::score_bytes#0+1) +Consolidated array index constant in *(render_score::score_bytes#0+0) Consolidated array index constant in *(SPRITES_YPOS#0+0) Consolidated array index constant in *(SPRITES_YPOS#0+2) Consolidated array index constant in *(SPRITES_YPOS#0+4) @@ -6669,8 +7228,6 @@ Resolved ranged next value keyboard_event_scan::col#1 ← ++ keyboard_event_scan Resolved ranged comparison value if(keyboard_event_scan::col#1!=rangelast(0,7)) goto keyboard_event_scan::@4 to (byte/signed byte/word/signed word/dword/signed dword) 8 Resolved ranged next value render_init::i#1 ← ++ render_init::i#2 to ++ Resolved ranged comparison value if(render_init::i#1!=rangelast(0,render_init::$12)) goto render_init::@1 to (const byte/signed word/word/dword/signed dword) render_init::$12+(byte/signed byte/word/signed word/dword/signed dword) 1 -Resolved ranged next value render_score::b#1 ← ++ render_score::b#2 to ++ -Resolved ranged comparison value if(render_score::b#1!=rangelast(0,2)) goto render_score::@3 to (byte/signed byte/word/signed word/dword/signed dword) 3 Resolved ranged next value render_screen_original::y#1 ← ++ render_screen_original::y#6 to ++ Resolved ranged comparison value if(render_screen_original::y#1!=rangelast(0,24)) goto render_screen_original::@1 to (byte/signed byte/word/signed word/dword/signed dword) 25 Resolved ranged next value render_playfield::c#1 ← ++ render_playfield::c#2 to ++ @@ -6717,7 +7274,7 @@ Culled Empty Block (label) render_score::@1 Culled Empty Block (label) render_current::@6 Culled Empty Block (label) toSpritePtr1_@return Culled Empty Block (label) sprites_irq::toSpritePtr2_@return -Culled Empty Block (label) @24 +Culled Empty Block (label) @25 Culled Empty Block (label) play_move_down::@3 Culled Empty Block (label) play_move_down::@5 Culled Empty Block (label) play_move_down::@22 @@ -6727,7 +7284,7 @@ Culled Empty Block (label) play_move_leftright::@4 Culled Empty Block (label) play_move_leftright::@5 Culled Empty Block (label) play_move_rotate::@7 Culled Empty Block (label) play_move_rotate::@5 -Culled Empty Block (label) @28 +Culled Empty Block (label) @29 Culled Empty Block (label) play_collision::@9 Culled Empty Block (label) play_collision::@11 Culled Empty Block (label) play_collision::@13 @@ -6741,7 +7298,7 @@ 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) @36 +Culled Empty Block (label) @37 Successful SSA optimization Pass2CullEmptyBlocks Alias (byte) render_screen_showing#1 = (byte) render_screen_showing#2 Successful SSA optimization Pass2AliasElimination @@ -6786,9 +7343,20 @@ Inlining constant with var siblings (const byte) keyboard_event_get::return#0 Inlining constant with var siblings (const byte) render_init::i#0 Inlining constant with var siblings (const byte*) render_init::li_1#0 Inlining constant with var siblings (const byte*) render_init::li_2#0 -Inlining constant with var siblings (const byte) render_score::b#0 -Inlining constant with var siblings (const byte*) render_score::screen_score_pos#0 -Inlining constant with var siblings (const byte*) render_score::screen_score_pos#1 +Inlining constant with var siblings (const byte*) render_score::screen#0 +Inlining constant with var siblings (const byte*) render_score::screen#1 +Inlining constant with var siblings (const byte) render_bcd::only_low#0 +Inlining constant with var siblings (const byte) render_bcd::only_low#1 +Inlining constant with var siblings (const byte) render_bcd::only_low#2 +Inlining constant with var siblings (const byte) render_bcd::only_low#3 +Inlining constant with var siblings (const byte) render_bcd::only_low#4 +Inlining constant with var siblings (const byte) render_bcd::only_low#5 +Inlining constant with var siblings (const word) render_bcd::offset#0 +Inlining constant with var siblings (const word) render_bcd::offset#1 +Inlining constant with var siblings (const word) render_bcd::offset#2 +Inlining constant with var siblings (const word) render_bcd::offset#3 +Inlining constant with var siblings (const word) render_bcd::offset#4 +Inlining constant with var siblings (const word) render_bcd::offset#5 Inlining constant with var siblings (const byte) render_screen_original::y#0 Inlining constant with var siblings (const byte) render_screen_original::x#0 Inlining constant with var siblings (const byte*) render_screen_original::screen#0 @@ -6841,6 +7409,8 @@ Inlining constant with var siblings (const byte) main::render#0 Inlining constant with var siblings (const byte) keyboard_events_size#0 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) 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 @@ -6856,8 +7426,8 @@ Constant inlined play_init::pli#0 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS Constant inlined play_move_rotate::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined render_current::l#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined current_movedown_counter#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined 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_score::b#0 = (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 render_screen_original::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -6866,16 +7436,20 @@ Constant inlined render_playfield::i#0 = (const byte) PLAYFIELD_COLS#0*(byte/sig Constant inlined play_collision::$4 = (byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0 Constant inlined render_show::toD0182_$2#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_$1#0 = >((word))(const byte*) PLAYFIELD_CHARSET#0 -Constant inlined render_score::screen_score_pos#0 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(const byte) render_score::SCREEN_SCORE_ROW#0+(const byte) render_score::SCREEN_SCORE_COL#0 Constant inlined render_init::$12 = (const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1 -Constant inlined render_score::screen_score_pos#1 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(const byte) render_score::SCREEN_SCORE_ROW#0+(const byte) render_score::SCREEN_SCORE_COL#0 Constant inlined render_init::$10 = (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 Constant inlined play_remove_lines::$0 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0 Constant inlined play_remove_lines::$2 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0 Constant inlined play_collision::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_remove_lines::$4 = (const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined render_bcd::offset#0 = (const word) render_score::score_offset#0 +Constant inlined render_bcd::offset#1 = (const word) render_score::score_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined render_screen_original::$0 = (byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined sprites_irq::toSpritePtr2_$0#0 = ((word))(const byte*) PLAYFIELD_SPRITES#0 +Constant inlined render_bcd::offset#4 = (const word) render_score::lines_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 1 +Constant inlined render_bcd::offset#5 = (const word) render_score::level_offset#0 +Constant inlined render_bcd::offset#2 = (const word) render_score::score_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 4 +Constant inlined render_bcd::offset#3 = (const word) render_score::lines_offset#0 Constant inlined toSpritePtr1_$1#0 = ((word))(const byte*) PLAYFIELD_SPRITES#0>>(byte/signed byte/word/signed word/dword/signed dword) 6 Constant inlined render_show::toD0182_gfx#0 = (const byte*) PLAYFIELD_CHARSET#0 Constant inlined render_show::toD0181_$3#0 = >((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2 @@ -6890,6 +7464,7 @@ Constant inlined render_init::$6 = (byte/signed byte/word/signed word/dword/sign 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 Constant inlined sprites_irq::$3 = (const byte) sprites_irq::toSpritePtr2_return#0 @@ -6905,13 +7480,19 @@ Constant inlined render_show::toD0181_screen#0 = (const byte*) PLAYFIELD_SCREEN_ Constant inlined render_playfield::l#0 = (byte/signed byte/word/signed word/dword/signed dword) 2 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 +Constant inlined render_bcd::only_low#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined $20 = ((word))(const byte[4*4*4]) PIECE_S#0 +Constant inlined render_bcd::only_low#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_show::toD0182_$5#0 = >((word))(const byte*) PLAYFIELD_CHARSET#0 Constant inlined $21 = ((word))(const byte[4*4*4]) PIECE_Z#0 Constant inlined keyboard_event_pressed::keycode#4 = (const byte) KEY_SPACE#0 +Constant inlined render_bcd::only_low#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined $22 = ((word))(const byte[4*4*4]) PIECE_J#0 +Constant inlined render_bcd::only_low#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_init::vicSelectGfxBank1_toDd001_$2#0 = >((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 6 Constant inlined $23 = ((word))(const byte[4*4*4]) PIECE_O#0 +Constant inlined render_bcd::only_low#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined $24 = ((word))(const byte[4*4*4]) PIECE_I#0 Constant inlined render_show::toD0182_$1#0 = ((word))(const byte*) PLAYFIELD_SCREEN_2#0&(word/signed word/dword/signed dword) 16383 Constant inlined sprites_irq_init::$0 = &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() @@ -6986,33 +7567,35 @@ 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 play_init::idx#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 Constant inlined main::render#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_score::screen#0 = (const byte*) PLAYFIELD_SCREEN_1#0 Constant inlined render_screen_original::oscr#0 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 +Constant inlined render_score::screen#1 = (const byte*) PLAYFIELD_SCREEN_2#0 Constant inlined render_screen_show#1 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sprites_irq::toSpritePtr2_sprite#0 = (const byte*) PLAYFIELD_SPRITES#0 +Constant inlined render_score::$3 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5 +Constant inlined render_score::$10 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined play_collision::l#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined render_score::$4 = (byte/signed byte/word/signed word/dword/signed dword) 40*(const byte) render_score::SCREEN_SCORE_ROW#0 -Constant inlined render_score::$5 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(const byte) render_score::SCREEN_SCORE_ROW#0 -Constant inlined render_score::$7 = &(dword) score_bcd#10 Constant inlined toSpritePtr1_$2#0 = (const byte) toSpritePtr1_return#0 Constant inlined render_show::toD0181_$2#0 = ((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined keyboard_event_get::return#0 = (byte/word/signed word/dword/signed dword) 255 Constant inlined render_init::li_1#0 = (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 -Constant inlined render_score::$1 = (byte/signed byte/word/signed word/dword/signed dword) 40*(const byte) render_score::SCREEN_SCORE_ROW#0 -Constant inlined render_score::$2 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(const byte) render_score::SCREEN_SCORE_ROW#0 +Constant inlined render_score::$1 = &(dword) score_bcd#10 Constant inlined render_screen_original::cols#0 = (const byte*) COLS#0 Successful SSA optimization Pass2ConstantInlining +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 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_score::@7(between render_score::@3 and render_score::@3) +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) @@ -7035,7 +7618,8 @@ 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::@3(between play_update_score and play_update_score::@return) +Added new block during phi lifting play_update_score::@5(between play_update_score::@3 and play_update_score::@2) +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_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) @@ -7065,7 +7649,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 @34 +Adding NOP phi() at start of @35 Adding NOP phi() at start of @end Adding NOP phi() at start of main Adding NOP phi() at start of main::@16 @@ -7078,7 +7662,7 @@ Adding NOP phi() at start of main::@23 Adding NOP phi() at start of main::@24 Adding NOP phi() at start of main::@30 Adding NOP phi() at start of main::@31 -Adding NOP phi() at start of render_score::@4 +Adding NOP phi() at start of render_score::@3 Adding NOP phi() at start of play_move_down::@8 Adding NOP phi() at start of play_move_down::@13 Adding NOP phi() at start of play_move_down::@19 @@ -7099,14 +7683,15 @@ 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 [play_move_rotate] to play_collision:190 -Calls in [play_move_leftright] to play_collision:242 play_collision:259 -Calls in [play_move_down] to keyboard_event_pressed:270 play_collision:290 play_lock_current:295 play_remove_lines:297 play_update_score:301 play_spawn_current:303 -Calls in [play_spawn_current] to sid_rnd:349 -Calls in [keyboard_event_scan] to keyboard_matrix_read:447 keyboard_event_pressed:458 keyboard_event_pressed:464 keyboard_event_pressed:471 keyboard_event_pressed:478 -Calls in [render_init] to render_screen_original:577 render_screen_original:579 +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:503 keyboard_event_pressed:514 keyboard_event_pressed:520 keyboard_event_pressed:527 keyboard_event_pressed:534 +Calls in [render_init] to render_screen_original:633 render_screen_original:635 -Created 131 initial phi equivalence classes +Created 143 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 @@ -7131,202 +7716,231 @@ 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] score_bcd#73 ← score_bcd#10 -Coalesced (already) [87] current_piece#75 ← current_piece#10 -Coalesced (already) [88] current_orientation#78 ← current_orientation#19 -Coalesced (already) [89] current_piece_gfx#101 ← current_piece_gfx#14 -Coalesced (already) [90] current_xpos#111 ← current_xpos#19 -Coalesced (already) [91] current_ypos#85 ← current_ypos#13 -Coalesced (already) [92] current_piece_char#89 ← current_piece_char#1 -Coalesced (already) [93] keyboard_events_size#81 ← keyboard_events_size#16 -Coalesced (already) [94] current_movedown_counter#50 ← current_movedown_counter#10 -Coalesced (already) [95] score_bcd#74 ← score_bcd#10 -Coalesced [102] render_score::screen_score_pos#6 ← render_score::screen_score_pos#5 -Coalesced [116] render_score::b#3 ← render_score::b#1 -Coalesced [117] render_score::screen_score_pos#7 ← render_score::screen_score_pos#3 -Coalesced [120] render_current::ypos2#11 ← render_current::ypos2#0 -Coalesced [124] render_current::i#14 ← render_current::i#1 -Coalesced [130] render_current::ypos2#12 ← render_current::ypos2#1 -Coalesced [131] render_current::i#12 ← render_current::i#8 -Coalesced [132] render_current::l#11 ← render_current::l#1 -Coalesced [137] render_current::i#15 ← render_current::i#3 -Coalesced [138] render_current::xpos#7 ← render_current::xpos#0 -Coalesced [148] render_current::i#13 ← render_current::i#10 -Coalesced (already) [149] render_current::i#16 ← render_current::i#10 -Coalesced [150] render_current::xpos#8 ← render_current::xpos#1 -Coalesced [151] render_current::c#7 ← render_current::c#1 -Coalesced [157] render_playfield::i#6 ← render_playfield::i#3 -Coalesced [158] render_playfield::screen_line#3 ← render_playfield::screen_line#0 -Coalesced [168] render_playfield::l#5 ← render_playfield::l#1 -Coalesced [169] render_playfield::i#5 ← render_playfield::i#1 -Coalesced (already) [170] render_playfield::i#7 ← render_playfield::i#1 -Coalesced [171] render_playfield::screen_line#4 ← render_playfield::screen_line#1 -Coalesced [172] render_playfield::c#3 ← render_playfield::c#1 -Coalesced [175] current_orientation#81 ← current_orientation#14 -Coalesced [176] current_piece_gfx#106 ← current_piece_gfx#1 -Coalesced [181] play_move_rotate::orientation#7 ← play_move_rotate::orientation#2 -Not coalescing [186] current_piece#79 ← current_piece#10 -Coalesced [187] play_collision::orientation#8 ← play_collision::orientation#3 -Coalesced [188] play_collision::ypos#8 ← play_collision::ypos#3 -Coalesced [189] play_collision::xpos#17 ← play_collision::xpos#3 -Coalesced [196] current_orientation#79 ← current_orientation#4 -Coalesced [197] current_piece_gfx#104 ← current_piece_gfx#3 -Coalesced (already) [198] current_orientation#80 ← current_orientation#14 -Coalesced (already) [199] current_piece_gfx#105 ← current_piece_gfx#1 -Coalesced [202] play_move_rotate::orientation#6 ← play_move_rotate::orientation#1 -Coalesced [206] play_collision::ypos2#11 ← play_collision::ypos2#0 -Coalesced [209] play_collision::i#12 ← play_collision::i#3 -Not coalescing [210] play_collision::col#9 ← play_collision::xpos#5 -Coalesced [227] play_collision::ypos2#12 ← play_collision::ypos2#1 -Not coalescing [228] play_collision::i#11 ← play_collision::i#1 -Coalesced [229] play_collision::l#11 ← play_collision::l#1 -Not coalescing [230] play_collision::i#13 ← play_collision::i#1 -Coalesced [231] play_collision::col#10 ← play_collision::col#1 -Coalesced [232] play_collision::c#9 ← play_collision::c#1 -Not coalescing [238] current_piece#78 ← current_piece#10 -Coalesced [239] play_collision::orientation#7 ← play_collision::orientation#2 -Coalesced [240] play_collision::ypos#7 ← play_collision::ypos#2 -Coalesced [241] play_collision::xpos#16 ← play_collision::xpos#2 -Coalesced [247] current_xpos#116 ← current_xpos#2 -Coalesced [250] current_xpos#115 ← current_xpos#1 -Coalesced (already) [251] current_xpos#118 ← current_xpos#1 -Not coalescing [255] current_piece#77 ← current_piece#10 -Coalesced [256] play_collision::orientation#6 ← play_collision::orientation#1 -Coalesced [257] play_collision::ypos#6 ← play_collision::ypos#1 -Coalesced [258] play_collision::xpos#15 ← play_collision::xpos#1 -Coalesced [264] current_xpos#114 ← current_xpos#4 -Coalesced (already) [265] current_xpos#117 ← current_xpos#1 -Coalesced [276] play_move_down::movedown#13 ← play_move_down::movedown#2 -Coalesced [280] play_move_down::movedown#16 ← play_move_down::movedown#3 -Not coalescing [286] current_piece#76 ← current_piece#16 -Coalesced [287] play_collision::orientation#5 ← play_collision::orientation#0 -Coalesced [288] play_collision::ypos#5 ← play_collision::ypos#0 -Coalesced [289] play_collision::xpos#14 ← play_collision::xpos#0 -Coalesced [304] current_ypos#88 ← current_ypos#18 -Coalesced [305] score_bcd#75 ← score_bcd#12 -Coalesced [307] current_piece_gfx#107 ← current_piece_gfx#16 -Coalesced [308] current_xpos#119 ← current_xpos#23 -Coalesced [309] current_piece_char#92 ← current_piece_char#12 -Coalesced (already) [311] current_ypos#91 ← current_ypos#29 -Coalesced [312] score_bcd#78 ← score_bcd#20 -Coalesced [313] current_piece#83 ← current_piece#20 -Coalesced [314] current_orientation#84 ← current_orientation#29 -Coalesced (already) [315] current_piece_gfx#110 ← current_piece_gfx#26 -Coalesced (already) [316] current_xpos#122 ← current_xpos#33 -Coalesced (already) [317] current_piece_char#95 ← current_piece_char#20 -Coalesced [321] current_ypos#89 ← current_ypos#0 -Coalesced (already) [322] score_bcd#76 ← score_bcd#14 -Coalesced (already) [323] current_piece#81 ← current_piece#16 -Coalesced (already) [324] current_orientation#82 ← current_orientation#10 -Coalesced (already) [325] current_piece_gfx#108 ← current_piece_gfx#20 -Coalesced (already) [326] current_xpos#120 ← current_xpos#10 -Coalesced (already) [327] current_piece_char#93 ← current_piece_char#15 -Coalesced [328] current_movedown_counter#51 ← current_movedown_counter#1 -Coalesced (already) [329] current_ypos#90 ← current_ypos#21 -Coalesced (already) [330] score_bcd#77 ← score_bcd#14 -Coalesced (already) [331] current_piece#82 ← current_piece#16 -Coalesced (already) [332] current_orientation#83 ← current_orientation#10 -Coalesced (already) [333] current_piece_gfx#109 ← current_piece_gfx#20 -Coalesced (already) [334] current_xpos#121 ← current_xpos#10 -Coalesced (already) [335] current_piece_char#94 ← current_piece_char#15 -Coalesced [336] play_move_down::movedown#17 ← play_move_down::movedown#7 -Coalesced [337] play_move_down::movedown#15 ← play_move_down::movedown#10 -Coalesced (already) [338] play_move_down::movedown#14 ← play_move_down::movedown#10 -Coalesced [353] play_spawn_current::piece_idx#4 ← play_spawn_current::piece_idx#1 -Coalesced [362] score_bcd#80 ← score_bcd#3 -Coalesced (already) [365] score_bcd#79 ← score_bcd#14 -Coalesced [368] play_remove_lines::r#10 ← play_remove_lines::r#3 -Coalesced [369] play_remove_lines::w#14 ← play_remove_lines::w#12 -Coalesced [383] play_remove_lines::w#16 ← play_remove_lines::w#2 -Coalesced [384] play_remove_lines::removed#13 ← play_remove_lines::removed#1 -Coalesced [388] play_remove_lines::w#18 ← play_remove_lines::w#11 -Coalesced [394] play_remove_lines::w#19 ← play_remove_lines::w#3 -Coalesced [395] play_remove_lines::r#9 ← play_remove_lines::r#1 -Coalesced [396] play_remove_lines::w#13 ← play_remove_lines::w#11 -Coalesced [397] play_remove_lines::y#9 ← play_remove_lines::y#1 -Coalesced [398] play_remove_lines::removed#12 ← play_remove_lines::removed#7 -Coalesced [399] play_remove_lines::w#17 ← play_remove_lines::w#1 -Coalesced (already) [400] play_remove_lines::removed#14 ← play_remove_lines::removed#11 -Coalesced (already) [401] play_remove_lines::r#11 ← play_remove_lines::r#1 -Coalesced (already) [402] play_remove_lines::w#15 ← play_remove_lines::w#1 -Coalesced [403] play_remove_lines::x#5 ← play_remove_lines::x#1 -Coalesced [404] play_remove_lines::full#5 ← play_remove_lines::full#2 -Coalesced (already) [405] play_remove_lines::full#6 ← play_remove_lines::full#4 -Coalesced [407] play_lock_current::ypos2#7 ← play_lock_current::ypos2#0 -Coalesced [411] play_lock_current::i#8 ← play_lock_current::i#3 -Coalesced [412] play_lock_current::col#5 ← play_lock_current::col#0 -Coalesced [424] play_lock_current::ypos2#8 ← play_lock_current::ypos2#1 -Not coalescing [425] play_lock_current::i#7 ← play_lock_current::i#1 -Coalesced [426] play_lock_current::l#7 ← play_lock_current::l#1 -Not coalescing [427] play_lock_current::i#9 ← play_lock_current::i#1 -Coalesced [428] play_lock_current::col#6 ← play_lock_current::col#1 -Coalesced [429] play_lock_current::c#5 ← play_lock_current::c#1 -Coalesced [439] keyboard_event_get::return#6 ← keyboard_event_get::return#1 -Coalesced [440] keyboard_events_size#83 ← keyboard_events_size#4 -Coalesced [443] keyboard_events_size#82 ← keyboard_events_size#13 -Coalesced [444] keyboard_events_size#84 ← keyboard_events_size#19 -Coalesced [452] keyboard_event_scan::keycode#17 ← keyboard_event_scan::keycode#1 -Coalesced (already) [453] keyboard_events_size#86 ← keyboard_events_size#29 -Coalesced [469] keyboard_modifiers#61 ← keyboard_modifiers#3 -Coalesced [476] keyboard_modifiers#63 ← keyboard_modifiers#4 -Coalesced [484] keyboard_modifiers#64 ← keyboard_modifiers#12 -Coalesced [485] keyboard_modifiers#62 ← keyboard_modifiers#11 -Coalesced [486] keyboard_event_scan::row#15 ← keyboard_event_scan::row#1 -Coalesced [487] keyboard_event_scan::keycode#16 ← keyboard_event_scan::keycode#14 -Coalesced (already) [488] keyboard_events_size#85 ← keyboard_events_size#13 -Coalesced [489] keyboard_event_scan::keycode#19 ← keyboard_event_scan::keycode#11 -Coalesced [490] keyboard_events_size#88 ← keyboard_events_size#29 -Coalesced [500] keyboard_events_size#90 ← keyboard_events_size#2 -Coalesced [506] keyboard_event_scan::keycode#18 ← keyboard_event_scan::keycode#15 -Coalesced [507] keyboard_events_size#87 ← keyboard_events_size#30 -Coalesced [508] keyboard_event_scan::col#9 ← keyboard_event_scan::col#1 -Coalesced (already) [509] keyboard_event_scan::keycode#20 ← keyboard_event_scan::keycode#15 -Coalesced (already) [510] keyboard_events_size#89 ← keyboard_events_size#30 -Coalesced [514] keyboard_events_size#93 ← keyboard_events_size#1 -Coalesced (already) [515] keyboard_events_size#92 ← keyboard_events_size#10 -Coalesced (already) [516] keyboard_events_size#91 ← keyboard_events_size#10 -Coalesced [538] play_init::j#3 ← play_init::j#1 -Coalesced [539] play_init::pli#3 ← play_init::pli#1 -Coalesced [540] play_init::idx#3 ← play_init::idx#1 -Coalesced [565] sprites_init::s#3 ← sprites_init::s#1 -Coalesced [566] sprites_init::xpos#3 ← sprites_init::xpos#1 -Coalesced [590] render_init::i#3 ← render_init::i#1 -Coalesced [591] render_init::li_1#3 ← render_init::li_1#1 -Coalesced [592] render_init::li_2#3 ← render_init::li_2#1 -Coalesced [594] render_screen_original::screen#11 ← render_screen_original::screen#9 -Coalesced [596] render_screen_original::screen#13 ← render_screen_original::screen#8 -Coalesced [597] render_screen_original::cols#10 ← render_screen_original::cols#7 -Coalesced [605] render_screen_original::oscr#8 ← render_screen_original::oscr#4 -Coalesced [606] render_screen_original::screen#15 ← render_screen_original::screen#2 -Coalesced [607] render_screen_original::ocols#8 ← render_screen_original::ocols#4 -Coalesced [608] render_screen_original::cols#12 ← render_screen_original::cols#1 -Coalesced [609] render_screen_original::x#8 ← render_screen_original::x#1 -Coalesced [619] render_screen_original::screen#17 ← render_screen_original::screen#3 -Coalesced [620] render_screen_original::cols#14 ← render_screen_original::cols#2 -Coalesced [621] render_screen_original::x#10 ← render_screen_original::x#2 -Coalesced [632] render_screen_original::screen#12 ← render_screen_original::screen#10 -Coalesced [633] render_screen_original::cols#9 ← render_screen_original::cols#3 -Coalesced [634] render_screen_original::oscr#7 ← render_screen_original::oscr#1 -Coalesced [635] render_screen_original::ocols#7 ← render_screen_original::ocols#1 -Coalesced [636] render_screen_original::y#7 ← render_screen_original::y#1 -Coalesced [637] render_screen_original::screen#18 ← render_screen_original::screen#10 -Coalesced [638] render_screen_original::cols#15 ← render_screen_original::cols#3 -Coalesced [639] render_screen_original::x#11 ← render_screen_original::x#3 -Coalesced (already) [640] render_screen_original::oscr#9 ← render_screen_original::oscr#1 -Coalesced [641] render_screen_original::screen#16 ← render_screen_original::screen#3 -Coalesced (already) [642] render_screen_original::ocols#9 ← render_screen_original::ocols#1 -Coalesced [643] render_screen_original::cols#13 ← render_screen_original::cols#2 -Coalesced [644] render_screen_original::x#9 ← render_screen_original::x#2 -Coalesced (already) [645] render_screen_original::screen#14 ← render_screen_original::screen#2 -Coalesced (already) [646] render_screen_original::cols#11 ← render_screen_original::cols#1 -Coalesced [647] render_screen_original::x#7 ← render_screen_original::x#1 -Coalesced [671] irq_raster_next#24 ← irq_raster_next#2 -Coalesced [677] sprites_irq::raster_next#4 ← sprites_irq::raster_next#1 -Coalesced [682] sprites_irq::raster_next#5 ← sprites_irq::raster_next#0 -Coalesced [688] irq_raster_next#25 ← irq_raster_next#1 -Coalesced down to 80 phi equivalence classes +Coalesced [86] lines_bcd#79 ← lines_bcd#11 +Coalesced [87] score_bcd#75 ← score_bcd#10 +Coalesced [88] level_bcd#80 ← level_bcd#10 +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#80 ← lines_bcd#11 +Coalesced (already) [98] score_bcd#76 ← score_bcd#10 +Coalesced (already) [99] level_bcd#81 ← level_bcd#10 +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#81 ← lines_bcd#13 +Coalesced [340] score_bcd#77 ← score_bcd#12 +Coalesced [341] level_bcd#82 ← level_bcd#12 +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#84 ← lines_bcd#20 +Coalesced [349] score_bcd#80 ← score_bcd#20 +Coalesced [350] level_bcd#85 ← level_bcd#19 +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#82 ← lines_bcd#15 +Coalesced (already) [361] score_bcd#78 ← score_bcd#14 +Coalesced (already) [362] level_bcd#83 ← level_bcd#14 +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#83 ← lines_bcd#15 +Coalesced (already) [371] score_bcd#79 ← score_bcd#14 +Coalesced (already) [372] level_bcd#84 ← level_bcd#14 +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 [410] level_bcd#87 ← level_bcd#3 +Coalesced [413] lines_bcd#86 ← lines_bcd#23 +Coalesced [414] score_bcd#82 ← score_bcd#23 +Coalesced [415] level_bcd#89 ← level_bcd#22 +Coalesced (already) [418] level_bcd#86 ← level_bcd#14 +Coalesced (already) [419] lines_bcd#85 ← lines_bcd#15 +Coalesced (already) [420] score_bcd#81 ← score_bcd#14 +Coalesced (already) [421] level_bcd#88 ← level_bcd#14 +Coalesced [424] play_remove_lines::r#10 ← play_remove_lines::r#3 +Coalesced [425] play_remove_lines::w#14 ← play_remove_lines::w#12 +Coalesced [439] play_remove_lines::w#16 ← play_remove_lines::w#2 +Coalesced [440] play_remove_lines::removed#13 ← play_remove_lines::removed#1 +Coalesced [444] play_remove_lines::w#18 ← play_remove_lines::w#11 +Coalesced [450] play_remove_lines::w#19 ← play_remove_lines::w#3 +Coalesced [451] play_remove_lines::r#9 ← play_remove_lines::r#1 +Coalesced [452] play_remove_lines::w#13 ← play_remove_lines::w#11 +Coalesced [453] play_remove_lines::y#9 ← play_remove_lines::y#1 +Coalesced [454] play_remove_lines::removed#12 ← play_remove_lines::removed#7 +Coalesced [455] play_remove_lines::w#17 ← play_remove_lines::w#1 +Coalesced (already) [456] play_remove_lines::removed#14 ← play_remove_lines::removed#11 +Coalesced (already) [457] play_remove_lines::r#11 ← play_remove_lines::r#1 +Coalesced (already) [458] play_remove_lines::w#15 ← play_remove_lines::w#1 +Coalesced [459] play_remove_lines::x#5 ← play_remove_lines::x#1 +Coalesced [460] play_remove_lines::full#5 ← play_remove_lines::full#2 +Coalesced (already) [461] play_remove_lines::full#6 ← play_remove_lines::full#4 +Coalesced [463] play_lock_current::ypos2#7 ← play_lock_current::ypos2#0 +Coalesced [467] play_lock_current::i#8 ← play_lock_current::i#3 +Coalesced [468] play_lock_current::col#5 ← play_lock_current::col#0 +Coalesced [480] play_lock_current::ypos2#8 ← play_lock_current::ypos2#1 +Not coalescing [481] play_lock_current::i#7 ← play_lock_current::i#1 +Coalesced [482] play_lock_current::l#7 ← play_lock_current::l#1 +Not coalescing [483] play_lock_current::i#9 ← play_lock_current::i#1 +Coalesced [484] play_lock_current::col#6 ← play_lock_current::col#1 +Coalesced [485] play_lock_current::c#5 ← play_lock_current::c#1 +Coalesced [495] keyboard_event_get::return#6 ← keyboard_event_get::return#1 +Coalesced [496] keyboard_events_size#83 ← keyboard_events_size#4 +Coalesced [499] keyboard_events_size#82 ← keyboard_events_size#13 +Coalesced [500] keyboard_events_size#84 ← keyboard_events_size#19 +Coalesced [508] keyboard_event_scan::keycode#17 ← keyboard_event_scan::keycode#1 +Coalesced (already) [509] keyboard_events_size#86 ← keyboard_events_size#29 +Coalesced [525] keyboard_modifiers#61 ← keyboard_modifiers#3 +Coalesced [532] keyboard_modifiers#63 ← keyboard_modifiers#4 +Coalesced [540] keyboard_modifiers#64 ← keyboard_modifiers#12 +Coalesced [541] keyboard_modifiers#62 ← keyboard_modifiers#11 +Coalesced [542] keyboard_event_scan::row#15 ← keyboard_event_scan::row#1 +Coalesced [543] keyboard_event_scan::keycode#16 ← keyboard_event_scan::keycode#14 +Coalesced (already) [544] keyboard_events_size#85 ← keyboard_events_size#13 +Coalesced [545] keyboard_event_scan::keycode#19 ← keyboard_event_scan::keycode#11 +Coalesced [546] keyboard_events_size#88 ← keyboard_events_size#29 +Coalesced [556] keyboard_events_size#90 ← keyboard_events_size#2 +Coalesced [562] keyboard_event_scan::keycode#18 ← keyboard_event_scan::keycode#15 +Coalesced [563] keyboard_events_size#87 ← keyboard_events_size#30 +Coalesced [564] keyboard_event_scan::col#9 ← keyboard_event_scan::col#1 +Coalesced (already) [565] keyboard_event_scan::keycode#20 ← keyboard_event_scan::keycode#15 +Coalesced (already) [566] keyboard_events_size#89 ← keyboard_events_size#30 +Coalesced [570] keyboard_events_size#93 ← keyboard_events_size#1 +Coalesced (already) [571] keyboard_events_size#92 ← keyboard_events_size#10 +Coalesced (already) [572] keyboard_events_size#91 ← keyboard_events_size#10 +Coalesced [594] play_init::j#3 ← play_init::j#1 +Coalesced [595] play_init::pli#3 ← play_init::pli#1 +Coalesced [596] play_init::idx#3 ← play_init::idx#1 +Coalesced [621] sprites_init::s#3 ← sprites_init::s#1 +Coalesced [622] sprites_init::xpos#3 ← sprites_init::xpos#1 +Coalesced [646] render_init::i#3 ← render_init::i#1 +Coalesced [647] render_init::li_1#3 ← render_init::li_1#1 +Coalesced [648] render_init::li_2#3 ← render_init::li_2#1 +Coalesced [650] render_screen_original::screen#11 ← render_screen_original::screen#9 +Coalesced [652] render_screen_original::screen#13 ← render_screen_original::screen#8 +Coalesced [653] render_screen_original::cols#10 ← render_screen_original::cols#7 +Coalesced [661] render_screen_original::oscr#8 ← render_screen_original::oscr#4 +Coalesced [662] render_screen_original::screen#15 ← render_screen_original::screen#2 +Coalesced [663] render_screen_original::ocols#8 ← render_screen_original::ocols#4 +Coalesced [664] render_screen_original::cols#12 ← render_screen_original::cols#1 +Coalesced [665] render_screen_original::x#8 ← render_screen_original::x#1 +Coalesced [675] render_screen_original::screen#17 ← render_screen_original::screen#3 +Coalesced [676] render_screen_original::cols#14 ← render_screen_original::cols#2 +Coalesced [677] render_screen_original::x#10 ← render_screen_original::x#2 +Coalesced [688] render_screen_original::screen#12 ← render_screen_original::screen#10 +Coalesced [689] render_screen_original::cols#9 ← render_screen_original::cols#3 +Coalesced [690] render_screen_original::oscr#7 ← render_screen_original::oscr#1 +Coalesced [691] render_screen_original::ocols#7 ← render_screen_original::ocols#1 +Coalesced [692] render_screen_original::y#7 ← render_screen_original::y#1 +Coalesced [693] render_screen_original::screen#18 ← render_screen_original::screen#10 +Coalesced [694] render_screen_original::cols#15 ← render_screen_original::cols#3 +Coalesced [695] render_screen_original::x#11 ← render_screen_original::x#3 +Coalesced (already) [696] render_screen_original::oscr#9 ← render_screen_original::oscr#1 +Coalesced [697] render_screen_original::screen#16 ← render_screen_original::screen#3 +Coalesced (already) [698] render_screen_original::ocols#9 ← render_screen_original::ocols#1 +Coalesced [699] render_screen_original::cols#13 ← render_screen_original::cols#2 +Coalesced [700] render_screen_original::x#9 ← render_screen_original::x#2 +Coalesced (already) [701] render_screen_original::screen#14 ← render_screen_original::screen#2 +Coalesced (already) [702] render_screen_original::cols#11 ← render_screen_original::cols#1 +Coalesced [703] render_screen_original::x#7 ← render_screen_original::x#1 +Coalesced [727] irq_raster_next#24 ← irq_raster_next#2 +Coalesced [733] sprites_irq::raster_next#4 ← sprites_irq::raster_next#1 +Coalesced [738] sprites_irq::raster_next#5 ← sprites_irq::raster_next#0 +Coalesced [744] irq_raster_next#25 ← irq_raster_next#1 +Coalesced down to 86 phi equivalence classes Culled Empty Block (label) main::@33 -Culled Empty Block (label) render_score::@7 +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 @@ -7341,7 +7955,8 @@ 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::@3 +Culled Empty Block (label) play_update_score::@5 +Culled Empty Block (label) play_update_score::@6 Culled Empty Block (label) play_remove_lines::@8 Culled Empty Block (label) play_remove_lines::@20 Culled Empty Block (label) play_remove_lines::@16 @@ -7367,7 +7982,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 @34 +Adding NOP phi() at start of @35 Adding NOP phi() at start of @end Adding NOP phi() at start of main Adding NOP phi() at start of main::@16 @@ -7380,7 +7995,7 @@ Adding NOP phi() at start of main::@23 Adding NOP phi() at start of main::@24 Adding NOP phi() at start of main::@30 Adding NOP phi() at start of main::@31 -Adding NOP phi() at start of render_score::@4 +Adding NOP phi() at start of render_score::@3 Adding NOP phi() at start of play_move_down::@8 Adding NOP phi() at start of play_move_down::@13 Adding NOP phi() at start of play_move_down::@19 @@ -7420,8 +8035,8 @@ FINAL CONTROL FLOW GRAPH }} kickasm(location (const byte*) PLAYFIELD_COLORS_ORIGINAL#0) {{ .import binary "playfield-screen.col" }} - to:@21 -@21: scope:[] from @14 + to:@22 +@22: scope:[] from @14 kickasm(location (const 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++) { @@ -7434,25 +8049,25 @@ FINAL CONTROL FLOW GRAPH } } }} - to:@22 -@22: scope:[] from @21 + to:@23 +@23: scope:[] from @22 [6] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 [7] (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 to:toSpritePtr1 -toSpritePtr1: scope:[] from @22 +toSpritePtr1: scope:[] from @23 [8] phi() - to:@35 -@35: scope:[] from toSpritePtr1 + to:@36 +@36: 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:@34 -@34: scope:[] from @35 + to:@35 +@35: scope:[] from @36 [11] phi() [12] call main to:@end -@end: scope:[] from @34 +@end: scope:[] from @35 [13] phi() -main: scope:[main] from @34 +main: scope:[main] from @35 [14] phi() [15] call sid_rnd_init to:main::@15 @@ -7489,7 +8104,9 @@ main::@21: scope:[main] from main::@20 [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#14 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 1 main::@31/(byte) level_bcd#10 main::@28/(byte) level_bcd#10 ) [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 ) [34] (byte) keyboard_events_size#19 ← phi( main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@31/(byte) keyboard_events_size#16 main::@28/(byte) keyboard_events_size#16 ) [34] (byte) current_piece_char#15 ← phi( main::@21/(byte) current_piece_char#12 main::@31/(byte) current_piece_char#1 main::@28/(byte) current_piece_char#1 ) @@ -7571,848 +8188,903 @@ render_screen_swap::@return: scope:[render_screen_swap] from render_screen_swap to:@return render_score: scope:[render_score] from main::@30 [75] if((byte) render_screen_render#17==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_score::@2 - to:render_score::@4 -render_score::@4: scope:[render_score] from render_score + to:render_score::@3 +render_score::@3: scope:[render_score] from render_score [76] phi() to:render_score::@2 -render_score::@2: scope:[render_score] from render_score render_score::@4 - [77] (byte*) render_score::screen_score_pos#5 ← phi( render_score/(const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(const byte) render_score::SCREEN_SCORE_ROW#0+(const byte) render_score::SCREEN_SCORE_COL#0 render_score::@4/(const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(const byte) render_score::SCREEN_SCORE_ROW#0+(const byte) render_score::SCREEN_SCORE_COL#0 ) - to:render_score::@3 -render_score::@3: scope:[render_score] from render_score::@2 render_score::@3 - [78] (byte*) render_score::screen_score_pos#4 ← phi( render_score::@2/(byte*) render_score::screen_score_pos#5 render_score::@3/(byte*) render_score::screen_score_pos#3 ) - [78] (byte) render_score::b#2 ← phi( render_score::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_score::@3/(byte) render_score::b#1 ) - [79] (byte) render_score::score_byte#0 ← *((const byte*) render_score::score_bytes#0 + (byte) render_score::b#2) - [80] (byte~) render_score::$9 ← (byte) render_score::score_byte#0 & (byte/signed byte/word/signed word/dword/signed dword) 15 - [81] (byte~) render_score::$10 ← (const byte) render_score::ZERO_CHAR#0 + (byte~) render_score::$9 - [82] *((byte*) render_score::screen_score_pos#4) ← (byte~) render_score::$10 - [83] (byte*) render_score::screen_score_pos#2 ← -- (byte*) render_score::screen_score_pos#4 - [84] (byte~) render_score::$11 ← (byte) render_score::score_byte#0 >> (byte/signed byte/word/signed word/dword/signed dword) 4 - [85] (byte~) render_score::$12 ← (const byte) render_score::ZERO_CHAR#0 + (byte~) render_score::$11 - [86] *((byte*) render_score::screen_score_pos#2) ← (byte~) render_score::$12 - [87] (byte*) render_score::screen_score_pos#3 ← -- (byte*) render_score::screen_score_pos#2 - [88] (byte) render_score::b#1 ← ++ (byte) render_score::b#2 - [89] if((byte) render_score::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto render_score::@3 +render_score::@2: scope:[render_score] from render_score render_score::@3 + [77] (byte*) render_score::screen#2 ← phi( render_score/(const byte*) PLAYFIELD_SCREEN_1#0 render_score::@3/(const byte*) PLAYFIELD_SCREEN_2#0 ) + [78] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 + [79] (byte) render_bcd::bcd#0 ← *((const byte*) render_score::score_bytes#0+(byte/signed byte/word/signed word/dword/signed dword) 2) + [80] call render_bcd + to:render_score::@5 +render_score::@5: scope:[render_score] from render_score::@2 + [81] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#2 + [82] (byte) render_bcd::bcd#1 ← *((const byte*) render_score::score_bytes#0+(byte/signed byte/word/signed word/dword/signed dword) 1) + [83] call render_bcd + to:render_score::@6 +render_score::@6: scope:[render_score] from render_score::@5 + [84] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#2 + [85] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes#0) + [86] call render_bcd + to:render_score::@7 +render_score::@7: scope:[render_score] from render_score::@6 + [87] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#11 + [88] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#2 + [89] call render_bcd + to:render_score::@8 +render_score::@8: scope:[render_score] from render_score::@7 + [90] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#11 + [91] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#2 + [92] call render_bcd + 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#10 + [95] call render_bcd to:render_score::@return -render_score::@return: scope:[render_score] from render_score::@3 - [90] return +render_score::@return: scope:[render_score] from render_score::@9 + [96] return + to:@return +render_bcd: scope:[render_bcd] from render_score::@2 render_score::@5 render_score::@6 render_score::@7 render_score::@8 render_score::@9 + [97] (byte) render_bcd::bcd#6 ← phi( render_score::@2/(byte) render_bcd::bcd#0 render_score::@5/(byte) render_bcd::bcd#1 render_score::@6/(byte) render_bcd::bcd#2 render_score::@7/(byte) render_bcd::bcd#3 render_score::@8/(byte) render_bcd::bcd#4 render_score::@9/(byte) render_bcd::bcd#5 ) + [97] (byte) render_bcd::only_low#6 ← phi( render_score::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_score::@5/(byte/signed byte/word/signed word/dword/signed dword) 0 render_score::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 render_score::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 render_score::@8/(byte/signed byte/word/signed word/dword/signed dword) 0 render_score::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [97] (word) render_bcd::offset#6 ← phi( render_score::@2/(const word) render_score::score_offset#0 render_score::@5/(const word) render_score::score_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 2 render_score::@6/(const word) render_score::score_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 4 render_score::@7/(const word) render_score::lines_offset#0 render_score::@8/(const word) render_score::lines_offset#0+(byte/signed byte/word/signed word/dword/signed dword) 1 render_score::@9/(const word) render_score::level_offset#0 ) + [97] (byte*) render_bcd::screen#6 ← phi( render_score::@2/(byte*) render_bcd::screen#0 render_score::@5/(byte*) render_bcd::screen#1 render_score::@6/(byte*) render_bcd::screen#2 render_score::@7/(byte*) render_bcd::screen#3 render_score::@8/(byte*) render_bcd::screen#4 render_score::@9/(byte*) render_bcd::screen#5 ) + [98] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 + [99] if((byte) render_bcd::only_low#6!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_bcd::@1 + to:render_bcd::@2 +render_bcd::@2: scope:[render_bcd] from render_bcd + [100] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 + [101] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$3 + [102] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 + [103] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 + to:render_bcd::@1 +render_bcd::@1: scope:[render_bcd] from render_bcd render_bcd::@2 + [104] (byte*) render_bcd::screen_pos#3 ← phi( render_bcd/(byte*) render_bcd::screen_pos#0 render_bcd::@2/(byte*) render_bcd::screen_pos#2 ) + [105] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [106] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 + [107] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 + [108] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 + to:render_bcd::@return +render_bcd::@return: scope:[render_bcd] from render_bcd::@1 + [109] return to:@return render_current: scope:[render_current] from main::@21 main::@29 - [91] (byte) current_piece_char#64 ← phi( main::@21/(byte~) current_piece_char#90 main::@29/(byte~) current_piece_char#91 ) - [91] (byte*) current_piece_gfx#53 ← phi( main::@21/(byte*~) current_piece_gfx#102 main::@29/(byte*~) current_piece_gfx#103 ) - [91] (byte) current_xpos#47 ← phi( main::@21/(byte~) current_xpos#112 main::@29/(byte~) current_xpos#113 ) - [91] (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 ) - [91] (byte) current_ypos#9 ← phi( main::@21/(byte~) current_ypos#86 main::@29/(byte~) current_ypos#87 ) - [92] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [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 - [93] (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 ) - [93] (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 ) - [93] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@3/(byte) render_current::ypos2#1 ) - [94] if((byte) render_current::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_current::@13 + [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 - [95] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 + [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 - [96] (byte) render_current::i#8 ← phi( render_current::@5/(byte) render_current::i#10 render_current::@7/(byte) render_current::i#1 ) - [97] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [98] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 - [99] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1 + [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 - [100] return + [119] return to:@return render_current::@13: scope:[render_current] from render_current::@1 - [101] 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 + [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 - [102] (byte~) render_current::$5 ← (byte) render_screen_render#30 + (byte) render_current::ypos2#2 - [103] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) - [104] (byte) render_current::xpos#0 ← (byte) current_xpos#47 + [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 - [105] (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 ) - [105] (byte) render_current::xpos#2 ← phi( render_current::@2/(byte) render_current::xpos#0 render_current::@5/(byte) render_current::xpos#1 ) - [105] (byte) render_current::i#4 ← phi( render_current::@2/(byte) render_current::i#3 render_current::@5/(byte) render_current::i#10 ) - [106] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) - [107] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 - [108] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto 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 - [109] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 + [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 - [110] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#64 + [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 - [111] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 - [112] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 - [113] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@4 + [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_playfield: scope:[render_playfield] from main::@13 main::@20 - [114] (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 ) + [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 render_playfield::@1: scope:[render_playfield] from render_playfield render_playfield::@3 - [115] (byte) render_playfield::i#3 ← phi( render_playfield/(const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::i#1 ) - [115] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::l#1 ) - [116] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [117] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 - [118] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) + [134] (byte) render_playfield::i#3 ← phi( render_playfield/(const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::i#1 ) + [134] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::l#1 ) + [135] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [136] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 + [137] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) to:render_playfield::@2 render_playfield::@2: scope:[render_playfield] from render_playfield::@1 render_playfield::@2 - [119] (byte) render_playfield::c#2 ← phi( render_playfield::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@2/(byte) render_playfield::c#1 ) - [119] (byte*) render_playfield::screen_line#2 ← phi( render_playfield::@1/(byte*) render_playfield::screen_line#0 render_playfield::@2/(byte*) render_playfield::screen_line#1 ) - [119] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) - [120] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) - [121] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 - [122] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 - [123] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 - [124] 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 + [138] (byte) render_playfield::c#2 ← phi( render_playfield::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@2/(byte) render_playfield::c#1 ) + [138] (byte*) render_playfield::screen_line#2 ← phi( render_playfield::@1/(byte*) render_playfield::screen_line#0 render_playfield::@2/(byte*) render_playfield::screen_line#1 ) + [138] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) + [139] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) + [140] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 + [141] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 + [142] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 + [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 to:render_playfield::@3 render_playfield::@3: scope:[render_playfield] from render_playfield::@2 - [125] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 - [126] 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 + [144] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 + [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 to:render_playfield::@return render_playfield::@return: scope:[render_playfield] from render_playfield::@3 - [127] return + [146] return to:@return play_move_rotate: scope:[play_move_rotate] from main::@27 - [128] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 + [147] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 to:play_move_rotate::@6 play_move_rotate::@6: scope:[play_move_rotate] from play_move_rotate - [129] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 + [148] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 to:play_move_rotate::@return play_move_rotate::@return: scope:[play_move_rotate] from play_move_rotate::@11 play_move_rotate::@14 play_move_rotate::@6 - [130] (byte*) current_piece_gfx#14 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#3 play_move_rotate::@14/(byte*) current_piece_gfx#1 play_move_rotate::@6/(byte*) current_piece_gfx#1 ) - [130] (byte) current_orientation#19 ← phi( play_move_rotate::@11/(byte) current_orientation#4 play_move_rotate::@14/(byte) current_orientation#14 play_move_rotate::@6/(byte) current_orientation#14 ) - [130] (byte) play_move_rotate::return#1 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [131] return + [149] (byte*) current_piece_gfx#14 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#3 play_move_rotate::@14/(byte*) current_piece_gfx#1 play_move_rotate::@6/(byte*) current_piece_gfx#1 ) + [149] (byte) current_orientation#19 ← phi( play_move_rotate::@11/(byte) current_orientation#4 play_move_rotate::@14/(byte) current_orientation#14 play_move_rotate::@6/(byte) current_orientation#14 ) + [149] (byte) play_move_rotate::return#1 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [150] return to:@return play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6 - [132] (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 - [133] (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 + [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 + [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 to:play_move_rotate::@4 play_move_rotate::@4: scope:[play_move_rotate] from play_move_rotate::@1 play_move_rotate::@2 - [134] (byte) play_move_rotate::orientation#3 ← phi( play_move_rotate::@1/(byte) play_move_rotate::orientation#1 play_move_rotate::@2/(byte) play_move_rotate::orientation#2 ) - [135] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 - [136] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 - [137] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 - [138] (byte*~) current_piece#79 ← (byte*) current_piece#10 - [139] call play_collision - [140] (byte) play_collision::return#13 ← (byte) play_collision::return#14 + [153] (byte) play_move_rotate::orientation#3 ← phi( play_move_rotate::@1/(byte) play_move_rotate::orientation#1 play_move_rotate::@2/(byte) play_move_rotate::orientation#2 ) + [154] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 + [155] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 + [156] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 + [157] (byte*~) current_piece#79 ← (byte*) current_piece#10 + [158] call play_collision + [159] (byte) play_collision::return#13 ← (byte) play_collision::return#14 to:play_move_rotate::@14 play_move_rotate::@14: scope:[play_move_rotate] from play_move_rotate::@4 - [141] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 - [142] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return + [160] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 + [161] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return to:play_move_rotate::@11 play_move_rotate::@11: scope:[play_move_rotate] from play_move_rotate::@14 - [143] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 - [144] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 + [162] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 + [163] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 to:play_move_rotate::@return play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate - [145] (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 - [146] (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 + [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 + [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 to:play_move_rotate::@4 play_collision: scope:[play_collision] from play_move_down::@12 play_move_leftright::@1 play_move_leftright::@7 play_move_rotate::@4 - [147] (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 ) - [147] (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 ) - [147] (byte) play_collision::orientation#4 ← phi( play_move_down::@12/(byte) play_collision::orientation#0 play_move_leftright::@1/(byte) play_collision::orientation#1 play_move_leftright::@7/(byte) play_collision::orientation#2 play_move_rotate::@4/(byte) play_collision::orientation#3 ) - [147] (byte*) current_piece#12 ← phi( play_move_down::@12/(byte*~) current_piece#76 play_move_leftright::@1/(byte*~) current_piece#77 play_move_leftright::@7/(byte*~) current_piece#78 play_move_rotate::@4/(byte*~) current_piece#79 ) - [148] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 - [149] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [166] (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 ) + [166] (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 ) + [166] (byte) play_collision::orientation#4 ← phi( play_move_down::@12/(byte) play_collision::orientation#0 play_move_leftright::@1/(byte) play_collision::orientation#1 play_move_leftright::@7/(byte) play_collision::orientation#2 play_move_rotate::@4/(byte) play_collision::orientation#3 ) + [166] (byte*) current_piece#12 ← phi( play_move_down::@12/(byte*~) current_piece#76 play_move_leftright::@1/(byte*~) current_piece#77 play_move_leftright::@7/(byte*~) current_piece#78 play_move_rotate::@4/(byte*~) current_piece#79 ) + [167] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 + [168] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_collision::@1 play_collision::@1: scope:[play_collision] from play_collision play_collision::@20 - [150] (byte) play_collision::l#6 ← phi( play_collision/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@20/(byte) play_collision::l#1 ) - [150] (byte) play_collision::i#3 ← phi( play_collision/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@20/(byte~) play_collision::i#11 ) - [150] (byte) play_collision::ypos2#2 ← phi( play_collision/(byte) play_collision::ypos2#0 play_collision::@20/(byte) play_collision::ypos2#1 ) - [151] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) - [152] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 + [169] (byte) play_collision::l#6 ← phi( play_collision/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@20/(byte) play_collision::l#1 ) + [169] (byte) play_collision::i#3 ← phi( play_collision/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@20/(byte~) play_collision::i#11 ) + [169] (byte) play_collision::ypos2#2 ← phi( play_collision/(byte) play_collision::ypos2#0 play_collision::@20/(byte) play_collision::ypos2#1 ) + [170] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) + [171] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 to:play_collision::@2 play_collision::@2: scope:[play_collision] from play_collision::@1 play_collision::@21 - [153] (byte) play_collision::c#2 ← phi( play_collision::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@21/(byte) play_collision::c#1 ) - [153] (byte) play_collision::col#2 ← phi( play_collision::@1/(byte~) play_collision::col#9 play_collision::@21/(byte) play_collision::col#1 ) - [153] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@21/(byte~) play_collision::i#13 ) - [154] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 - [155] 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 + [172] (byte) play_collision::c#2 ← phi( play_collision::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@21/(byte) play_collision::c#1 ) + [172] (byte) play_collision::col#2 ← phi( play_collision::@1/(byte~) play_collision::col#9 play_collision::@21/(byte) play_collision::col#1 ) + [172] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@21/(byte~) play_collision::i#13 ) + [173] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 + [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 to:play_collision::@8 play_collision::@8: scope:[play_collision] from play_collision::@2 - [156] 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 + [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 to:play_collision::@return play_collision::@return: scope:[play_collision] from play_collision::@17 play_collision::@4 play_collision::@5 play_collision::@6 play_collision::@8 - [157] (byte) play_collision::return#14 ← phi( play_collision::@4/(const byte) COLLISION_LEFT#0 play_collision::@5/(const byte) COLLISION_RIGHT#0 play_collision::@6/(const byte) COLLISION_PLAYFIELD#0 play_collision::@17/(const byte) COLLISION_NONE#0 play_collision::@8/(const byte) COLLISION_BOTTOM#0 ) - [158] return + [176] (byte) play_collision::return#14 ← phi( play_collision::@4/(const byte) COLLISION_LEFT#0 play_collision::@5/(const byte) COLLISION_RIGHT#0 play_collision::@6/(const byte) COLLISION_PLAYFIELD#0 play_collision::@17/(const byte) COLLISION_NONE#0 play_collision::@8/(const byte) COLLISION_BOTTOM#0 ) + [177] return to:@return play_collision::@4: scope:[play_collision] from play_collision::@8 - [159] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 - [160] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 + [178] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 + [179] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 to:play_collision::@return play_collision::@5: scope:[play_collision] from play_collision::@4 - [161] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 + [180] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 to:play_collision::@return play_collision::@6: scope:[play_collision] from play_collision::@5 - [162] 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 + [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 to:play_collision::@return play_collision::@3: scope:[play_collision] from play_collision::@2 play_collision::@6 - [163] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 - [164] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 - [165] if((byte) play_collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@21 + [182] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 + [183] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 + [184] if((byte) play_collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@21 to:play_collision::@17 play_collision::@17: scope:[play_collision] from play_collision::@3 - [166] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [167] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 - [168] if((byte) play_collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@20 + [185] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [186] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 + [187] if((byte) play_collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@20 to:play_collision::@return play_collision::@20: scope:[play_collision] from play_collision::@17 - [169] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 + [188] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 to:play_collision::@1 play_collision::@21: scope:[play_collision] from play_collision::@3 - [170] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 + [189] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 to:play_collision::@2 play_move_leftright: scope:[play_move_leftright] from main::@26 - [171] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 + [190] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 to:play_move_leftright::@6 play_move_leftright::@6: scope:[play_move_leftright] from play_move_leftright - [172] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return + [191] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return to:play_move_leftright::@7 play_move_leftright::@7: scope:[play_move_leftright] from play_move_leftright::@6 - [173] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [174] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 - [175] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 - [176] (byte*~) current_piece#78 ← (byte*) current_piece#10 - [177] call play_collision - [178] (byte) play_collision::return#12 ← (byte) play_collision::return#14 + [192] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [193] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 + [194] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 + [195] (byte*~) current_piece#78 ← (byte*) current_piece#10 + [196] call play_collision + [197] (byte) play_collision::return#12 ← (byte) play_collision::return#14 to:play_move_leftright::@15 play_move_leftright::@15: scope:[play_move_leftright] from play_move_leftright::@7 - [179] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 - [180] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [198] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 + [199] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return to:play_move_leftright::@8 play_move_leftright::@8: scope:[play_move_leftright] from play_move_leftright::@15 - [181] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 + [200] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 to:play_move_leftright::@return play_move_leftright::@return: scope:[play_move_leftright] from play_move_leftright::@11 play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 play_move_leftright::@8 - [182] (byte) current_xpos#19 ← phi( play_move_leftright::@11/(byte) current_xpos#4 play_move_leftright::@15/(byte) current_xpos#1 play_move_leftright::@8/(byte) current_xpos#2 play_move_leftright::@14/(byte) current_xpos#1 play_move_leftright::@6/(byte) current_xpos#1 ) - [182] (byte) play_move_leftright::return#1 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [183] return + [201] (byte) current_xpos#19 ← phi( play_move_leftright::@11/(byte) current_xpos#4 play_move_leftright::@15/(byte) current_xpos#1 play_move_leftright::@8/(byte) current_xpos#2 play_move_leftright::@14/(byte) current_xpos#1 play_move_leftright::@6/(byte) current_xpos#1 ) + [201] (byte) play_move_leftright::return#1 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [202] return to:@return play_move_leftright::@1: scope:[play_move_leftright] from play_move_leftright - [184] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 - [185] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 - [186] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 - [187] (byte*~) current_piece#77 ← (byte*) current_piece#10 - [188] call play_collision - [189] (byte) play_collision::return#1 ← (byte) play_collision::return#14 + [203] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [204] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 + [205] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 + [206] (byte*~) current_piece#77 ← (byte*) current_piece#10 + [207] call play_collision + [208] (byte) play_collision::return#1 ← (byte) play_collision::return#14 to:play_move_leftright::@14 play_move_leftright::@14: scope:[play_move_leftright] from play_move_leftright::@1 - [190] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 - [191] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [209] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + [210] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return to:play_move_leftright::@11 play_move_leftright::@11: scope:[play_move_leftright] from play_move_leftright::@14 - [192] (byte) current_xpos#4 ← -- (byte) current_xpos#1 + [211] (byte) current_xpos#4 ← -- (byte) current_xpos#1 to:play_move_leftright::@return play_move_down: scope:[play_move_down] from main::@25 - [193] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 - [194] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 + [212] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 + [213] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 to:play_move_down::@8 play_move_down::@8: scope:[play_move_down] from play_move_down - [195] phi() + [214] phi() to:play_move_down::@1 play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down::@8 - [196] (byte) play_move_down::movedown#10 ← phi( play_move_down/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [197] call keyboard_event_pressed - [198] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + [215] (byte) play_move_down::movedown#10 ← phi( play_move_down/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [216] call keyboard_event_pressed + [217] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 to:play_move_down::@17 play_move_down::@17: scope:[play_move_down] from play_move_down::@1 - [199] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 - [200] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 + [218] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + [219] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 to:play_move_down::@9 play_move_down::@9: scope:[play_move_down] from play_move_down::@17 - [201] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 + [220] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 to:play_move_down::@10 play_move_down::@10: scope:[play_move_down] from play_move_down::@9 - [202] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 + [221] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 to:play_move_down::@2 play_move_down::@2: scope:[play_move_down] from play_move_down::@10 play_move_down::@17 play_move_down::@9 - [203] (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 ) - [204] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 + [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 to:play_move_down::@11 play_move_down::@11: scope:[play_move_down] from play_move_down::@2 - [205] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 + [224] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 to:play_move_down::@4 play_move_down::@4: scope:[play_move_down] from play_move_down::@11 play_move_down::@2 - [206] (byte) play_move_down::movedown#6 ← phi( play_move_down::@11/(byte) play_move_down::movedown#3 play_move_down::@2/(byte) play_move_down::movedown#7 ) - [207] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return + [225] (byte) play_move_down::movedown#6 ← phi( play_move_down::@11/(byte) play_move_down::movedown#3 play_move_down::@2/(byte) play_move_down::movedown#7 ) + [226] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return to:play_move_down::@12 play_move_down::@12: scope:[play_move_down] from play_move_down::@4 - [208] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [209] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 - [210] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 - [211] (byte*~) current_piece#76 ← (byte*) current_piece#16 - [212] call play_collision - [213] (byte) play_collision::return#0 ← (byte) play_collision::return#14 + [227] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [228] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 + [229] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 + [230] (byte*~) current_piece#76 ← (byte*) current_piece#16 + [231] call play_collision + [232] (byte) play_collision::return#0 ← (byte) play_collision::return#14 to:play_move_down::@18 play_move_down::@18: scope:[play_move_down] from play_move_down::@12 - [214] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 - [215] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 + [233] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + [234] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 to:play_move_down::@13 play_move_down::@13: scope:[play_move_down] from play_move_down::@18 - [216] phi() - [217] call play_lock_current + [235] phi() + [236] call play_lock_current to:play_move_down::@19 play_move_down::@19: scope:[play_move_down] from play_move_down::@13 - [218] phi() - [219] call play_remove_lines - [220] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 + [237] phi() + [238] call play_remove_lines + [239] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 to:play_move_down::@20 play_move_down::@20: scope:[play_move_down] from play_move_down::@19 - [221] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 - [222] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 - [223] call play_update_score + [240] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 + [241] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 + [242] call play_update_score to:play_move_down::@21 play_move_down::@21: scope:[play_move_down] from play_move_down::@20 - [224] phi() - [225] call play_spawn_current - [226] (byte*~) current_piece#80 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + [243] phi() + [244] call play_spawn_current + [245] (byte*~) current_piece#80 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) to:play_move_down::@7 play_move_down::@7: scope:[play_move_down] from play_move_down::@21 play_move_down::@6 - [227] (byte) current_piece_char#20 ← phi( play_move_down::@21/(byte) current_piece_char#12 play_move_down::@6/(byte) current_piece_char#15 ) - [227] (byte) current_xpos#33 ← phi( play_move_down::@21/(byte) current_xpos#23 play_move_down::@6/(byte) current_xpos#10 ) - [227] (byte*) current_piece_gfx#26 ← phi( play_move_down::@21/(byte*) current_piece_gfx#16 play_move_down::@6/(byte*) current_piece_gfx#20 ) - [227] (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 ) - [227] (byte*) current_piece#20 ← phi( play_move_down::@21/(byte*~) current_piece#80 play_move_down::@6/(byte*) current_piece#16 ) - [227] (dword) score_bcd#20 ← phi( play_move_down::@21/(dword) score_bcd#12 play_move_down::@6/(dword) score_bcd#14 ) - [227] (byte) current_ypos#29 ← phi( play_move_down::@21/(byte) current_ypos#18 play_move_down::@6/(byte) current_ypos#0 ) + [246] (byte) current_piece_char#20 ← phi( play_move_down::@21/(byte) current_piece_char#12 play_move_down::@6/(byte) current_piece_char#15 ) + [246] (byte) current_xpos#33 ← phi( play_move_down::@21/(byte) current_xpos#23 play_move_down::@6/(byte) current_xpos#10 ) + [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#19 ← phi( play_move_down::@21/(byte) level_bcd#12 play_move_down::@6/(byte) level_bcd#14 ) + [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 ) to:play_move_down::@return play_move_down::@return: scope:[play_move_down] from play_move_down::@4 play_move_down::@7 - [228] (byte) current_piece_char#1 ← phi( play_move_down::@4/(byte) current_piece_char#15 play_move_down::@7/(byte) current_piece_char#20 ) - [228] (byte) current_xpos#1 ← phi( play_move_down::@4/(byte) current_xpos#10 play_move_down::@7/(byte) current_xpos#33 ) - [228] (byte*) current_piece_gfx#1 ← phi( play_move_down::@4/(byte*) current_piece_gfx#20 play_move_down::@7/(byte*) current_piece_gfx#26 ) - [228] (byte) current_orientation#14 ← phi( play_move_down::@4/(byte) current_orientation#10 play_move_down::@7/(byte) current_orientation#29 ) - [228] (byte*) current_piece#10 ← phi( play_move_down::@4/(byte*) current_piece#16 play_move_down::@7/(byte*) current_piece#20 ) - [228] (dword) score_bcd#10 ← phi( play_move_down::@4/(dword) score_bcd#14 play_move_down::@7/(dword) score_bcd#20 ) - [228] (byte) current_ypos#13 ← phi( play_move_down::@4/(byte) current_ypos#21 play_move_down::@7/(byte) current_ypos#29 ) - [228] (byte) current_movedown_counter#10 ← phi( play_move_down::@4/(byte) current_movedown_counter#1 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [228] (byte) play_move_down::return#2 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [229] return + [247] (byte) current_piece_char#1 ← phi( play_move_down::@4/(byte) current_piece_char#15 play_move_down::@7/(byte) current_piece_char#20 ) + [247] (byte) current_xpos#1 ← phi( play_move_down::@4/(byte) current_xpos#10 play_move_down::@7/(byte) current_xpos#33 ) + [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#10 ← phi( play_move_down::@4/(byte) level_bcd#14 play_move_down::@7/(byte) level_bcd#19 ) + [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 ) + [247] (byte) current_movedown_counter#10 ← phi( play_move_down::@4/(byte) current_movedown_counter#1 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [247] (byte) play_move_down::return#2 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [248] return to:@return play_move_down::@6: scope:[play_move_down] from play_move_down::@18 - [230] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 + [249] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 to:play_move_down::@7 play_spawn_current: scope:[play_spawn_current] from main::@19 play_move_down::@21 - [231] phi() + [250] phi() to:play_spawn_current::@1 play_spawn_current::@1: scope:[play_spawn_current] from play_spawn_current play_spawn_current::@7 - [232] (byte) play_spawn_current::piece_idx#2 ← phi( play_spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 7 play_spawn_current::@7/(byte) play_spawn_current::piece_idx#1 ) - [233] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 + [251] (byte) play_spawn_current::piece_idx#2 ← phi( play_spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 7 play_spawn_current::@7/(byte) play_spawn_current::piece_idx#1 ) + [252] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 to:play_spawn_current::@3 play_spawn_current::@3: scope:[play_spawn_current] from play_spawn_current::@1 - [234] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [235] (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 - [236] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) - [237] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) - [238] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) + [253] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [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 + [255] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) + [256] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) + [257] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) to:play_spawn_current::@return play_spawn_current::@return: scope:[play_spawn_current] from play_spawn_current::@3 - [239] return + [258] return to:@return play_spawn_current::@2: scope:[play_spawn_current] from play_spawn_current::@1 - [240] phi() - [241] call sid_rnd - [242] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + [259] phi() + [260] call sid_rnd + [261] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 to:play_spawn_current::@7 play_spawn_current::@7: scope:[play_spawn_current] from play_spawn_current::@2 - [243] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 - [244] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [262] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 + [263] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 to:play_spawn_current::@1 sid_rnd: scope:[sid_rnd] from play_spawn_current::@2 - [245] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) + [264] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) to:sid_rnd::@return sid_rnd::@return: scope:[sid_rnd] from sid_rnd - [246] return + [265] return to:@return play_update_score: scope:[play_update_score] from play_move_down::@20 - [247] 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::@2 -play_update_score::@2: scope:[play_update_score] from play_update_score - [248] (byte~) play_update_score::$2 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 - [249] (dword) play_update_score::add_bcd#0 ← *((const dword[]) score_add_bcd#0 + (byte~) play_update_score::$2) + [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::@3 +play_update_score::@3: scope:[play_update_score] from play_update_score + [267] (byte~) play_update_score::$2 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 + [268] (dword) play_update_score::add_bcd#0 ← *((const dword[]) score_add_bcd#0 + (byte~) play_update_score::$2) + [269] (byte~) play_update_score::$3 ← < (word) lines_bcd#15 + [270] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$3 & (byte/word/signed word/dword/signed dword) 240 asm { sed } - [251] (dword) score_bcd#3 ← (dword) score_bcd#14 + (dword) play_update_score::add_bcd#0 + [272] (word) lines_bcd#23 ← (word) lines_bcd#15 + (byte) play_update_score::removed#0 + [273] (dword) score_bcd#23 ← (dword) score_bcd#14 + (dword) play_update_score::add_bcd#0 + [274] (byte~) play_update_score::$5 ← < (word) lines_bcd#23 + [275] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 + [276] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@2 + to:play_update_score::@4 +play_update_score::@4: scope:[play_update_score] from play_update_score::@3 + [277] (byte) level_bcd#3 ← (byte) level_bcd#14 + (byte/signed byte/word/signed word/dword/signed dword) 1 + to:play_update_score::@2 +play_update_score::@2: scope:[play_update_score] from play_update_score::@3 play_update_score::@4 + [278] (byte) level_bcd#22 ← phi( play_update_score::@3/(byte) level_bcd#14 play_update_score::@4/(byte) level_bcd#3 ) asm { cld } to:play_update_score::@return play_update_score::@return: scope:[play_update_score] from play_update_score play_update_score::@2 - [253] (dword) score_bcd#12 ← phi( play_update_score/(dword) score_bcd#14 play_update_score::@2/(dword) score_bcd#3 ) - [254] return + [280] (byte) level_bcd#12 ← phi( play_update_score/(byte) level_bcd#14 play_update_score::@2/(byte) level_bcd#22 ) + [280] (dword) score_bcd#12 ← phi( play_update_score/(dword) score_bcd#14 play_update_score::@2/(dword) score_bcd#23 ) + [280] (word) lines_bcd#13 ← phi( play_update_score/(word) lines_bcd#15 play_update_score::@2/(word) lines_bcd#23 ) + [281] return to:@return play_remove_lines: scope:[play_remove_lines] from play_move_down::@19 - [255] phi() + [282] phi() to:play_remove_lines::@1 play_remove_lines::@1: scope:[play_remove_lines] from play_remove_lines play_remove_lines::@4 - [256] (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 ) - [256] (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 ) - [256] (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 ) - [256] (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 ) + [283] (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 ) + [283] (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 ) + [283] (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 ) + [283] (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 - [257] (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 ) - [257] (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 ) - [257] (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 ) - [257] (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 ) - [258] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) - [259] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 - [260] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@18 + [284] (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 ) + [284] (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 ) + [284] (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 ) + [284] (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 ) + [285] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) + [286] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 + [287] 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 - [261] (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 ) - [262] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 - [263] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 - [264] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 - [265] 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 + [288] (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 ) + [289] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 + [290] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 + [291] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 + [292] 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 - [266] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 + [293] 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 - [267] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 - [268] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 + [294] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 + [295] (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 - [269] (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 ) - [269] (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 ) - [270] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 - [271] 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 + [296] (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 ) + [296] (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 ) + [297] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 + [298] 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 - [272] (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 ) - [273] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 + [299] (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 ) + [300] 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 - [274] return + [301] return to:@return play_remove_lines::@6: scope:[play_remove_lines] from play_remove_lines::@5 - [275] *((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 - [276] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 + [302] *((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 + [303] (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 - [277] phi() + [304] phi() to:play_remove_lines::@3 play_lock_current: scope:[play_lock_current] from play_move_down::@13 - [278] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [305] (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 - [279] (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 ) - [279] (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 ) - [279] (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 ) - [280] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) - [281] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 + [306] (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 ) + [306] (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 ) + [306] (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 ) + [307] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) + [308] (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 - [282] (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 ) - [282] (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 ) - [282] (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 ) - [283] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 - [284] 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 + [309] (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 ) + [309] (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 ) + [309] (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 ) + [310] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 + [311] 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 - [285] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 + [312] *((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 - [286] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 - [287] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 - [288] if((byte) play_lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@8 + [313] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 + [314] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 + [315] 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 - [289] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [290] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 - [291] if((byte) play_lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@7 + [316] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [317] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 + [318] 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 - [292] return + [319] return to:@return play_lock_current::@7: scope:[play_lock_current] from play_lock_current::@5 - [293] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 + [320] (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 - [294] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 + [321] (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 - [295] (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 ) - [296] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 - [297] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) - [298] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 - [299] (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) + [322] (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 ) + [323] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 + [324] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) + [325] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [326] (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 - [300] return + [327] return to:@return keyboard_event_get: scope:[keyboard_event_get] from main::@24 - [301] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return + [328] 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 - [302] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 - [303] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) + [329] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 + [330] (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 - [304] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) - [304] (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 ) - [305] return + [331] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) + [331] (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 ) + [332] return to:@return keyboard_event_scan: scope:[keyboard_event_scan] from main::@23 - [306] phi() + [333] phi() to:keyboard_event_scan::@1 keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@3 - [307] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) - [307] (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 ) - [307] (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 ) - [308] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 - [309] call keyboard_matrix_read - [310] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + [334] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) + [334] (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 ) + [334] (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 ) + [335] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 + [336] call keyboard_matrix_read + [337] (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 - [311] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 - [312] 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 + [338] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 + [339] 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 - [313] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 + [340] (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 - [314] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) - [314] (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 ) - [315] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 - [316] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 + [341] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) + [341] (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 ) + [342] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 + [343] 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 - [317] phi() - [318] call keyboard_event_pressed - [319] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + [344] phi() + [345] call keyboard_event_pressed + [346] (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 - [320] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 - [321] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 + [347] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + [348] 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 - [322] phi() + [349] phi() to:keyboard_event_scan::@9 keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@21 keyboard_event_scan::@26 - [323] (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 ) - [324] call keyboard_event_pressed - [325] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + [350] (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 ) + [351] call keyboard_event_pressed + [352] (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 - [326] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 - [327] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 + [353] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + [354] 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 - [328] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 + [355] (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 - [329] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) - [330] call keyboard_event_pressed - [331] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + [356] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) + [357] call keyboard_event_pressed + [358] (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 - [332] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 - [333] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 + [359] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + [360] 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 - [334] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 + [361] (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 - [335] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) - [336] call keyboard_event_pressed - [337] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + [362] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) + [363] call keyboard_event_pressed + [364] (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 - [338] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 - [339] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return + [365] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + [366] 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 - [340] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 + [367] (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 - [341] return + [368] return to:@return keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@25 keyboard_event_scan::@5 - [342] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) - [342] (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 ) - [342] (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 ) - [343] (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) - [344] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) - [345] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 + [369] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) + [369] (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 ) + [369] (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 ) + [370] (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) + [371] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) + [372] 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 - [346] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 + [373] 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 - [347] (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) - [348] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 + [374] (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) + [375] 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 - [349] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 - [350] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 + [376] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 + [377] (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 - [351] (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 ) - [352] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 - [353] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 - [354] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 + [378] (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 ) + [379] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 + [380] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 + [381] 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 - [355] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 + [382] *((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 - [356] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 - [357] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 - [358] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 + [383] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 + [384] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 + [385] (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 - [359] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) - [360] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) + [386] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) + [387] (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 - [361] return + [388] return to:@return render_show: scope:[render_show] from main::@6 - [362] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 + [389] 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 - [363] phi() + [390] phi() to:render_show::@2 render_show::@2: scope:[render_show] from render_show::toD0181 render_show::toD0182 - [364] (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 ) - [365] *((const byte*) D018#0) ← (byte) render_show::d018val#3 - [366] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 + [391] (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 ) + [392] *((const byte*) D018#0) ← (byte) render_show::d018val#3 + [393] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 to:render_show::@return render_show::@return: scope:[render_show] from render_show::@2 - [367] return + [394] return to:@return render_show::toD0181: scope:[render_show] from render_show - [368] phi() + [395] phi() to:render_show::@2 play_init: scope:[play_init] from main::@18 - [369] phi() + [396] phi() to:play_init::@1 play_init::@1: scope:[play_init] from play_init play_init::@1 - [370] (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 ) - [370] (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 ) - [370] (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 ) - [371] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [372] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 - [373] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 - [374] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 - [375] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 - [376] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 - [377] 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 + [397] (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 ) + [397] (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 ) + [397] (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 ) + [398] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [399] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 + [400] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 + [401] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 + [402] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 + [403] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 + [404] 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 - [378] *((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 + [405] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 to:play_init::@return play_init::@return: scope:[play_init] from play_init::@2 - [379] return + [406] return to:@return sprites_irq_init: scope:[sprites_irq_init] from main::@17 asm { sei } - [381] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 + [408] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 asm { ldaCIA1_INTERRUPT } - [383] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 - [384] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 - [385] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [386] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 - [387] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 - [388] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 - [389] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() + [410] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 + [411] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 + [412] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 + [413] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 + [414] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 + [415] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 + [416] *((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 - [391] return + [418] return to:@return sprites_init: scope:[sprites_init] from main::@16 - [392] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 - [393] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [394] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) - [395] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) + [419] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + [420] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [421] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) + [422] *((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 - [396] (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 ) - [396] (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 ) - [397] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [398] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 - [399] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 - [400] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 - [401] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 - [402] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 + [423] (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 ) + [423] (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 ) + [424] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [425] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 + [426] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 + [427] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 + [428] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 + [429] 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 - [403] return + [430] return to:@return render_init: scope:[render_init] from main::@15 - [404] phi() + [431] phi() to:render_init::vicSelectGfxBank1 render_init::vicSelectGfxBank1: scope:[render_init] from render_init - [405] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [432] *((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 - [406] phi() + [433] phi() to:render_init::vicSelectGfxBank1_@1 render_init::vicSelectGfxBank1_@1: scope:[render_init] from render_init::vicSelectGfxBank1_toDd001 - [407] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 + [434] *((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 - [408] *((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 - [409] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 - [410] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 - [411] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 - [412] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 - [413] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 - [414] call render_screen_original + [435] *((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 + [436] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 + [437] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 + [438] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 + [439] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 + [440] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 + [441] call render_screen_original to:render_init::@4 render_init::@4: scope:[render_init] from render_init::@3 - [415] phi() - [416] call render_screen_original + [442] phi() + [443] call render_screen_original to:render_init::@1 render_init::@1: scope:[render_init] from render_init::@1 render_init::@4 - [417] (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 ) - [417] (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 ) - [417] (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 ) - [418] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [419] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 - [420] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [421] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 - [422] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [423] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [424] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 - [425] 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 + [444] (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 ) + [444] (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 ) + [444] (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 ) + [445] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [446] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 + [447] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [448] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 + [449] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [450] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [451] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 + [452] 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 - [426] return + [453] return to:@return render_screen_original: scope:[render_screen_original] from render_init::@3 render_init::@4 - [427] (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 ) + [454] (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 - [428] (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 ) - [428] (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 ) - [428] (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 ) - [428] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS#0 render_screen_original::@7/(byte*) render_screen_original::cols#3 ) - [428] (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 ) + [455] (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 ) + [455] (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 ) + [455] (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 ) + [455] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS#0 render_screen_original::@7/(byte*) render_screen_original::cols#3 ) + [455] (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 - [429] (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 ) - [429] (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 ) - [429] (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 ) - [430] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 - [431] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 - [432] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 - [433] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 - [434] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 - [435] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 + [456] (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 ) + [456] (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 ) + [456] (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 ) + [457] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 + [458] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 + [459] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 + [460] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 + [461] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 + [462] 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 - [436] (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 ) - [436] (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 ) - [436] (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 ) - [436] (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 ) - [436] (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 ) - [437] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) - [438] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 - [439] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 - [440] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) - [441] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 - [442] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 - [443] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 - [444] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 + [463] (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 ) + [463] (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 ) + [463] (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 ) + [463] (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 ) + [463] (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 ) + [464] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) + [465] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 + [466] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 + [467] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) + [468] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 + [469] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 + [470] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 + [471] 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 - [445] (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 ) - [445] (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 ) - [445] (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 ) - [446] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 - [447] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 - [448] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 - [449] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 - [450] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 - [451] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 + [472] (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 ) + [472] (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 ) + [472] (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 ) + [473] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 + [474] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 + [475] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 + [476] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 + [477] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 + [478] 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 - [452] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 - [453] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 + [479] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 + [480] 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 - [454] return + [481] return to:@return sid_rnd_init: scope:[sid_rnd_init] from main - [455] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 - [456] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 + [482] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 + [483] *((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 - [457] return + [484] return to:@return sprites_irq: scope:[sprites_irq] from asm { cld } - [459] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 - [460] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 - [461] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 - [462] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 - [463] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 + [486] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 + [487] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 + [488] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 + [489] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 + [490] *((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 - [464] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 + [491] 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 - [465] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 - [466] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 + [492] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 + [493] 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 - [467] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 - [468] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 - [469] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 - [470] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 - [471] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 - [472] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 + [494] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 + [495] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 + [496] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 + [497] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 + [498] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 + [499] *((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 - [473] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 - [474] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 + [500] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 + [501] 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 - [475] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [476] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [477] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 + [502] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [503] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [504] (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 - [478] (byte) irq_raster_next#13 ← phi( sprites_irq::@10/(byte) irq_raster_next#2 sprites_irq::@13/(byte) irq_raster_next#1 ) - [479] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 - [480] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 - [481] if((byte~) sprites_irq::$4!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto sprites_irq::@6 + [505] (byte) irq_raster_next#13 ← phi( sprites_irq::@10/(byte) irq_raster_next#2 sprites_irq::@13/(byte) irq_raster_next#1 ) + [506] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 + [507] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [508] 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 - [482] (byte) sprites_irq::raster_next#1 ← (byte) sprites_irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [509] (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 - [483] (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 ) - [484] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 - [485] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 + [510] (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 ) + [511] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 + [512] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 to:sprites_irq::@return sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@6 - [486] return + [513] return to:@return sprites_irq::@4: scope:[sprites_irq] from sprites_irq::@3 - [487] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [488] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 - [489] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 + [514] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [515] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 + [516] (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 - [490] phi() + [517] phi() to:sprites_irq::@13 sprites_irq::@13: scope:[sprites_irq] from sprites_irq::toSpritePtr2 - [491] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 + [518] (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 - [492] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 - [493] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 - [494] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 - [495] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 - [496] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 - [497] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 + [519] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 + [520] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 + [521] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 + [522] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 + [523] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 + [524] *((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 @@ -8756,6 +9428,19 @@ VARIABLE REGISTER WEIGHTS (byte) keyboard_modifiers#4 4.0 (byte) keyboard_modifiers#5 20.0 (byte[8]) keyboard_scan_values +(byte) level_bcd +(byte) level_bcd#10 2.313725490196078 +(byte) level_bcd#12 1.0 +(byte) level_bcd#14 2.30188679245283 +(byte) level_bcd#19 6.0 +(byte) level_bcd#22 3.0 +(byte) level_bcd#3 4.0 +(word) lines_bcd +(word) lines_bcd#11 2.352941176470588 +(word) lines_bcd#13 1.0 +(word) lines_bcd#15 2.5416666666666656 +(word) lines_bcd#20 6.0 +(word) lines_bcd#23 0.75 (void()) main() (byte~) main::$12 202.0 (byte~) main::$13 202.0 @@ -8925,13 +9610,50 @@ VARIABLE REGISTER WEIGHTS (byte) play_spawn_current::piece_idx#2 334.99999999999994 (void()) play_update_score((byte) play_update_score::removed) (byte~) play_update_score::$2 4.0 +(byte~) play_update_score::$3 4.0 +(byte~) play_update_score::$5 4.0 (dword) play_update_score::add_bcd -(dword) play_update_score::add_bcd#0 2.0 +(dword) play_update_score::add_bcd#0 0.8 +(byte) play_update_score::lines_after +(byte) play_update_score::lines_after#0 4.0 +(byte) play_update_score::lines_before +(byte) play_update_score::lines_before#0 0.6666666666666666 (byte) play_update_score::removed -(byte) play_update_score::removed#0 3.0 +(byte) play_update_score::removed#0 1.1428571428571428 (byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield (byte*[PLAYFIELD_LINES#0]) playfield_lines (byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx +(void()) render_bcd((byte*) render_bcd::screen , (word) render_bcd::offset , (byte) render_bcd::bcd , (byte) render_bcd::only_low) +(byte~) render_bcd::$3 4.0 +(byte~) render_bcd::$4 4.0 +(byte~) render_bcd::$5 4.0 +(byte~) render_bcd::$6 4.0 +(byte) render_bcd::ZERO_CHAR +(byte) render_bcd::bcd +(byte) render_bcd::bcd#0 4.0 +(byte) render_bcd::bcd#1 4.0 +(byte) render_bcd::bcd#2 4.0 +(byte) render_bcd::bcd#3 2.0 +(byte) render_bcd::bcd#4 2.0 +(byte) render_bcd::bcd#5 4.0 +(byte) render_bcd::bcd#6 2.0 +(word) render_bcd::offset +(word) render_bcd::offset#6 2.0 +(byte) render_bcd::only_low +(byte) render_bcd::only_low#6 1.0 +(byte*) render_bcd::screen +(byte*) render_bcd::screen#0 2.0 +(byte*) render_bcd::screen#1 2.0 +(byte*) render_bcd::screen#2 2.0 +(byte*) render_bcd::screen#3 4.0 +(byte*) render_bcd::screen#4 4.0 +(byte*) render_bcd::screen#5 2.0 +(byte*) render_bcd::screen#6 14.0 +(byte*) render_bcd::screen_pos +(byte*) render_bcd::screen_pos#0 1.6 +(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 @@ -8996,24 +9718,12 @@ VARIABLE REGISTER WEIGHTS (byte*) render_playfield::screen_line#1 500.5 (byte*) render_playfield::screen_line#2 1552.0 (void()) render_score() -(byte~) render_score::$10 202.0 -(byte~) render_score::$11 202.0 -(byte~) render_score::$12 202.0 -(byte~) render_score::$9 202.0 -(byte) render_score::SCREEN_SCORE_COL -(byte) render_score::SCREEN_SCORE_ROW -(byte) render_score::ZERO_CHAR -(byte) render_score::b -(byte) render_score::b#1 151.5 -(byte) render_score::b#2 30.299999999999997 -(byte) render_score::score_byte -(byte) render_score::score_byte#0 60.599999999999994 +(word) render_score::level_offset +(word) render_score::lines_offset (byte*) render_score::score_bytes -(byte*) render_score::screen_score_pos -(byte*) render_score::screen_score_pos#2 75.75 -(byte*) render_score::screen_score_pos#3 67.33333333333333 -(byte*) render_score::screen_score_pos#4 61.0 -(byte*) render_score::screen_score_pos#5 2.0 +(word) render_score::score_offset +(byte*) render_score::screen +(byte*) render_score::screen#2 0.75 (void()) render_screen_original((byte*) render_screen_original::screen) (byte) render_screen_original::SPACE (byte*) render_screen_original::cols @@ -9053,7 +9763,7 @@ VARIABLE REGISTER WEIGHTS (byte) render_screen_original::y#6 0.9166666666666666 (byte) render_screen_render (byte) render_screen_render#11 3.25 -(byte) render_screen_render#17 0.6981132075471699 +(byte) render_screen_render#17 0.6271186440677967 (byte) render_screen_render#21 8.615384615384615 (byte) render_screen_render#30 5.090909090909091 (byte~) render_screen_render#64 5.5 @@ -9096,9 +9806,9 @@ VARIABLE REGISTER WEIGHTS (dword) score_bcd (dword) score_bcd#10 4.0 (dword) score_bcd#12 1.0 -(dword) score_bcd#14 2.608695652173914 +(dword) score_bcd#14 2.4489795918367347 (dword) score_bcd#20 6.0 -(dword) score_bcd#3 2.0 +(dword) score_bcd#23 0.5714285714285714 (byte*[PLAYFIELD_LINES#0]) screen_lines_1 (byte*[PLAYFIELD_LINES#0]) screen_lines_2 (byte()) sid_rnd() @@ -9145,8 +9855,12 @@ Initial phi equivalence classes [ render_screen_show#16 render_screen_show#13 ] [ render_screen_render#17 render_screen_render#11 ] [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] -[ render_score::b#2 render_score::b#1 ] -[ render_score::screen_score_pos#4 render_score::screen_score_pos#5 render_score::screen_score_pos#3 ] +[ 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 ] +[ render_bcd::offset#6 ] +[ render_bcd::only_low#6 ] +[ render_bcd::bcd#6 render_bcd::bcd#0 render_bcd::bcd#1 render_bcd::bcd#2 render_bcd::bcd#3 render_bcd::bcd#4 render_bcd::bcd#5 ] +[ render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 ] [ current_ypos#9 current_ypos#86 current_ypos#87 ] [ render_screen_render#30 render_screen_render#64 ] [ current_xpos#47 current_xpos#112 current_xpos#113 ] @@ -9177,7 +9891,8 @@ Initial phi equivalence classes [ play_move_leftright::return#1 ] [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] -[ score_bcd#20 score_bcd#12 score_bcd#14 score_bcd#10 score_bcd#3 ] +[ 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 ] [ 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 ] @@ -9185,6 +9900,7 @@ Initial phi equivalence classes [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] [ play_move_down::return#2 ] [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] +[ level_bcd#22 level_bcd#19 level_bcd#12 level_bcd#14 level_bcd#10 level_bcd#3 ] [ play_remove_lines::y#8 play_remove_lines::y#1 ] [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] @@ -9239,12 +9955,11 @@ Added variable play_move_rotate::key_event#0 to zero page equivalence class [ pl Added variable play_move_rotate::return#4 to zero page equivalence class [ play_move_rotate::return#4 ] Added variable main::$14 to zero page equivalence class [ main::$14 ] Added variable main::render#3 to zero page equivalence class [ main::render#3 ] -Added variable render_score::score_byte#0 to zero page equivalence class [ render_score::score_byte#0 ] -Added variable render_score::$9 to zero page equivalence class [ render_score::$9 ] -Added variable render_score::$10 to zero page equivalence class [ render_score::$10 ] -Added variable render_score::screen_score_pos#2 to zero page equivalence class [ render_score::screen_score_pos#2 ] -Added variable render_score::$11 to zero page equivalence class [ render_score::$11 ] -Added variable render_score::$12 to zero page equivalence class [ render_score::$12 ] +Added variable render_bcd::$3 to zero page equivalence class [ render_bcd::$3 ] +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 ] @@ -9275,6 +9990,10 @@ Added variable play_spawn_current::$1 to zero page equivalence class [ play_spaw Added variable sid_rnd::return#0 to zero page equivalence class [ sid_rnd::return#0 ] Added variable play_update_score::$2 to zero page equivalence class [ play_update_score::$2 ] Added variable play_update_score::add_bcd#0 to zero page equivalence class [ play_update_score::add_bcd#0 ] +Added variable play_update_score::$3 to zero page equivalence class [ play_update_score::$3 ] +Added variable play_update_score::lines_before#0 to zero page equivalence class [ play_update_score::lines_before#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_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 ] @@ -9321,8 +10040,12 @@ Complete equivalence classes [ render_screen_show#16 render_screen_show#13 ] [ render_screen_render#17 render_screen_render#11 ] [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] -[ render_score::b#2 render_score::b#1 ] -[ render_score::screen_score_pos#4 render_score::screen_score_pos#5 render_score::screen_score_pos#3 ] +[ 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 ] +[ render_bcd::offset#6 ] +[ render_bcd::only_low#6 ] +[ render_bcd::bcd#6 render_bcd::bcd#0 render_bcd::bcd#1 render_bcd::bcd#2 render_bcd::bcd#3 render_bcd::bcd#4 render_bcd::bcd#5 ] +[ render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 ] [ current_ypos#9 current_ypos#86 current_ypos#87 ] [ render_screen_render#30 render_screen_render#64 ] [ current_xpos#47 current_xpos#112 current_xpos#113 ] @@ -9353,7 +10076,8 @@ Complete equivalence classes [ play_move_leftright::return#1 ] [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] -[ score_bcd#20 score_bcd#12 score_bcd#14 score_bcd#10 score_bcd#3 ] +[ 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 ] [ 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 ] @@ -9361,6 +10085,7 @@ Complete equivalence classes [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] [ play_move_down::return#2 ] [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] +[ level_bcd#22 level_bcd#19 level_bcd#12 level_bcd#14 level_bcd#10 level_bcd#3 ] [ play_remove_lines::y#8 play_remove_lines::y#1 ] [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] @@ -9415,12 +10140,11 @@ Complete equivalence classes [ play_move_rotate::return#4 ] [ main::$14 ] [ main::render#3 ] -[ render_score::score_byte#0 ] -[ render_score::$9 ] -[ render_score::$10 ] -[ render_score::screen_score_pos#2 ] -[ render_score::$11 ] -[ render_score::$12 ] +[ render_bcd::$3 ] +[ render_bcd::$4 ] +[ render_bcd::$5 ] +[ render_bcd::$6 ] +[ render_bcd::screen_pos#1 ] [ render_current::$5 ] [ render_current::screen_line#0 ] [ render_current::current_cell#0 ] @@ -9451,6 +10175,10 @@ Complete equivalence classes [ sid_rnd::return#0 ] [ play_update_score::$2 ] [ play_update_score::add_bcd#0 ] +[ play_update_score::$3 ] +[ play_update_score::lines_before#0 ] +[ play_update_score::$5 ] +[ play_update_score::lines_after#0 ] [ play_remove_lines::c#0 ] [ play_lock_current::playfield_line#0 ] [ play_lock_current::i#1 ] @@ -9496,178 +10224,187 @@ Complete equivalence classes Allocated zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] Allocated zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] Allocated zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] -Allocated zp ZP_BYTE:5 [ render_score::b#2 render_score::b#1 ] -Allocated zp ZP_WORD:6 [ render_score::screen_score_pos#4 render_score::screen_score_pos#5 render_score::screen_score_pos#3 ] -Allocated zp ZP_BYTE:8 [ current_ypos#9 current_ypos#86 current_ypos#87 ] -Allocated zp ZP_BYTE:9 [ render_screen_render#30 render_screen_render#64 ] -Allocated zp ZP_BYTE:10 [ current_xpos#47 current_xpos#112 current_xpos#113 ] -Allocated zp ZP_WORD:11 [ current_piece_gfx#53 current_piece_gfx#102 current_piece_gfx#103 ] -Allocated zp ZP_BYTE:13 [ current_piece_char#64 current_piece_char#90 current_piece_char#91 ] -Allocated zp ZP_BYTE:14 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] -Allocated zp ZP_BYTE:15 [ render_current::l#4 render_current::l#1 ] -Allocated zp ZP_BYTE:16 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] -Allocated zp ZP_BYTE:17 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] -Allocated zp ZP_BYTE:18 [ render_current::c#2 render_current::c#1 ] -Allocated zp ZP_BYTE:19 [ render_screen_render#21 render_screen_render#65 ] -Allocated zp ZP_BYTE:20 [ render_playfield::l#2 render_playfield::l#1 ] -Allocated zp ZP_BYTE:21 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] -Allocated zp ZP_WORD:22 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] -Allocated zp ZP_BYTE:24 [ render_playfield::c#2 render_playfield::c#1 ] -Allocated zp ZP_BYTE:25 [ play_move_rotate::return#1 ] -Allocated zp ZP_BYTE:26 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] -Allocated zp ZP_WORD:27 [ current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 ] -Allocated zp ZP_BYTE:29 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] -Allocated zp ZP_BYTE:30 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] -Allocated zp ZP_BYTE:31 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] -Allocated zp ZP_BYTE:32 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] -Allocated zp ZP_BYTE:33 [ play_collision::l#6 play_collision::l#1 ] -Allocated zp ZP_BYTE:34 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] -Allocated zp ZP_BYTE:35 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] -Allocated zp ZP_BYTE:36 [ play_collision::c#2 play_collision::c#1 ] -Allocated zp ZP_BYTE:37 [ play_collision::return#14 ] -Allocated zp ZP_BYTE:38 [ play_move_leftright::return#1 ] -Allocated zp ZP_BYTE:39 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] -Allocated zp ZP_BYTE:40 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] -Allocated zp ZP_DWORD:41 [ score_bcd#20 score_bcd#12 score_bcd#14 score_bcd#10 score_bcd#3 ] -Allocated zp ZP_WORD:45 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 ] -Allocated zp ZP_BYTE:47 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -Allocated zp ZP_WORD:48 [ 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:50 [ 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:51 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] -Allocated zp ZP_BYTE:52 [ play_move_down::return#2 ] -Allocated zp ZP_BYTE:53 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] -Allocated zp ZP_BYTE:54 [ play_remove_lines::y#8 play_remove_lines::y#1 ] -Allocated zp ZP_BYTE:55 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] -Allocated zp ZP_BYTE:56 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] -Allocated zp ZP_BYTE:57 [ play_remove_lines::x#2 play_remove_lines::x#1 ] -Allocated zp ZP_BYTE:58 [ play_remove_lines::full#4 play_remove_lines::full#2 ] -Allocated zp ZP_BYTE:59 [ 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:60 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -Allocated zp ZP_BYTE:61 [ play_lock_current::l#6 play_lock_current::l#1 ] -Allocated zp ZP_BYTE:62 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] -Allocated zp ZP_BYTE:63 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] -Allocated zp ZP_BYTE:64 [ play_lock_current::c#2 play_lock_current::c#1 ] -Allocated zp ZP_BYTE:65 [ keyboard_event_pressed::keycode#5 ] -Allocated zp ZP_BYTE:66 [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] -Allocated zp ZP_BYTE:67 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Allocated zp ZP_BYTE:68 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] -Allocated zp ZP_BYTE:69 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] -Allocated zp ZP_BYTE:70 [ 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:71 [ 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:72 [ render_show::d018val#3 ] -Allocated zp ZP_BYTE:73 [ play_init::j#2 play_init::j#1 ] -Allocated zp ZP_WORD:74 [ play_init::pli#2 play_init::pli#1 ] -Allocated zp ZP_BYTE:76 [ play_init::idx#2 play_init::idx#1 ] -Allocated zp ZP_BYTE:77 [ sprites_init::s#2 sprites_init::s#1 ] -Allocated zp ZP_BYTE:78 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Allocated zp ZP_BYTE:79 [ render_init::i#2 render_init::i#1 ] -Allocated zp ZP_WORD:80 [ render_init::li_1#2 render_init::li_1#1 ] -Allocated zp ZP_WORD:82 [ render_init::li_2#2 render_init::li_2#1 ] -Allocated zp ZP_BYTE:84 [ render_screen_original::y#6 render_screen_original::y#1 ] -Allocated zp ZP_WORD:85 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] -Allocated zp ZP_WORD:87 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] -Allocated zp ZP_WORD:89 [ 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:91 [ 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:93 [ 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:94 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] -Allocated zp ZP_BYTE:95 [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] -Allocated zp ZP_BYTE:96 [ render_screen_showing#0 ] -Allocated zp ZP_BYTE:97 [ irq_raster_next#0 ] -Allocated zp ZP_BYTE:98 [ irq_sprite_ypos#0 ] -Allocated zp ZP_BYTE:99 [ irq_sprite_ptr#0 ] -Allocated zp ZP_BYTE:100 [ irq_cnt#0 ] -Allocated zp ZP_BYTE:101 [ keyboard_event_get::return#3 ] -Allocated zp ZP_BYTE:102 [ main::key_event#0 ] -Allocated zp ZP_BYTE:103 [ play_move_down::key_event#0 ] -Allocated zp ZP_BYTE:104 [ play_move_down::return#3 ] -Allocated zp ZP_BYTE:105 [ main::$12 ] -Allocated zp ZP_BYTE:106 [ main::render#1 ] -Allocated zp ZP_BYTE:107 [ play_move_leftright::key_event#0 ] -Allocated zp ZP_BYTE:108 [ play_move_leftright::return#4 ] -Allocated zp ZP_BYTE:109 [ main::$13 ] -Allocated zp ZP_BYTE:110 [ main::render#2 ] -Allocated zp ZP_BYTE:111 [ play_move_rotate::key_event#0 ] -Allocated zp ZP_BYTE:112 [ play_move_rotate::return#4 ] -Allocated zp ZP_BYTE:113 [ main::$14 ] -Allocated zp ZP_BYTE:114 [ main::render#3 ] -Allocated zp ZP_BYTE:115 [ render_score::score_byte#0 ] -Allocated zp ZP_BYTE:116 [ render_score::$9 ] -Allocated zp ZP_BYTE:117 [ render_score::$10 ] -Allocated zp ZP_WORD:118 [ render_score::screen_score_pos#2 ] -Allocated zp ZP_BYTE:120 [ render_score::$11 ] -Allocated zp ZP_BYTE:121 [ render_score::$12 ] -Allocated zp ZP_BYTE:122 [ render_current::$5 ] -Allocated zp ZP_WORD:123 [ render_current::screen_line#0 ] -Allocated zp ZP_BYTE:125 [ render_current::current_cell#0 ] -Allocated zp ZP_BYTE:126 [ render_playfield::$2 ] -Allocated zp ZP_BYTE:127 [ render_playfield::$3 ] -Allocated zp ZP_BYTE:128 [ play_move_rotate::$2 ] -Allocated zp ZP_BYTE:129 [ play_collision::return#13 ] -Allocated zp ZP_BYTE:130 [ play_move_rotate::$6 ] -Allocated zp ZP_BYTE:131 [ play_move_rotate::$4 ] -Allocated zp ZP_WORD:132 [ play_collision::piece_gfx#0 ] -Allocated zp ZP_WORD:134 [ play_collision::playfield_line#0 ] -Allocated zp ZP_BYTE:136 [ play_collision::i#1 ] -Allocated zp ZP_BYTE:137 [ play_collision::$7 ] -Allocated zp ZP_BYTE:138 [ play_collision::return#12 ] -Allocated zp ZP_BYTE:139 [ play_move_leftright::$4 ] -Allocated zp ZP_BYTE:140 [ play_collision::return#1 ] -Allocated zp ZP_BYTE:141 [ play_move_leftright::$8 ] -Allocated zp ZP_BYTE:142 [ keyboard_event_pressed::return#12 ] -Allocated zp ZP_BYTE:143 [ play_move_down::$2 ] -Allocated zp ZP_BYTE:144 [ play_collision::return#0 ] -Allocated zp ZP_BYTE:145 [ play_move_down::$12 ] -Allocated zp ZP_BYTE:146 [ play_remove_lines::return#0 ] -Allocated zp ZP_BYTE:147 [ play_move_down::removed#0 ] -Allocated zp ZP_BYTE:148 [ play_update_score::removed#0 ] -Allocated zp ZP_BYTE:149 [ play_spawn_current::$3 ] -Allocated zp ZP_BYTE:150 [ sid_rnd::return#2 ] -Allocated zp ZP_BYTE:151 [ play_spawn_current::$1 ] -Allocated zp ZP_BYTE:152 [ sid_rnd::return#0 ] -Allocated zp ZP_BYTE:153 [ play_update_score::$2 ] -Allocated zp ZP_DWORD:154 [ play_update_score::add_bcd#0 ] -Allocated zp ZP_BYTE:158 [ play_remove_lines::c#0 ] -Allocated zp ZP_WORD:159 [ play_lock_current::playfield_line#0 ] -Allocated zp ZP_BYTE:161 [ play_lock_current::i#1 ] -Allocated zp ZP_BYTE:162 [ keyboard_event_pressed::$0 ] -Allocated zp ZP_BYTE:163 [ keyboard_event_pressed::row_bits#0 ] -Allocated zp ZP_BYTE:164 [ keyboard_event_pressed::$1 ] -Allocated zp ZP_BYTE:165 [ keyboard_event_pressed::return#11 ] -Allocated zp ZP_BYTE:166 [ keyboard_matrix_read::rowid#0 ] -Allocated zp ZP_BYTE:167 [ keyboard_matrix_read::return#2 ] -Allocated zp ZP_BYTE:168 [ keyboard_event_scan::row_scan#0 ] -Allocated zp ZP_BYTE:169 [ keyboard_event_pressed::return#0 ] -Allocated zp ZP_BYTE:170 [ keyboard_event_scan::$14 ] -Allocated zp ZP_BYTE:171 [ keyboard_event_pressed::return#1 ] -Allocated zp ZP_BYTE:172 [ keyboard_event_scan::$18 ] -Allocated zp ZP_BYTE:173 [ keyboard_event_pressed::return#2 ] -Allocated zp ZP_BYTE:174 [ keyboard_event_scan::$22 ] -Allocated zp ZP_BYTE:175 [ keyboard_event_pressed::return#10 ] -Allocated zp ZP_BYTE:176 [ keyboard_event_scan::$26 ] -Allocated zp ZP_BYTE:177 [ keyboard_modifiers#5 ] -Allocated zp ZP_BYTE:178 [ keyboard_event_scan::$3 ] -Allocated zp ZP_BYTE:179 [ keyboard_event_scan::$4 ] -Allocated zp ZP_BYTE:180 [ keyboard_event_scan::event_type#0 ] -Allocated zp ZP_BYTE:181 [ keyboard_event_scan::$11 ] -Allocated zp ZP_BYTE:182 [ keyboard_matrix_read::return#0 ] -Allocated zp ZP_BYTE:183 [ render_screen_showing#1 ] -Allocated zp ZP_BYTE:184 [ play_init::$1 ] -Allocated zp ZP_BYTE:185 [ sprites_init::s2#0 ] -Allocated zp ZP_BYTE:186 [ render_init::$13 ] -Allocated zp ZP_BYTE:187 [ render_init::$14 ] -Allocated zp ZP_BYTE:188 [ sprites_irq::ypos#0 ] -Allocated zp ZP_BYTE:189 [ sprites_irq::ptr#0 ] -Allocated zp ZP_BYTE:190 [ sprites_irq::ptr#3 ] -Allocated zp ZP_BYTE:191 [ sprites_irq::ptr#4 ] -Allocated zp ZP_BYTE:192 [ irq_cnt#1 ] -Allocated zp ZP_BYTE:193 [ irq_sprite_ypos#2 ] -Allocated zp ZP_BYTE:194 [ irq_sprite_ptr#2 ] -Allocated zp ZP_BYTE:195 [ sprites_irq::$4 ] -Allocated zp ZP_BYTE:196 [ irq_cnt#14 ] -Allocated zp ZP_BYTE:197 [ irq_sprite_ypos#1 ] -Allocated zp ZP_BYTE:198 [ irq_sprite_ptr#1 ] -Allocated zp ZP_BYTE:199 [ sprites_irq::ptr#1 ] -Allocated zp ZP_BYTE:200 [ sprites_irq::ptr#2 ] +Allocated zp ZP_WORD:5 [ render_score::screen#2 ] +Allocated 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 ] +Allocated zp ZP_WORD:9 [ render_bcd::offset#6 ] +Allocated zp ZP_BYTE:11 [ render_bcd::only_low#6 ] +Allocated zp ZP_BYTE:12 [ render_bcd::bcd#6 render_bcd::bcd#0 render_bcd::bcd#1 render_bcd::bcd#2 render_bcd::bcd#3 render_bcd::bcd#4 render_bcd::bcd#5 ] +Allocated zp ZP_WORD:13 [ render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 ] +Allocated zp ZP_BYTE:15 [ current_ypos#9 current_ypos#86 current_ypos#87 ] +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:26 [ render_screen_render#21 render_screen_render#65 ] +Allocated zp ZP_BYTE:27 [ render_playfield::l#2 render_playfield::l#1 ] +Allocated zp ZP_BYTE:28 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] +Allocated zp ZP_WORD:29 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] +Allocated zp ZP_BYTE:31 [ render_playfield::c#2 render_playfield::c#1 ] +Allocated zp ZP_BYTE:32 [ play_move_rotate::return#1 ] +Allocated zp ZP_BYTE:33 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] +Allocated zp ZP_WORD:34 [ current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 ] +Allocated zp ZP_BYTE:36 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] +Allocated zp ZP_BYTE:37 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] +Allocated zp ZP_BYTE:38 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] +Allocated zp ZP_BYTE:39 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] +Allocated zp ZP_BYTE:40 [ play_collision::l#6 play_collision::l#1 ] +Allocated zp ZP_BYTE:41 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] +Allocated zp ZP_BYTE:42 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] +Allocated zp ZP_BYTE:43 [ play_collision::c#2 play_collision::c#1 ] +Allocated zp ZP_BYTE:44 [ play_collision::return#14 ] +Allocated zp ZP_BYTE:45 [ play_move_leftright::return#1 ] +Allocated 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 ] +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_WORD:54 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 ] +Allocated zp ZP_BYTE:56 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] +Allocated zp ZP_WORD:57 [ 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:59 [ 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:60 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] +Allocated zp ZP_BYTE:61 [ play_move_down::return#2 ] +Allocated zp ZP_BYTE:62 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] +Allocated zp ZP_BYTE:63 [ level_bcd#22 level_bcd#19 level_bcd#12 level_bcd#14 level_bcd#10 level_bcd#3 ] +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_DWORD:163 [ play_update_score::add_bcd#0 ] +Allocated zp ZP_BYTE:167 [ play_update_score::$3 ] +Allocated zp ZP_BYTE:168 [ play_update_score::lines_before#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_remove_lines::c#0 ] +Allocated zp ZP_WORD:172 [ play_lock_current::playfield_line#0 ] +Allocated zp ZP_BYTE:174 [ play_lock_current::i#1 ] +Allocated zp ZP_BYTE:175 [ keyboard_event_pressed::$0 ] +Allocated zp ZP_BYTE:176 [ keyboard_event_pressed::row_bits#0 ] +Allocated zp ZP_BYTE:177 [ keyboard_event_pressed::$1 ] +Allocated zp ZP_BYTE:178 [ keyboard_event_pressed::return#11 ] +Allocated zp ZP_BYTE:179 [ keyboard_matrix_read::rowid#0 ] +Allocated zp ZP_BYTE:180 [ keyboard_matrix_read::return#2 ] +Allocated zp ZP_BYTE:181 [ keyboard_event_scan::row_scan#0 ] +Allocated zp ZP_BYTE:182 [ keyboard_event_pressed::return#0 ] +Allocated zp ZP_BYTE:183 [ keyboard_event_scan::$14 ] +Allocated zp ZP_BYTE:184 [ keyboard_event_pressed::return#1 ] +Allocated zp ZP_BYTE:185 [ keyboard_event_scan::$18 ] +Allocated zp ZP_BYTE:186 [ keyboard_event_pressed::return#2 ] +Allocated zp ZP_BYTE:187 [ keyboard_event_scan::$22 ] +Allocated zp ZP_BYTE:188 [ keyboard_event_pressed::return#10 ] +Allocated zp ZP_BYTE:189 [ keyboard_event_scan::$26 ] +Allocated zp ZP_BYTE:190 [ keyboard_modifiers#5 ] +Allocated zp ZP_BYTE:191 [ keyboard_event_scan::$3 ] +Allocated zp ZP_BYTE:192 [ keyboard_event_scan::$4 ] +Allocated zp ZP_BYTE:193 [ keyboard_event_scan::event_type#0 ] +Allocated zp ZP_BYTE:194 [ keyboard_event_scan::$11 ] +Allocated zp ZP_BYTE:195 [ keyboard_matrix_read::return#0 ] +Allocated zp ZP_BYTE:196 [ render_screen_showing#1 ] +Allocated zp ZP_BYTE:197 [ play_init::$1 ] +Allocated zp ZP_BYTE:198 [ sprites_init::s2#0 ] +Allocated zp ZP_BYTE:199 [ render_init::$13 ] +Allocated zp ZP_BYTE:200 [ render_init::$14 ] +Allocated zp ZP_BYTE:201 [ sprites_irq::ypos#0 ] +Allocated zp ZP_BYTE:202 [ sprites_irq::ptr#0 ] +Allocated zp ZP_BYTE:203 [ sprites_irq::ptr#3 ] +Allocated zp ZP_BYTE:204 [ sprites_irq::ptr#4 ] +Allocated zp ZP_BYTE:205 [ irq_cnt#1 ] +Allocated zp ZP_BYTE:206 [ irq_sprite_ypos#2 ] +Allocated zp ZP_BYTE:207 [ irq_sprite_ptr#2 ] +Allocated zp ZP_BYTE:208 [ sprites_irq::$4 ] +Allocated zp ZP_BYTE:209 [ irq_cnt#14 ] +Allocated zp ZP_BYTE:210 [ irq_sprite_ypos#1 ] +Allocated zp ZP_BYTE:211 [ irq_sprite_ptr#1 ] +Allocated zp ZP_BYTE:212 [ sprites_irq::ptr#1 ] +Allocated zp ZP_BYTE:213 [ sprites_irq::ptr#2 ] INITIAL ASM //SEG0 Basic Upstart @@ -9750,55 +10487,57 @@ 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 = $47 - .label keyboard_modifiers = $44 - .label keyboard_modifiers_5 = $b1 - .label render_screen_showing = $60 - .label render_screen_showing_1 = $b7 - .label irq_raster_next = $61 - .label irq_sprite_ypos = $62 - .label irq_sprite_ptr = $63 - .label irq_cnt = $64 - .label irq_cnt_1 = $c0 - .label irq_raster_next_1 = $5e - .label irq_sprite_ypos_1 = $c5 - .label irq_sprite_ptr_1 = $c6 - .label irq_raster_next_2 = $5e - .label irq_sprite_ypos_2 = $c1 - .label irq_sprite_ptr_2 = $c2 + .label keyboard_events_size = $51 + .label keyboard_modifiers = $4e + .label keyboard_modifiers_5 = $be + .label render_screen_showing = $6a + .label render_screen_showing_1 = $c4 + .label irq_raster_next = $6b + .label irq_sprite_ypos = $6c + .label irq_sprite_ptr = $6d + .label irq_cnt = $6e + .label irq_cnt_1 = $cd + .label irq_raster_next_1 = $68 + .label irq_sprite_ypos_1 = $d2 + .label irq_sprite_ptr_1 = $d3 + .label irq_raster_next_2 = $68 + .label irq_sprite_ypos_2 = $ce + .label irq_sprite_ptr_2 = $cf .label current_movedown_counter = 4 - .label current_ypos = $28 - .label current_piece_gfx = $30 - .label current_xpos = $32 - .label current_piece_char = $33 - .label current_orientation = $2f - .label score_bcd = $29 + .label current_ypos = $2f + .label current_piece_gfx = $39 + .label current_xpos = $3b + .label current_piece_char = $3c + .label current_orientation = $38 + .label level_bcd = $3f .label render_screen_render = 3 .label render_screen_show = 2 - .label current_ypos_9 = 8 - .label current_piece = $2d - .label current_piece_12 = $1b - .label render_screen_render_21 = $13 - .label render_screen_render_30 = 9 - .label current_xpos_47 = $a - .label irq_raster_next_13 = $5e - .label current_piece_gfx_53 = $b - .label irq_cnt_14 = $c4 - .label current_piece_char_64 = $d - .label current_ypos_86 = 8 - .label current_ypos_87 = 8 - .label render_screen_render_64 = 9 - .label current_xpos_112 = $a - .label current_xpos_113 = $a - .label current_piece_gfx_102 = $b - .label current_piece_gfx_103 = $b - .label current_piece_char_90 = $d - .label current_piece_char_91 = $d - .label render_screen_render_65 = $13 - .label current_piece_76 = $1b - .label current_piece_77 = $1b - .label current_piece_78 = $1b - .label current_piece_79 = $1b + .label current_ypos_9 = $f + .label lines_bcd = $30 + .label score_bcd = $32 + .label current_piece = $36 + .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 current_piece_gfx_53 = $12 + .label irq_cnt_14 = $d1 + .label current_piece_char_64 = $14 + .label current_ypos_86 = $f + .label current_ypos_87 = $f + .label render_screen_render_64 = $10 + .label current_xpos_112 = $11 + .label current_xpos_113 = $11 + .label current_piece_gfx_102 = $12 + .label current_piece_gfx_103 = $12 + .label current_piece_char_90 = $14 + .label current_piece_char_91 = $14 + .label render_screen_render_65 = $1a + .label current_piece_76 = $22 + .label current_piece_77 = $22 + .label current_piece_78 = $22 + .label current_piece_79 = $22 //SEG2 @begin bbegin: jmp b14 @@ -9810,56 +10549,56 @@ b14: //SEG5 kickasm(location (const byte*) PLAYFIELD_CHARSET#0) {{ .fill 8,$00 // Place a filled char at the start of the charset .import binary "playfield-screen.imap" }} //SEG6 kickasm(location (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0) {{ // Load chars for the screen .var screen = LoadBinary("playfield-screen.iscr") // Load extended colors for the screen .var extended = LoadBinary("playfield-extended.col") // screen.get(i)+1 because the charset is loaded into PLAYFIELD_CHARSET+8 // extended.get(i)-1 because the extended colors are 1-based (1/2/3/4) // <<6 to move extended colors to the upper 2 bits .fill screen.getSize(), ( (screen.get(i)+1) | (extended.get(i)-1)<<6 ) }} //SEG7 kickasm(location (const byte*) PLAYFIELD_COLORS_ORIGINAL#0) {{ .import binary "playfield-screen.col" }} - jmp b21 -//SEG8 @21 -b21: -//SEG9 kickasm(location (const 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++) { .for (var y=0;y<21; y++) { .for (var c=0; c<3; c++) { .byte sprites.getSinglecolorByte(sx*3+c,sy*21+y) } } .byte 0 } } }} jmp b22 -//SEG10 @22 +//SEG8 @22 b22: +//SEG9 kickasm(location (const 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++) { .for (var y=0;y<21; y++) { .for (var c=0; c<3; c++) { .byte sprites.getSinglecolorByte(sx*3+c,sy*21+y) } } .byte 0 } } }} + jmp b23 +//SEG10 @23 +b23: //SEG11 [6] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next //SEG12 [7] (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 lda #$32 sta irq_sprite_ypos -//SEG13 [8] phi from @22 to toSpritePtr1 [phi:@22->toSpritePtr1] -toSpritePtr1_from_b22: +//SEG13 [8] phi from @23 to toSpritePtr1 [phi:@23->toSpritePtr1] +toSpritePtr1_from_b23: jmp toSpritePtr1 //SEG14 toSpritePtr1 toSpritePtr1: - jmp b35 -//SEG15 @35 -b35: + jmp b36 +//SEG15 @36 +b36: //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 @35 to @34 [phi:@35->@34] -b34_from_b35: - jmp b34 -//SEG19 @34 -b34: +//SEG18 [11] phi from @36 to @35 [phi:@36->@35] +b35_from_b36: + jmp b35 +//SEG19 @35 +b35: //SEG20 [12] call main -//SEG21 [14] phi from @34 to main [phi:@34->main] -main_from_b34: +//SEG21 [14] phi from @35 to main [phi:@35->main] +main_from_b35: jsr main -//SEG22 [13] phi from @34 to @end [phi:@34->@end] -bend_from_b34: +//SEG22 [13] phi from @35 to @end [phi:@35->@end] +bend_from_b35: jmp bend //SEG23 @end bend: //SEG24 main main: { - .label _12 = $69 - .label _13 = $6d - .label _14 = $71 - .label key_event = $66 - .label render = $6a - .label render_2 = $6e - .label render_3 = $72 + .label _12 = $73 + .label _13 = $77 + .label _14 = $7b + .label key_event = $70 + .label render = $74 + .label render_2 = $78 + .label render_3 = $7c //SEG25 [15] call sid_rnd_init jsr sid_rnd_init jmp b15 @@ -9868,7 +10607,7 @@ main: { //SEG27 asm { sei } sei //SEG28 [17] call render_init - //SEG29 [404] phi from main::@15 to render_init [phi:main::@15->render_init] + //SEG29 [431] 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] @@ -9891,7 +10630,7 @@ main: { //SEG37 main::@18 b18: //SEG38 [23] call play_init - //SEG39 [369] phi from main::@18 to play_init [phi:main::@18->play_init] + //SEG39 [396] 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] @@ -9900,7 +10639,7 @@ main: { //SEG41 main::@19 b19: //SEG42 [25] call play_spawn_current - //SEG43 [231] phi from main::@19 to play_spawn_current [phi:main::@19->play_spawn_current] + //SEG43 [250] phi from main::@19 to play_spawn_current [phi:main::@19->play_spawn_current] play_spawn_current_from_b19: jsr play_spawn_current //SEG44 [26] phi from main::@19 to main::@20 [phi:main::@19->main::@20] @@ -9909,9 +10648,9 @@ main: { //SEG45 main::@20 b20: //SEG46 [27] call render_playfield - //SEG47 [114] phi from main::@20 to render_playfield [phi:main::@20->render_playfield] + //SEG47 [133] phi from main::@20 to render_playfield [phi:main::@20->render_playfield] render_playfield_from_b20: - //SEG48 [114] phi (byte) render_screen_render#21 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@20->render_playfield#0] -- vbuz1=vbuc1 + //SEG48 [133] phi (byte) render_screen_render#21 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@20->render_playfield#0] -- vbuz1=vbuc1 lda #$40 sta render_screen_render_21 jsr render_playfield @@ -9933,15 +10672,15 @@ main: { lda current_piece_char sta current_piece_char_90 //SEG54 [32] call render_current - //SEG55 [91] phi from main::@21 to render_current [phi:main::@21->render_current] + //SEG55 [110] phi from main::@21 to render_current [phi:main::@21->render_current] render_current_from_b21: - //SEG56 [91] phi (byte) current_piece_char#64 = (byte~) current_piece_char#90 [phi:main::@21->render_current#0] -- register_copy - //SEG57 [91] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#102 [phi:main::@21->render_current#1] -- register_copy - //SEG58 [91] phi (byte) current_xpos#47 = (byte~) current_xpos#112 [phi:main::@21->render_current#2] -- register_copy - //SEG59 [91] phi (byte) render_screen_render#30 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->render_current#3] -- vbuz1=vbuc1 + //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 lda #$40 sta render_screen_render_30 - //SEG60 [91] phi (byte) current_ypos#9 = (byte~) current_ypos#86 [phi:main::@21->render_current#4] -- register_copy + //SEG60 [110] phi (byte) current_ypos#9 = (byte~) current_ypos#86 [phi:main::@21->render_current#4] -- register_copy jsr render_current //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 @@ -9951,677 +10690,841 @@ 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 (dword) score_bcd#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#0] -- vduz1=vbuc1 + //SEG63 [34] phi (byte) level_bcd#14 = (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 lda #0 sta score_bcd lda #0 sta score_bcd+1 sta score_bcd+2 sta score_bcd+3 - //SEG64 [34] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#1] -- vbuz1=vbuc1 + //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 + 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 lda #0 sta current_movedown_counter - //SEG65 [34] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#2] -- vbuz1=vbuc1 + //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 lda #0 sta keyboard_events_size - //SEG66 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#12 [phi:main::@21->main::@1#3] -- register_copy - //SEG67 [34] phi (byte) current_ypos#21 = (byte) current_ypos#18 [phi:main::@21->main::@1#4] -- register_copy - //SEG68 [34] phi (byte) current_xpos#10 = (byte) current_xpos#23 [phi:main::@21->main::@1#5] -- register_copy - //SEG69 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#16 [phi:main::@21->main::@1#6] -- register_copy - //SEG70 [34] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#7] -- vbuz1=vbuc1 + //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 lda #0 sta current_orientation - //SEG71 [34] phi (byte*) current_piece#16 = (byte*~) current_piece#73 [phi:main::@21->main::@1#8] -- register_copy - //SEG72 [34] phi (byte) render_screen_render#17 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->main::@1#9] -- vbuz1=vbuc1 + //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 lda #$40 sta render_screen_render - //SEG73 [34] phi (byte) render_screen_show#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#10] -- vbuz1=vbuc1 + //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 lda #0 sta render_screen_show jmp b1 - //SEG74 [34] phi from main::@28 to main::@1 [phi:main::@28->main::@1] + //SEG76 [34] phi from main::@28 to main::@1 [phi:main::@28->main::@1] b1_from_b28: - //SEG75 [34] phi (dword) score_bcd#14 = (dword) score_bcd#10 [phi:main::@28->main::@1#0] -- register_copy - //SEG76 [34] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@28->main::@1#1] -- register_copy - //SEG77 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@28->main::@1#2] -- register_copy - //SEG78 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@28->main::@1#3] -- register_copy - //SEG79 [34] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@28->main::@1#4] -- register_copy - //SEG80 [34] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@28->main::@1#5] -- register_copy - //SEG81 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@28->main::@1#6] -- register_copy - //SEG82 [34] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@28->main::@1#7] -- register_copy - //SEG83 [34] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@28->main::@1#8] -- register_copy + //SEG77 [34] phi (byte) level_bcd#14 = (byte) level_bcd#10 [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 jmp b1 - //SEG84 main::@1 + //SEG88 main::@1 b1: jmp b4 - //SEG85 main::@4 + //SEG89 main::@4 b4: - //SEG86 [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG90 [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 - //SEG87 [36] phi from main::@4 to main::@6 [phi:main::@4->main::@6] + //SEG91 [36] phi from main::@4 to main::@6 [phi:main::@4->main::@6] b6_from_b4: jmp b6 - //SEG88 main::@6 + //SEG92 main::@6 b6: - //SEG89 [37] call render_show + //SEG93 [37] call render_show jsr render_show - //SEG90 [38] phi from main::@6 to main::@23 [phi:main::@6->main::@23] + //SEG94 [38] phi from main::@6 to main::@23 [phi:main::@6->main::@23] b23_from_b6: jmp b23 - //SEG91 main::@23 + //SEG95 main::@23 b23: - //SEG92 [39] call keyboard_event_scan - //SEG93 [306] phi from main::@23 to keyboard_event_scan [phi:main::@23->keyboard_event_scan] + //SEG96 [39] call keyboard_event_scan + //SEG97 [333] phi from main::@23 to keyboard_event_scan [phi:main::@23->keyboard_event_scan] keyboard_event_scan_from_b23: jsr keyboard_event_scan - //SEG94 [40] phi from main::@23 to main::@24 [phi:main::@23->main::@24] + //SEG98 [40] phi from main::@23 to main::@24 [phi:main::@23->main::@24] b24_from_b23: jmp b24 - //SEG95 main::@24 + //SEG99 main::@24 b24: - //SEG96 [41] call keyboard_event_get + //SEG100 [41] call keyboard_event_get jsr keyboard_event_get - //SEG97 [42] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 -- vbuz1=vbuz2 + //SEG101 [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 - //SEG98 main::@25 + //SEG102 main::@25 b25: - //SEG99 [43] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuz2 + //SEG103 [43] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuz2 lda keyboard_event_get.return_3 sta key_event - //SEG100 [44] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 + //SEG104 [44] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_down.key_event - //SEG101 [45] call play_move_down + //SEG105 [45] call play_move_down jsr play_move_down - //SEG102 [46] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuz1=vbuz2 + //SEG106 [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 - //SEG103 main::@26 + //SEG107 main::@26 b26: - //SEG104 [47] (byte~) main::$12 ← (byte) play_move_down::return#3 -- vbuz1=vbuz2 + //SEG108 [47] (byte~) main::$12 ← (byte) play_move_down::return#3 -- vbuz1=vbuz2 lda play_move_down.return_3 sta _12 - //SEG105 [48] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 -- vbuz1=vbuc1_plus_vbuz2 + //SEG109 [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 - //SEG106 [49] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 + //SEG110 [49] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_leftright.key_event - //SEG107 [50] call play_move_leftright + //SEG111 [50] call play_move_leftright jsr play_move_leftright - //SEG108 [51] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 -- vbuz1=vbuz2 + //SEG112 [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 - //SEG109 main::@27 + //SEG113 main::@27 b27: - //SEG110 [52] (byte~) main::$13 ← (byte) play_move_leftright::return#4 -- vbuz1=vbuz2 + //SEG114 [52] (byte~) main::$13 ← (byte) play_move_leftright::return#4 -- vbuz1=vbuz2 lda play_move_leftright.return_4 sta _13 - //SEG111 [53] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 -- vbuz1=vbuz2_plus_vbuz3 + //SEG115 [53] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 -- vbuz1=vbuz2_plus_vbuz3 lda render clc adc _13 sta render_2 - //SEG112 [54] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 + //SEG116 [54] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_rotate.key_event - //SEG113 [55] call play_move_rotate + //SEG117 [55] call play_move_rotate jsr play_move_rotate - //SEG114 [56] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 -- vbuz1=vbuz2 + //SEG118 [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 - //SEG115 main::@28 + //SEG119 main::@28 b28: - //SEG116 [57] (byte~) main::$14 ← (byte) play_move_rotate::return#4 -- vbuz1=vbuz2 + //SEG120 [57] (byte~) main::$14 ← (byte) play_move_rotate::return#4 -- vbuz1=vbuz2 lda play_move_rotate.return_4 sta _14 - //SEG117 [58] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 -- vbuz1=vbuz2_plus_vbuz3 + //SEG121 [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 - //SEG118 [59] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 -- vbuz1_eq_0_then_la1 + //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 lda render_3 cmp #0 beq b1_from_b28 jmp b13 - //SEG119 main::@13 + //SEG123 main::@13 b13: - //SEG120 [60] (byte~) render_screen_render#65 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 + //SEG124 [60] (byte~) render_screen_render#65 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 lda render_screen_render sta render_screen_render_65 - //SEG121 [61] call render_playfield - //SEG122 [114] phi from main::@13 to render_playfield [phi:main::@13->render_playfield] + //SEG125 [61] call render_playfield + //SEG126 [133] phi from main::@13 to render_playfield [phi:main::@13->render_playfield] render_playfield_from_b13: - //SEG123 [114] phi (byte) render_screen_render#21 = (byte~) render_screen_render#65 [phi:main::@13->render_playfield#0] -- register_copy + //SEG127 [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 - //SEG124 main::@29 + //SEG128 main::@29 b29: - //SEG125 [62] (byte~) current_ypos#87 ← (byte) current_ypos#13 -- vbuz1=vbuz2 + //SEG129 [62] (byte~) current_ypos#87 ← (byte) current_ypos#13 -- vbuz1=vbuz2 lda current_ypos sta current_ypos_87 - //SEG126 [63] (byte~) render_screen_render#64 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 + //SEG130 [63] (byte~) render_screen_render#64 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 lda render_screen_render sta render_screen_render_64 - //SEG127 [64] (byte~) current_xpos#113 ← (byte) current_xpos#19 -- vbuz1=vbuz2 + //SEG131 [64] (byte~) current_xpos#113 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda current_xpos sta current_xpos_113 - //SEG128 [65] (byte*~) current_piece_gfx#103 ← (byte*) current_piece_gfx#14 -- pbuz1=pbuz2 + //SEG132 [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 - //SEG129 [66] (byte~) current_piece_char#91 ← (byte) current_piece_char#1 -- vbuz1=vbuz2 + //SEG133 [66] (byte~) current_piece_char#91 ← (byte) current_piece_char#1 -- vbuz1=vbuz2 lda current_piece_char sta current_piece_char_91 - //SEG130 [67] call render_current - //SEG131 [91] phi from main::@29 to render_current [phi:main::@29->render_current] + //SEG134 [67] call render_current + //SEG135 [110] phi from main::@29 to render_current [phi:main::@29->render_current] render_current_from_b29: - //SEG132 [91] phi (byte) current_piece_char#64 = (byte~) current_piece_char#91 [phi:main::@29->render_current#0] -- register_copy - //SEG133 [91] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#103 [phi:main::@29->render_current#1] -- register_copy - //SEG134 [91] phi (byte) current_xpos#47 = (byte~) current_xpos#113 [phi:main::@29->render_current#2] -- register_copy - //SEG135 [91] phi (byte) render_screen_render#30 = (byte~) render_screen_render#64 [phi:main::@29->render_current#3] -- register_copy - //SEG136 [91] phi (byte) current_ypos#9 = (byte~) current_ypos#87 [phi:main::@29->render_current#4] -- register_copy + //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 - //SEG137 [68] phi from main::@29 to main::@30 [phi:main::@29->main::@30] + //SEG141 [68] phi from main::@29 to main::@30 [phi:main::@29->main::@30] b30_from_b29: jmp b30 - //SEG138 main::@30 + //SEG142 main::@30 b30: - //SEG139 [69] call render_score + //SEG143 [69] call render_score jsr render_score - //SEG140 [70] phi from main::@30 to main::@31 [phi:main::@30->main::@31] + //SEG144 [70] phi from main::@30 to main::@31 [phi:main::@30->main::@31] b31_from_b30: jmp b31 - //SEG141 main::@31 + //SEG145 main::@31 b31: - //SEG142 [71] call render_screen_swap + //SEG146 [71] call render_screen_swap jsr render_screen_swap - //SEG143 [34] phi from main::@31 to main::@1 [phi:main::@31->main::@1] + //SEG147 [34] phi from main::@31 to main::@1 [phi:main::@31->main::@1] b1_from_b31: - //SEG144 [34] phi (dword) score_bcd#14 = (dword) score_bcd#10 [phi:main::@31->main::@1#0] -- register_copy - //SEG145 [34] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@31->main::@1#1] -- register_copy - //SEG146 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@31->main::@1#2] -- register_copy - //SEG147 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@31->main::@1#3] -- register_copy - //SEG148 [34] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@31->main::@1#4] -- register_copy - //SEG149 [34] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@31->main::@1#5] -- register_copy - //SEG150 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@31->main::@1#6] -- register_copy - //SEG151 [34] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@31->main::@1#7] -- register_copy - //SEG152 [34] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@31->main::@1#8] -- register_copy - //SEG153 [34] phi (byte) render_screen_render#17 = (byte) render_screen_render#11 [phi:main::@31->main::@1#9] -- register_copy - //SEG154 [34] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@31->main::@1#10] -- register_copy + //SEG148 [34] phi (byte) level_bcd#14 = (byte) level_bcd#10 [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 jmp b1 } -//SEG155 render_screen_swap +//SEG161 render_screen_swap render_screen_swap: { - //SEG156 [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 + //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 lda render_screen_render eor #$40 sta render_screen_render - //SEG157 [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 + //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 lda render_screen_show eor #$40 sta render_screen_show jmp breturn - //SEG158 render_screen_swap::@return + //SEG164 render_screen_swap::@return breturn: - //SEG159 [74] return + //SEG165 [74] return rts } -//SEG160 render_score +//SEG166 render_score render_score: { - .const ZERO_CHAR = $33 - .const SCREEN_SCORE_ROW = 5 - .const SCREEN_SCORE_COL = $21 .label score_bytes = score_bcd - .label _9 = $74 - .label _10 = $75 - .label _11 = $78 - .label _12 = $79 - .label score_byte = $73 - .label screen_score_pos = $76 - .label screen_score_pos_3 = 6 - .label b = 5 - .label screen_score_pos_4 = 6 - .label screen_score_pos_5 = 6 - //SEG161 [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 + .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 lda render_screen_render cmp #0 beq b2_from_render_score - //SEG162 [76] phi from render_score to render_score::@4 [phi:render_score->render_score::@4] - b4_from_render_score: - jmp b4 - //SEG163 render_score::@4 - b4: - //SEG164 [77] phi from render_score::@4 to render_score::@2 [phi:render_score::@4->render_score::@2] - b2_from_b4: - //SEG165 [77] phi (byte*) render_score::screen_score_pos#5 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(const byte) render_score::SCREEN_SCORE_ROW#0+(const byte) render_score::SCREEN_SCORE_COL#0 [phi:render_score::@4->render_score::@2#0] -- pbuz1=pbuc1 - lda #PLAYFIELD_SCREEN_2+$28*SCREEN_SCORE_ROW+SCREEN_SCORE_COL - sta screen_score_pos_5+1 - jmp b2 - //SEG166 [77] phi from render_score to render_score::@2 [phi:render_score->render_score::@2] - b2_from_render_score: - //SEG167 [77] phi (byte*) render_score::screen_score_pos#5 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(const byte) render_score::SCREEN_SCORE_ROW#0+(const byte) render_score::SCREEN_SCORE_COL#0 [phi:render_score->render_score::@2#0] -- pbuz1=pbuc1 - lda #PLAYFIELD_SCREEN_1+$28*SCREEN_SCORE_ROW+SCREEN_SCORE_COL - sta screen_score_pos_5+1 - jmp b2 - //SEG168 render_score::@2 - b2: - //SEG169 [78] phi from render_score::@2 to render_score::@3 [phi:render_score::@2->render_score::@3] - b3_from_b2: - //SEG170 [78] phi (byte*) render_score::screen_score_pos#4 = (byte*) render_score::screen_score_pos#5 [phi:render_score::@2->render_score::@3#0] -- register_copy - //SEG171 [78] phi (byte) render_score::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@2->render_score::@3#1] -- vbuz1=vbuc1 - lda #0 - sta b + //SEG168 [76] phi from render_score to render_score::@3 [phi:render_score->render_score::@3] + b3_from_render_score: jmp b3 - //SEG172 [78] phi from render_score::@3 to render_score::@3 [phi:render_score::@3->render_score::@3] - b3_from_b3: - //SEG173 [78] phi (byte*) render_score::screen_score_pos#4 = (byte*) render_score::screen_score_pos#3 [phi:render_score::@3->render_score::@3#0] -- register_copy - //SEG174 [78] phi (byte) render_score::b#2 = (byte) render_score::b#1 [phi:render_score::@3->render_score::@3#1] -- register_copy - jmp b3 - //SEG175 render_score::@3 + //SEG169 render_score::@3 b3: - //SEG176 [79] (byte) render_score::score_byte#0 ← *((const byte*) render_score::score_bytes#0 + (byte) render_score::b#2) -- vbuz1=pbuc1_derefidx_vbuz2 - ldy b - lda score_bytes,y - sta score_byte - //SEG177 [80] (byte~) render_score::$9 ← (byte) render_score::score_byte#0 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 - lda #$f - and score_byte - sta _9 - //SEG178 [81] (byte~) render_score::$10 ← (const byte) render_score::ZERO_CHAR#0 + (byte~) render_score::$9 -- vbuz1=vbuc1_plus_vbuz2 - lda #ZERO_CHAR - clc - adc _9 - sta _10 - //SEG179 [82] *((byte*) render_score::screen_score_pos#4) ← (byte~) render_score::$10 -- _deref_pbuz1=vbuz2 - lda _10 - ldy #0 - sta (screen_score_pos_4),y - //SEG180 [83] (byte*) render_score::screen_score_pos#2 ← -- (byte*) render_score::screen_score_pos#4 -- pbuz1=_dec_pbuz2 - lda screen_score_pos_4 - sec - sbc #1 - sta screen_score_pos - lda screen_score_pos_4+1 - sbc #0 - sta screen_score_pos+1 - //SEG181 [84] (byte~) render_score::$11 ← (byte) render_score::score_byte#0 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz2_ror_4 - lda score_byte - lsr - lsr - lsr - lsr - sta _11 - //SEG182 [85] (byte~) render_score::$12 ← (const byte) render_score::ZERO_CHAR#0 + (byte~) render_score::$11 -- vbuz1=vbuc1_plus_vbuz2 - lda #ZERO_CHAR - clc - adc _11 - sta _12 - //SEG183 [86] *((byte*) render_score::screen_score_pos#2) ← (byte~) render_score::$12 -- _deref_pbuz1=vbuz2 - lda _12 - ldy #0 - sta (screen_score_pos),y - //SEG184 [87] (byte*) render_score::screen_score_pos#3 ← -- (byte*) render_score::screen_score_pos#2 -- pbuz1=_dec_pbuz2 - lda screen_score_pos - sec - sbc #1 - sta screen_score_pos_3 - lda screen_score_pos+1 - sbc #0 - sta screen_score_pos_3+1 - //SEG185 [88] (byte) render_score::b#1 ← ++ (byte) render_score::b#2 -- vbuz1=_inc_vbuz1 - inc b - //SEG186 [89] if((byte) render_score::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto render_score::@3 -- vbuz1_neq_vbuc1_then_la1 - lda b - cmp #3 - bne b3_from_b3 + //SEG170 [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 + 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] + 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 + lda #PLAYFIELD_SCREEN_1 + sta screen+1 + jmp b2 + //SEG174 render_score::@2 + b2: + //SEG175 [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 + 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] + 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 + 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 + 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 + jsr render_bcd + jmp b5 + //SEG183 render_score::@5 + b5: + //SEG184 [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 + 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] + 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 + 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 + 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 + jsr render_bcd + jmp b6 + //SEG192 render_score::@6 + b6: + //SEG193 [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 + 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] + 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 + 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 + 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 + jsr render_bcd + jmp b7 + //SEG201 render_score::@7 + b7: + //SEG202 [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 + 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] + 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 + 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 + 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 + jsr render_bcd + jmp b8 + //SEG210 render_score::@8 + b8: + //SEG211 [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 + 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] + 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 + 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 + 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 + jsr render_bcd + jmp b9 + //SEG219 render_score::@9 + b9: + //SEG220 [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#10 -- 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] + 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 + 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 + 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 + jsr render_bcd jmp breturn - //SEG187 render_score::@return + //SEG228 render_score::@return breturn: - //SEG188 [90] return + //SEG229 [96] return rts } -//SEG189 render_current +//SEG230 render_bcd +render_bcd: { + .const ZERO_CHAR = $33 + .label _3 = $7d + .label _4 = $7e + .label _5 = $7f + .label _6 = $80 + .label screen = 7 + .label bcd = $c + .label screen_pos = $d + .label screen_pos_1 = $81 + .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 + lda screen + clc + adc offset + sta screen_pos + 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 + lda only_low + cmp #0 + bne b1_from_render_bcd + jmp b2 + //SEG233 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 + 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 + lda #ZERO_CHAR + clc + adc _3 + sta _4 + //SEG236 [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 + 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] + 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 + jmp b1 + //SEG240 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 + 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 + lda #ZERO_CHAR + clc + adc _5 + sta _6 + //SEG243 [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 + lda screen_pos + clc + adc #1 + sta screen_pos_1 + lda screen_pos+1 + adc #0 + sta screen_pos_1+1 + jmp breturn + //SEG245 render_bcd::@return + breturn: + //SEG246 [109] return + rts +} +//SEG247 render_current render_current: { - .label _5 = $7a - .label ypos2 = $e - .label screen_line = $7b - .label xpos = $11 - .label i = $10 - .label l = $f - .label current_cell = $7d - .label c = $12 - //SEG190 [92] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + .label _5 = $83 + .label ypos2 = $15 + .label screen_line = $84 + .label xpos = $18 + .label i = $17 + .label l = $16 + .label current_cell = $86 + .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 lda current_ypos_9 asl sta ypos2 - //SEG191 [93] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] + //SEG249 [112] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] b1_from_render_current: - //SEG192 [93] 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 + //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 lda #0 sta l - //SEG193 [93] 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 + //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 lda #0 sta i - //SEG194 [93] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy + //SEG252 [112] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy jmp b1 - //SEG195 [93] phi from render_current::@3 to render_current::@1 [phi:render_current::@3->render_current::@1] + //SEG253 [112] phi from render_current::@3 to render_current::@1 [phi:render_current::@3->render_current::@1] b1_from_b3: - //SEG196 [93] phi (byte) render_current::l#4 = (byte) render_current::l#1 [phi:render_current::@3->render_current::@1#0] -- register_copy - //SEG197 [93] phi (byte) render_current::i#3 = (byte) render_current::i#8 [phi:render_current::@3->render_current::@1#1] -- register_copy - //SEG198 [93] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@3->render_current::@1#2] -- register_copy + //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 jmp b1 - //SEG199 render_current::@1 + //SEG257 render_current::@1 b1: - //SEG200 [94] 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 + //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 lda ypos2 cmp #2 beq !+ bcs b13 !: jmp b7 - //SEG201 render_current::@7 + //SEG259 render_current::@7 b7: - //SEG202 [95] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz1_plus_vbuc1 + //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 lda #4 clc adc i sta i - //SEG203 [96] phi from render_current::@5 render_current::@7 to render_current::@3 [phi:render_current::@5/render_current::@7->render_current::@3] + //SEG261 [115] phi from render_current::@5 render_current::@7 to render_current::@3 [phi:render_current::@5/render_current::@7->render_current::@3] b3_from_b5: b3_from_b7: - //SEG204 [96] phi (byte) render_current::i#8 = (byte) render_current::i#10 [phi:render_current::@5/render_current::@7->render_current::@3#0] -- register_copy + //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 jmp b3 - //SEG205 render_current::@3 + //SEG263 render_current::@3 b3: - //SEG206 [97] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //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 lda ypos2 clc adc #2 sta ypos2 - //SEG207 [98] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 -- vbuz1=_inc_vbuz1 + //SEG265 [117] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG208 [99] 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 + //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 lda l cmp #4 bne b1_from_b3 jmp breturn - //SEG209 render_current::@return + //SEG267 render_current::@return breturn: - //SEG210 [100] return + //SEG268 [119] return rts - //SEG211 render_current::@13 + //SEG269 render_current::@13 b13: - //SEG212 [101] 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 + //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 lda ypos2 cmp #2*PLAYFIELD_LINES bcc b2 jmp b7 - //SEG213 render_current::@2 + //SEG271 render_current::@2 b2: - //SEG214 [102] (byte~) render_current::$5 ← (byte) render_screen_render#30 + (byte) render_current::ypos2#2 -- vbuz1=vbuz2_plus_vbuz3 + //SEG272 [121] (byte~) render_current::$5 ← (byte) render_screen_render#30 + (byte) render_current::ypos2#2 -- vbuz1=vbuz2_plus_vbuz3 lda render_screen_render_30 clc adc ypos2 sta _5 - //SEG215 [103] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) -- pbuz1=pptc1_derefidx_vbuz2 + //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 ldy _5 lda screen_lines_1,y sta screen_line lda screen_lines_1+1,y sta screen_line+1 - //SEG216 [104] (byte) render_current::xpos#0 ← (byte) current_xpos#47 -- vbuz1=vbuz2 + //SEG274 [123] (byte) render_current::xpos#0 ← (byte) current_xpos#47 -- vbuz1=vbuz2 lda current_xpos_47 sta xpos - //SEG217 [105] phi from render_current::@2 to render_current::@4 [phi:render_current::@2->render_current::@4] + //SEG275 [124] phi from render_current::@2 to render_current::@4 [phi:render_current::@2->render_current::@4] b4_from_b2: - //SEG218 [105] 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 + //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 lda #0 sta c - //SEG219 [105] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@2->render_current::@4#1] -- register_copy - //SEG220 [105] phi (byte) render_current::i#4 = (byte) render_current::i#3 [phi:render_current::@2->render_current::@4#2] -- register_copy + //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 jmp b4 - //SEG221 [105] phi from render_current::@5 to render_current::@4 [phi:render_current::@5->render_current::@4] + //SEG279 [124] phi from render_current::@5 to render_current::@4 [phi:render_current::@5->render_current::@4] b4_from_b5: - //SEG222 [105] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@5->render_current::@4#0] -- register_copy - //SEG223 [105] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@5->render_current::@4#1] -- register_copy - //SEG224 [105] phi (byte) render_current::i#4 = (byte) render_current::i#10 [phi:render_current::@5->render_current::@4#2] -- register_copy + //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 jmp b4 - //SEG225 render_current::@4 + //SEG283 render_current::@4 b4: - //SEG226 [106] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) -- vbuz1=pbuz2_derefidx_vbuz3 + //SEG284 [125] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) -- vbuz1=pbuz2_derefidx_vbuz3 ldy i lda (current_piece_gfx_53),y sta current_cell - //SEG227 [107] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 -- vbuz1=_inc_vbuz1 + //SEG285 [126] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 -- vbuz1=_inc_vbuz1 inc i - //SEG228 [108] 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 + //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 lda current_cell cmp #0 beq b5 jmp b9 - //SEG229 render_current::@9 + //SEG287 render_current::@9 b9: - //SEG230 [109] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 -- vbuz1_ge_vbuc1_then_la1 + //SEG288 [128] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 -- vbuz1_ge_vbuc1_then_la1 lda xpos cmp #PLAYFIELD_COLS bcs b5 jmp b10 - //SEG231 render_current::@10 + //SEG289 render_current::@10 b10: - //SEG232 [110] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#64 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG290 [129] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#64 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_char_64 ldy xpos sta (screen_line),y jmp b5 - //SEG233 render_current::@5 + //SEG291 render_current::@5 b5: - //SEG234 [111] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG292 [130] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG235 [112] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuz1=_inc_vbuz1 + //SEG293 [131] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG236 [113] 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 + //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 lda c cmp #4 bne b4_from_b5 jmp b3_from_b5 } -//SEG237 render_playfield +//SEG295 render_playfield render_playfield: { - .label _2 = $7e - .label _3 = $7f - .label screen_line = $16 - .label i = $15 - .label c = $18 - .label l = $14 - //SEG238 [115] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + .label _2 = $87 + .label _3 = $88 + .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] b1_from_render_playfield: - //SEG239 [115] 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 + //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 lda #PLAYFIELD_COLS*2 sta i - //SEG240 [115] 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 + //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 lda #2 sta l jmp b1 - //SEG241 [115] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG299 [134] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] b1_from_b3: - //SEG242 [115] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG243 [115] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //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 jmp b1 - //SEG244 render_playfield::@1 + //SEG302 render_playfield::@1 b1: - //SEG245 [116] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //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 lda l asl sta _2 - //SEG246 [117] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 -- vbuz1=vbuz2_plus_vbuz3 + //SEG304 [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 - //SEG247 [118] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //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 ldy _3 lda screen_lines_1,y sta screen_line lda screen_lines_1+1,y sta screen_line+1 - //SEG248 [119] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG306 [138] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] b2_from_b1: - //SEG249 [119] 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 + //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 lda #0 sta c - //SEG250 [119] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG251 [119] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //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 jmp b2 - //SEG252 [119] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG310 [138] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] b2_from_b2: - //SEG253 [119] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG254 [119] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG255 [119] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //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 jmp b2 - //SEG256 render_playfield::@2 + //SEG314 render_playfield::@2 b2: - //SEG257 [120] *((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 + //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 ldy i lda playfield,y ldy #0 sta (screen_line),y - //SEG258 [121] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 + //SEG316 [140] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 inc screen_line bne !+ inc screen_line+1 !: - //SEG259 [122] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG317 [141] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG260 [123] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 + //SEG318 [142] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG261 [124] 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 + //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 lda c cmp #PLAYFIELD_COLS-1+1 bne b2_from_b2 jmp b3 - //SEG262 render_playfield::@3 + //SEG320 render_playfield::@3 b3: - //SEG263 [125] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG321 [144] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG264 [126] 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 + //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 lda l cmp #PLAYFIELD_LINES-1+1 bne b1_from_b3 jmp breturn - //SEG265 render_playfield::@return + //SEG323 render_playfield::@return breturn: - //SEG266 [127] return + //SEG324 [146] return rts } -//SEG267 play_move_rotate +//SEG325 play_move_rotate play_move_rotate: { - .label _2 = $80 - .label _4 = $83 - .label _6 = $82 - .label orientation = $1a - .label return = $19 - .label key_event = $6f - .label return_4 = $70 - //SEG268 [128] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuz1_eq_vbuc1_then_la1 + .label _2 = $89 + .label _4 = $8c + .label _6 = $8b + .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 lda key_event cmp #KEY_Z beq b1 jmp b6 - //SEG269 play_move_rotate::@6 + //SEG327 play_move_rotate::@6 b6: - //SEG270 [129] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuz1_eq_vbuc1_then_la1 + //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 lda key_event cmp #KEY_X beq b2 - //SEG271 [130] 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] + //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] breturn_from_b14: breturn_from_b6: - //SEG272 [130] 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 - //SEG273 [130] 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 - //SEG274 [130] 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 + //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 lda #0 sta return jmp breturn - //SEG275 play_move_rotate::@return + //SEG333 play_move_rotate::@return breturn: - //SEG276 [131] return + //SEG334 [150] return rts - //SEG277 play_move_rotate::@2 + //SEG335 play_move_rotate::@2 b2: - //SEG278 [132] (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 + //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 lda #$10 clc adc current_orientation sta _2 - //SEG279 [133] (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 + //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 lda #$3f and _2 sta orientation - //SEG280 [134] 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] + //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] b4_from_b1: b4_from_b2: - //SEG281 [134] 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 + //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 jmp b4 - //SEG282 play_move_rotate::@4 + //SEG340 play_move_rotate::@4 b4: - //SEG283 [135] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 -- vbuz1=vbuz2 + //SEG341 [154] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG284 [136] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 -- vbuz1=vbuz2 + //SEG342 [155] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG285 [137] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG343 [156] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta play_collision.orientation - //SEG286 [138] (byte*~) current_piece#79 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG344 [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 - //SEG287 [139] call play_collision - //SEG288 [147] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] + //SEG345 [158] call play_collision + //SEG346 [166] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] play_collision_from_b4: - //SEG289 [147] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy - //SEG290 [147] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy - //SEG291 [147] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy - //SEG292 [147] phi (byte*) current_piece#12 = (byte*~) current_piece#79 [phi:play_move_rotate::@4->play_collision#3] -- register_copy + //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 jsr play_collision - //SEG293 [140] (byte) play_collision::return#13 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 + //SEG351 [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 - //SEG294 play_move_rotate::@14 + //SEG352 play_move_rotate::@14 b14: - //SEG295 [141] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 -- vbuz1=vbuz2 + //SEG353 [160] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 -- vbuz1=vbuz2 lda play_collision.return_13 sta _6 - //SEG296 [142] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG354 [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 - //SEG297 play_move_rotate::@11 + //SEG355 play_move_rotate::@11 b11: - //SEG298 [143] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG356 [162] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG299 [144] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 + //SEG357 [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 @@ -10629,50 +11532,50 @@ play_move_rotate: { lda #0 adc current_piece+1 sta current_piece_gfx+1 - //SEG300 [130] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG358 [149] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] breturn_from_b11: - //SEG301 [130] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#3 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG302 [130] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG303 [130] 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 + //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 lda #1 sta return jmp breturn - //SEG304 play_move_rotate::@1 + //SEG362 play_move_rotate::@1 b1: - //SEG305 [145] (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 + //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 lda current_orientation sec sbc #$10 sta _4 - //SEG306 [146] (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 + //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 lda #$3f and _4 sta orientation jmp b4_from_b1 } -//SEG307 play_collision +//SEG365 play_collision play_collision: { - .label _7 = $89 - .label xpos = $1f - .label ypos = $1e - .label orientation = $1d - .label return = $90 - .label return_1 = $8c - .label piece_gfx = $84 - .label ypos2 = $20 - .label playfield_line = $86 - .label i = $88 - .label col = $23 - .label c = $24 - .label l = $21 - .label return_12 = $8a - .label return_13 = $81 - .label i_2 = $22 - .label return_14 = $25 - .label i_3 = $22 - .label i_11 = $22 - .label i_13 = $22 - //SEG308 [148] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 -- pbuz1=pbuz2_plus_vbuz3 + .label _7 = $92 + .label xpos = $26 + .label ypos = $25 + .label orientation = $24 + .label return = $99 + .label return_1 = $95 + .label piece_gfx = $8d + .label ypos2 = $27 + .label playfield_line = $8f + .label i = $91 + .label col = $2a + .label c = $2b + .label l = $28 + .label return_12 = $93 + .label return_13 = $8a + .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 lda orientation clc adc current_piece_12 @@ -10680,633 +11583,645 @@ play_collision: { lda #0 adc current_piece_12+1 sta piece_gfx+1 - //SEG309 [149] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_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 lda ypos asl sta ypos2 - //SEG310 [150] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] + //SEG368 [169] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] b1_from_play_collision: - //SEG311 [150] 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 + //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 lda #0 sta l - //SEG312 [150] 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 + //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 lda #0 sta i_3 - //SEG313 [150] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy + //SEG371 [169] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy jmp b1 - //SEG314 play_collision::@1 + //SEG372 play_collision::@1 b1: - //SEG315 [151] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //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 ldy ypos2 lda playfield_lines,y sta playfield_line lda playfield_lines+1,y sta playfield_line+1 - //SEG316 [152] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 + //SEG374 [171] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 lda xpos sta col - //SEG317 [153] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] + //SEG375 [172] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] b2_from_b1: - //SEG318 [153] 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 + //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 lda #0 sta c - //SEG319 [153] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy - //SEG320 [153] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy + //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 jmp b2 - //SEG321 play_collision::@2 + //SEG379 play_collision::@2 b2: - //SEG322 [154] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG380 [173] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG323 [155] 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 + //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 ldy i_2 lda (piece_gfx),y cmp #0 beq b3 jmp b8 - //SEG324 play_collision::@8 + //SEG382 play_collision::@8 b8: - //SEG325 [156] 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 + //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 lda ypos2 cmp #2*PLAYFIELD_LINES bcc b4 - //SEG326 [157] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] + //SEG384 [176] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] breturn_from_b8: - //SEG327 [157] phi (byte) play_collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG385 [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 - //SEG328 play_collision::@return + //SEG386 play_collision::@return breturn: - //SEG329 [158] return + //SEG387 [177] return rts - //SEG330 play_collision::@4 + //SEG388 play_collision::@4 b4: - //SEG331 [159] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG389 [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 - //SEG332 [160] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuz1_eq_0_then_la1 + //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 lda _7 cmp #0 beq b5 - //SEG333 [157] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] + //SEG391 [176] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] breturn_from_b4: - //SEG334 [157] phi (byte) play_collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG392 [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 - //SEG335 play_collision::@5 + //SEG393 play_collision::@5 b5: - //SEG336 [161] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG394 [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 - //SEG337 [157] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] + //SEG395 [176] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] breturn_from_b5: - //SEG338 [157] phi (byte) play_collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG396 [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 - //SEG339 play_collision::@6 + //SEG397 play_collision::@6 b6: - //SEG340 [162] 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 + //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 ldy col lda (playfield_line),y cmp #0 beq b3 - //SEG341 [157] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] + //SEG399 [176] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] breturn_from_b6: - //SEG342 [157] phi (byte) play_collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG400 [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 - //SEG343 play_collision::@3 + //SEG401 play_collision::@3 b3: - //SEG344 [163] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG402 [182] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG345 [164] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuz1=_inc_vbuz1 + //SEG403 [183] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG346 [165] 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 + //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 lda c cmp #4 bne b21 jmp b17 - //SEG347 play_collision::@17 + //SEG405 play_collision::@17 b17: - //SEG348 [166] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //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 lda ypos2 clc adc #2 sta ypos2 - //SEG349 [167] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG407 [186] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG350 [168] 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 + //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 lda l cmp #4 bne b20 - //SEG351 [157] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] + //SEG409 [176] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] breturn_from_b17: - //SEG352 [157] phi (byte) play_collision::return#14 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG410 [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 - //SEG353 play_collision::@20 + //SEG411 play_collision::@20 b20: - //SEG354 [169] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG412 [188] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG355 [150] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] + //SEG413 [169] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] b1_from_b20: - //SEG356 [150] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy - //SEG357 [150] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy - //SEG358 [150] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy + //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 jmp b1 - //SEG359 play_collision::@21 + //SEG417 play_collision::@21 b21: - //SEG360 [170] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG418 [189] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG361 [153] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] + //SEG419 [172] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] b2_from_b21: - //SEG362 [153] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy - //SEG363 [153] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy - //SEG364 [153] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy + //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 jmp b2 } -//SEG365 play_move_leftright +//SEG423 play_move_leftright play_move_leftright: { - .label _4 = $8b - .label _8 = $8d - .label return = $26 - .label key_event = $6b - .label return_4 = $6c - //SEG366 [171] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuz1_eq_vbuc1_then_la1 + .label _4 = $94 + .label _8 = $96 + .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 lda key_event cmp #KEY_COMMA beq b1 jmp b6 - //SEG367 play_move_leftright::@6 + //SEG425 play_move_leftright::@6 b6: - //SEG368 [172] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //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 lda key_event cmp #KEY_DOT bne breturn_from_b6 jmp b7 - //SEG369 play_move_leftright::@7 + //SEG427 play_move_leftright::@7 b7: - //SEG370 [173] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //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 ldy current_xpos iny sty play_collision.xpos - //SEG371 [174] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 -- vbuz1=vbuz2 + //SEG429 [193] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG372 [175] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuz1=vbuz2 + //SEG430 [194] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuz1=vbuz2 lda current_orientation sta play_collision.orientation - //SEG373 [176] (byte*~) current_piece#78 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG431 [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 - //SEG374 [177] call play_collision - //SEG375 [147] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] + //SEG432 [196] call play_collision + //SEG433 [166] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] play_collision_from_b7: - //SEG376 [147] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy - //SEG377 [147] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy - //SEG378 [147] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy - //SEG379 [147] phi (byte*) current_piece#12 = (byte*~) current_piece#78 [phi:play_move_leftright::@7->play_collision#3] -- register_copy + //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 jsr play_collision - //SEG380 [178] (byte) play_collision::return#12 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 + //SEG438 [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 - //SEG381 play_move_leftright::@15 + //SEG439 play_move_leftright::@15 b15: - //SEG382 [179] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 -- vbuz1=vbuz2 + //SEG440 [198] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 -- vbuz1=vbuz2 lda play_collision.return_12 sta _4 - //SEG383 [180] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG441 [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 - //SEG384 play_move_leftright::@8 + //SEG442 play_move_leftright::@8 b8: - //SEG385 [181] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 -- vbuz1=_inc_vbuz1 + //SEG443 [200] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 -- vbuz1=_inc_vbuz1 inc current_xpos - //SEG386 [182] 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] + //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] breturn_from_b11: breturn_from_b8: - //SEG387 [182] 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 - //SEG388 [182] 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 + //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 lda #1 sta return jmp breturn - //SEG389 [182] 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] + //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] breturn_from_b14: breturn_from_b15: breturn_from_b6: - //SEG390 [182] 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 - //SEG391 [182] 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 + //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 lda #0 sta return jmp breturn - //SEG392 play_move_leftright::@return + //SEG450 play_move_leftright::@return breturn: - //SEG393 [183] return + //SEG451 [202] return rts - //SEG394 play_move_leftright::@1 + //SEG452 play_move_leftright::@1 b1: - //SEG395 [184] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //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 ldx current_xpos dex stx play_collision.xpos - //SEG396 [185] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 -- vbuz1=vbuz2 + //SEG454 [204] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG397 [186] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuz1=vbuz2 + //SEG455 [205] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuz1=vbuz2 lda current_orientation sta play_collision.orientation - //SEG398 [187] (byte*~) current_piece#77 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG456 [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 - //SEG399 [188] call play_collision - //SEG400 [147] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] + //SEG457 [207] call play_collision + //SEG458 [166] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] play_collision_from_b1: - //SEG401 [147] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy - //SEG402 [147] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy - //SEG403 [147] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy - //SEG404 [147] phi (byte*) current_piece#12 = (byte*~) current_piece#77 [phi:play_move_leftright::@1->play_collision#3] -- register_copy + //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 jsr play_collision - //SEG405 [189] (byte) play_collision::return#1 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 + //SEG463 [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 - //SEG406 play_move_leftright::@14 + //SEG464 play_move_leftright::@14 b14: - //SEG407 [190] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 -- vbuz1=vbuz2 + //SEG465 [209] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 -- vbuz1=vbuz2 lda play_collision.return_1 sta _8 - //SEG408 [191] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG466 [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 - //SEG409 play_move_leftright::@11 + //SEG467 play_move_leftright::@11 b11: - //SEG410 [192] (byte) current_xpos#4 ← -- (byte) current_xpos#1 -- vbuz1=_dec_vbuz1 + //SEG468 [211] (byte) current_xpos#4 ← -- (byte) current_xpos#1 -- vbuz1=_dec_vbuz1 dec current_xpos jmp breturn_from_b11 } -//SEG411 play_move_down +//SEG469 play_move_down play_move_down: { - .label _2 = $8f - .label _12 = $91 - .label movedown = $27 - .label removed = $93 - .label return = $34 - .label key_event = $67 - .label return_3 = $68 - //SEG412 [193] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 + .label _2 = $98 + .label _12 = $9a + .label movedown = $2e + .label removed = $9c + .label return = $3d + .label key_event = $71 + .label return_3 = $72 + //SEG470 [212] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG413 [194] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuz1_neq_vbuc1_then_la1 + //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 lda key_event cmp #KEY_SPACE bne b1_from_play_move_down - //SEG414 [195] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG472 [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 - //SEG415 play_move_down::@8 + //SEG473 play_move_down::@8 b8: - //SEG416 [196] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG474 [215] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] b1_from_b8: - //SEG417 [196] 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 + //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 lda #1 sta movedown jmp b1 - //SEG418 [196] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG476 [215] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b1_from_play_move_down: - //SEG419 [196] 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 + //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 lda #0 sta movedown jmp b1 - //SEG420 play_move_down::@1 + //SEG478 play_move_down::@1 b1: - //SEG421 [197] call keyboard_event_pressed - //SEG422 [295] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG479 [216] call keyboard_event_pressed + //SEG480 [322] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] keyboard_event_pressed_from_b1: - //SEG423 [295] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG481 [322] 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 - //SEG424 [198] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG482 [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 - //SEG425 play_move_down::@17 + //SEG483 play_move_down::@17 b17: - //SEG426 [199] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 -- vbuz1=vbuz2 + //SEG484 [218] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_12 sta _2 - //SEG427 [200] 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 + //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 lda _2 cmp #0 beq b2_from_b17 jmp b9 - //SEG428 play_move_down::@9 + //SEG486 play_move_down::@9 b9: - //SEG429 [201] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG487 [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 - //SEG430 play_move_down::@10 + //SEG488 play_move_down::@10 b10: - //SEG431 [202] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuz1=_inc_vbuz1 + //SEG489 [221] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuz1=_inc_vbuz1 inc movedown - //SEG432 [203] 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] + //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] b2_from_b10: b2_from_b17: b2_from_b9: - //SEG433 [203] 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 + //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 jmp b2 - //SEG434 play_move_down::@2 + //SEG492 play_move_down::@2 b2: - //SEG435 [204] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG493 [223] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 lda current_movedown_counter cmp #current_movedown_slow bcc b4_from_b2 jmp b11 - //SEG436 play_move_down::@11 + //SEG494 play_move_down::@11 b11: - //SEG437 [205] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuz1=_inc_vbuz1 + //SEG495 [224] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuz1=_inc_vbuz1 inc movedown - //SEG438 [206] 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] + //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] b4_from_b11: b4_from_b2: - //SEG439 [206] 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 + //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 jmp b4 - //SEG440 play_move_down::@4 + //SEG498 play_move_down::@4 b4: - //SEG441 [207] 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 + //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 lda movedown cmp #0 beq breturn_from_b4 jmp b12 - //SEG442 play_move_down::@12 + //SEG500 play_move_down::@12 b12: - //SEG443 [208] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //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 ldy current_ypos iny sty play_collision.ypos - //SEG444 [209] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 + //SEG502 [228] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG445 [210] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuz1=vbuz2 + //SEG503 [229] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuz1=vbuz2 lda current_orientation sta play_collision.orientation - //SEG446 [211] (byte*~) current_piece#76 ← (byte*) current_piece#16 -- pbuz1=pbuz2 + //SEG504 [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 - //SEG447 [212] call play_collision - //SEG448 [147] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] + //SEG505 [231] call play_collision + //SEG506 [166] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] play_collision_from_b12: - //SEG449 [147] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy - //SEG450 [147] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy - //SEG451 [147] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy - //SEG452 [147] phi (byte*) current_piece#12 = (byte*~) current_piece#76 [phi:play_move_down::@12->play_collision#3] -- register_copy + //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 jsr play_collision - //SEG453 [213] (byte) play_collision::return#0 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 + //SEG511 [232] (byte) play_collision::return#0 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 lda play_collision.return_14 sta play_collision.return jmp b18 - //SEG454 play_move_down::@18 + //SEG512 play_move_down::@18 b18: - //SEG455 [214] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 -- vbuz1=vbuz2 + //SEG513 [233] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 -- vbuz1=vbuz2 lda play_collision.return sta _12 - //SEG456 [215] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuz1_eq_vbuc1_then_la1 + //SEG514 [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 - //SEG457 [216] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG515 [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 - //SEG458 play_move_down::@13 + //SEG516 play_move_down::@13 b13: - //SEG459 [217] call play_lock_current + //SEG517 [236] call play_lock_current jsr play_lock_current - //SEG460 [218] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG518 [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 - //SEG461 play_move_down::@19 + //SEG519 play_move_down::@19 b19: - //SEG462 [219] call play_remove_lines - //SEG463 [255] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] + //SEG520 [238] call play_remove_lines + //SEG521 [282] 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 - //SEG464 [220] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 -- vbuz1=vbuz2 + //SEG522 [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 - //SEG465 play_move_down::@20 + //SEG523 play_move_down::@20 b20: - //SEG466 [221] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 -- vbuz1=vbuz2 + //SEG524 [240] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 -- vbuz1=vbuz2 lda play_remove_lines.return sta removed - //SEG467 [222] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuz1=vbuz2 + //SEG525 [241] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuz1=vbuz2 lda removed sta play_update_score.removed - //SEG468 [223] call play_update_score + //SEG526 [242] call play_update_score jsr play_update_score - //SEG469 [224] phi from play_move_down::@20 to play_move_down::@21 [phi:play_move_down::@20->play_move_down::@21] + //SEG527 [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 - //SEG470 play_move_down::@21 + //SEG528 play_move_down::@21 b21: - //SEG471 [225] call play_spawn_current - //SEG472 [231] phi from play_move_down::@21 to play_spawn_current [phi:play_move_down::@21->play_spawn_current] + //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] play_spawn_current_from_b21: jsr play_spawn_current - //SEG473 [226] (byte*~) current_piece#80 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG531 [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 - //SEG474 [227] phi from play_move_down::@21 to play_move_down::@7 [phi:play_move_down::@21->play_move_down::@7] + //SEG532 [246] phi from play_move_down::@21 to play_move_down::@7 [phi:play_move_down::@21->play_move_down::@7] b7_from_b21: - //SEG475 [227] phi (byte) current_piece_char#20 = (byte) current_piece_char#12 [phi:play_move_down::@21->play_move_down::@7#0] -- register_copy - //SEG476 [227] phi (byte) current_xpos#33 = (byte) current_xpos#23 [phi:play_move_down::@21->play_move_down::@7#1] -- register_copy - //SEG477 [227] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#16 [phi:play_move_down::@21->play_move_down::@7#2] -- register_copy - //SEG478 [227] 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 + //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 lda #0 sta current_orientation - //SEG479 [227] phi (byte*) current_piece#20 = (byte*~) current_piece#80 [phi:play_move_down::@21->play_move_down::@7#4] -- register_copy - //SEG480 [227] phi (dword) score_bcd#20 = (dword) score_bcd#12 [phi:play_move_down::@21->play_move_down::@7#5] -- register_copy - //SEG481 [227] phi (byte) current_ypos#29 = (byte) current_ypos#18 [phi:play_move_down::@21->play_move_down::@7#6] -- register_copy + //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#19 = (byte) level_bcd#12 [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 jmp b7 - //SEG482 play_move_down::@7 + //SEG542 play_move_down::@7 b7: - //SEG483 [228] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG543 [247] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] breturn_from_b7: - //SEG484 [228] phi (byte) current_piece_char#1 = (byte) current_piece_char#20 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG485 [228] phi (byte) current_xpos#1 = (byte) current_xpos#33 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG486 [228] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#26 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG487 [228] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG488 [228] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG489 [228] phi (dword) score_bcd#10 = (dword) score_bcd#20 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG490 [228] phi (byte) current_ypos#13 = (byte) current_ypos#29 [phi:play_move_down::@7->play_move_down::@return#6] -- register_copy - //SEG491 [228] 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#7] -- vbuz1=vbuc1 + //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#10 = (byte) level_bcd#19 [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 lda #0 sta current_movedown_counter - //SEG492 [228] 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#8] -- vbuz1=vbuc1 + //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 lda #1 sta return jmp breturn - //SEG493 [228] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG555 [247] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] breturn_from_b4: - //SEG494 [228] phi (byte) current_piece_char#1 = (byte) current_piece_char#15 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG495 [228] phi (byte) current_xpos#1 = (byte) current_xpos#10 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG496 [228] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#20 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG497 [228] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG498 [228] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG499 [228] phi (dword) score_bcd#10 = (dword) score_bcd#14 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG500 [228] phi (byte) current_ypos#13 = (byte) current_ypos#21 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG501 [228] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#7] -- register_copy - //SEG502 [228] 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#8] -- vbuz1=vbuc1 + //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#10 = (byte) level_bcd#14 [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 lda #0 sta return jmp breturn - //SEG503 play_move_down::@return + //SEG567 play_move_down::@return breturn: - //SEG504 [229] return + //SEG568 [248] return rts - //SEG505 play_move_down::@6 + //SEG569 play_move_down::@6 b6: - //SEG506 [230] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 -- vbuz1=_inc_vbuz1 + //SEG570 [249] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG507 [227] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG571 [246] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] b7_from_b6: - //SEG508 [227] phi (byte) current_piece_char#20 = (byte) current_piece_char#15 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG509 [227] phi (byte) current_xpos#33 = (byte) current_xpos#10 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG510 [227] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#20 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG511 [227] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG512 [227] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG513 [227] phi (dword) score_bcd#20 = (dword) score_bcd#14 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy - //SEG514 [227] phi (byte) current_ypos#29 = (byte) current_ypos#0 [phi:play_move_down::@6->play_move_down::@7#6] -- register_copy + //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#19 = (byte) level_bcd#14 [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 jmp b7 } -//SEG515 play_spawn_current +//SEG581 play_spawn_current play_spawn_current: { - .label _1 = $97 - .label _3 = $95 - .label piece_idx = $35 - //SEG516 [232] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] + .label _1 = $a0 + .label _3 = $9e + .label piece_idx = $3e + //SEG582 [251] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] b1_from_play_spawn_current: - //SEG517 [232] 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 + //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 lda #7 sta piece_idx jmp b1 - //SEG518 play_spawn_current::@1 + //SEG584 play_spawn_current::@1 b1: - //SEG519 [233] 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 + //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 lda piece_idx cmp #7 beq b2_from_b1 jmp b3 - //SEG520 play_spawn_current::@3 + //SEG586 play_spawn_current::@3 b3: - //SEG521 [234] (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 + //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 lda piece_idx asl sta _3 - //SEG522 [235] (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 + //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 ldy _3 lda PIECES,y sta current_piece_gfx lda PIECES+1,y sta current_piece_gfx+1 - //SEG523 [236] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG589 [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 - //SEG524 [237] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG590 [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 - //SEG525 [238] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG591 [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 - //SEG526 play_spawn_current::@return + //SEG592 play_spawn_current::@return breturn: - //SEG527 [239] return + //SEG593 [258] return rts - //SEG528 [240] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] + //SEG594 [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 - //SEG529 play_spawn_current::@2 + //SEG595 play_spawn_current::@2 b2: - //SEG530 [241] call sid_rnd + //SEG596 [260] call sid_rnd jsr sid_rnd - //SEG531 [242] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 -- vbuz1=vbuz2 + //SEG597 [261] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 -- vbuz1=vbuz2 lda sid_rnd.return sta sid_rnd.return_2 jmp b7 - //SEG532 play_spawn_current::@7 + //SEG598 play_spawn_current::@7 b7: - //SEG533 [243] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 -- vbuz1=vbuz2 + //SEG599 [262] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 -- vbuz1=vbuz2 lda sid_rnd.return_2 sta _1 - //SEG534 [244] (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 + //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 lda #7 and _1 sta piece_idx - //SEG535 [232] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] + //SEG601 [251] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] b1_from_b7: - //SEG536 [232] 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 + //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 jmp b1 } -//SEG537 sid_rnd +//SEG603 sid_rnd sid_rnd: { - .label return = $98 - .label return_2 = $96 - //SEG538 [245] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuz1=_deref_pbuc1 + .label return = $a1 + .label return_2 = $9f + //SEG604 [264] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuz1=_deref_pbuc1 lda SID_VOICE3_OSC sta return jmp breturn - //SEG539 sid_rnd::@return + //SEG605 sid_rnd::@return breturn: - //SEG540 [246] return + //SEG606 [265] return rts } -//SEG541 play_update_score +//SEG607 play_update_score play_update_score: { - .label _2 = $99 - .label removed = $94 - .label add_bcd = $9a - //SEG542 [247] 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 = $a2 + .label _3 = $a7 + .label _5 = $a9 + .label removed = $9d + .label add_bcd = $a3 + .label lines_before = $a8 + .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 lda removed cmp #0 beq breturn_from_play_update_score - jmp b2 - //SEG543 play_update_score::@2 - b2: - //SEG544 [248] (byte~) play_update_score::$2 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz2_rol_2 + jmp b3 + //SEG609 play_update_score::@3 + b3: + //SEG610 [267] (byte~) play_update_score::$2 ← (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 _2 - //SEG545 [249] (dword) play_update_score::add_bcd#0 ← *((const dword[]) score_add_bcd#0 + (byte~) play_update_score::$2) -- vduz1=pduc1_derefidx_vbuz2 + //SEG611 [268] (dword) play_update_score::add_bcd#0 ← *((const dword[]) score_add_bcd#0 + (byte~) play_update_score::$2) -- vduz1=pduc1_derefidx_vbuz2 ldy _2 lda score_add_bcd,y sta add_bcd @@ -11316,9 +12231,24 @@ play_update_score: { sta add_bcd+2 lda score_add_bcd+3,y sta add_bcd+3 - //SEG546 asm { sed } + //SEG612 [269] (byte~) play_update_score::$3 ← < (word) lines_bcd#15 -- vbuz1=_lo_vwuz2 + lda lines_bcd + sta _3 + //SEG613 [270] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$3 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuz2_band_vbuc1 + lda #$f0 + and _3 + sta lines_before + //SEG614 asm { sed } sed - //SEG547 [251] (dword) score_bcd#3 ← (dword) score_bcd#14 + (dword) play_update_score::add_bcd#0 -- vduz1=vduz1_plus_vduz2 + //SEG615 [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 + sta lines_bcd + 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 lda score_bcd clc adc add_bcd @@ -11332,776 +12262,801 @@ play_update_score: { lda score_bcd+3 adc add_bcd+3 sta score_bcd+3 - //SEG548 asm { cld } + //SEG617 [274] (byte~) play_update_score::$5 ← < (word) lines_bcd#23 -- vbuz1=_lo_vwuz2 + lda lines_bcd + sta _5 + //SEG618 [275] (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 + //SEG619 [276] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@2 -- vbuz1_eq_vbuz2_then_la1 + lda lines_before + cmp lines_after + beq b2_from_b3 + jmp b4 + //SEG620 play_update_score::@4 + b4: + //SEG621 [277] (byte) level_bcd#3 ← (byte) level_bcd#14 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_plus_1 + inc level_bcd + //SEG622 [278] phi from play_update_score::@3 play_update_score::@4 to play_update_score::@2 [phi:play_update_score::@3/play_update_score::@4->play_update_score::@2] + b2_from_b3: + b2_from_b4: + //SEG623 [278] phi (byte) level_bcd#22 = (byte) level_bcd#14 [phi:play_update_score::@3/play_update_score::@4->play_update_score::@2#0] -- register_copy + jmp b2 + //SEG624 play_update_score::@2 + b2: + //SEG625 asm { cld } cld - //SEG549 [253] phi from play_update_score play_update_score::@2 to play_update_score::@return [phi:play_update_score/play_update_score::@2->play_update_score::@return] + //SEG626 [280] phi from play_update_score play_update_score::@2 to play_update_score::@return [phi:play_update_score/play_update_score::@2->play_update_score::@return] breturn_from_play_update_score: breturn_from_b2: - //SEG550 [253] phi (dword) score_bcd#12 = (dword) score_bcd#14 [phi:play_update_score/play_update_score::@2->play_update_score::@return#0] -- register_copy + //SEG627 [280] phi (byte) level_bcd#12 = (byte) level_bcd#14 [phi:play_update_score/play_update_score::@2->play_update_score::@return#0] -- register_copy + //SEG628 [280] phi (dword) score_bcd#12 = (dword) score_bcd#14 [phi:play_update_score/play_update_score::@2->play_update_score::@return#1] -- register_copy + //SEG629 [280] phi (word) lines_bcd#13 = (word) lines_bcd#15 [phi:play_update_score/play_update_score::@2->play_update_score::@return#2] -- register_copy jmp breturn - //SEG551 play_update_score::@return + //SEG630 play_update_score::@return breturn: - //SEG552 [254] return + //SEG631 [281] return rts } -//SEG553 play_remove_lines +//SEG632 play_remove_lines play_remove_lines: { - .label return = $92 - .label c = $9e - .label r = $38 - .label w = $3b - .label x = $39 - .label y = $36 - .label removed = $37 - .label full = $3a - //SEG554 [256] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] + .label return = $9b + .label c = $ab + .label r = $42 + .label w = $45 + .label x = $43 + .label y = $40 + .label removed = $41 + .label full = $44 + //SEG633 [283] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] b1_from_play_remove_lines: - //SEG555 [256] 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 + //SEG634 [283] 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 - //SEG556 [256] 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 + //SEG635 [283] 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 - //SEG557 [256] 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 + //SEG636 [283] 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 - //SEG558 [256] 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 + //SEG637 [283] 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 - //SEG559 [256] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] + //SEG638 [283] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] b1_from_b4: - //SEG560 [256] 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 - //SEG561 [256] 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 - //SEG562 [256] 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 - //SEG563 [256] 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 + //SEG639 [283] 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 + //SEG640 [283] 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 + //SEG641 [283] 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 + //SEG642 [283] 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 - //SEG564 play_remove_lines::@1 + //SEG643 play_remove_lines::@1 b1: - //SEG565 [257] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] + //SEG644 [284] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] b2_from_b1: - //SEG566 [257] 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 + //SEG645 [284] 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 - //SEG567 [257] 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 + //SEG646 [284] 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 - //SEG568 [257] 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 - //SEG569 [257] 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 + //SEG647 [284] 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 + //SEG648 [284] 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 - //SEG570 [257] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] + //SEG649 [284] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] b2_from_b3: - //SEG571 [257] 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 - //SEG572 [257] 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 - //SEG573 [257] 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 - //SEG574 [257] 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 + //SEG650 [284] 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 + //SEG651 [284] 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 + //SEG652 [284] 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 + //SEG653 [284] 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 - //SEG575 play_remove_lines::@2 + //SEG654 play_remove_lines::@2 b2: - //SEG576 [258] (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 + //SEG655 [285] (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 - //SEG577 [259] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuz1=_dec_vbuz1 + //SEG656 [286] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuz1=_dec_vbuz1 dec r - //SEG578 [260] 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 + //SEG657 [287] 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 - //SEG579 [261] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] + //SEG658 [288] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] b3_from_b2: - //SEG580 [261] 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 + //SEG659 [288] 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 - //SEG581 play_remove_lines::@3 + //SEG660 play_remove_lines::@3 b3: - //SEG582 [262] *((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 + //SEG661 [289] *((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 - //SEG583 [263] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuz1=_dec_vbuz1 + //SEG662 [290] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuz1=_dec_vbuz1 dec w - //SEG584 [264] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 + //SEG663 [291] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG585 [265] 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 + //SEG664 [292] 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 - //SEG586 play_remove_lines::@9 + //SEG665 play_remove_lines::@9 b9: - //SEG587 [266] 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 + //SEG666 [293] 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 - //SEG588 play_remove_lines::@10 + //SEG667 play_remove_lines::@10 b10: - //SEG589 [267] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG668 [294] (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 - //SEG590 [268] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 + //SEG669 [295] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 inc removed - //SEG591 [269] 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] + //SEG670 [296] 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: - //SEG592 [269] 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 - //SEG593 [269] 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 + //SEG671 [296] 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 + //SEG672 [296] 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 - //SEG594 play_remove_lines::@4 + //SEG673 play_remove_lines::@4 b4: - //SEG595 [270] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 + //SEG674 [297] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG596 [271] 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 + //SEG675 [298] 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 - //SEG597 [272] 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] + //SEG676 [299] 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: - //SEG598 [272] 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 + //SEG677 [299] 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 - //SEG599 play_remove_lines::@5 + //SEG678 play_remove_lines::@5 b5: - //SEG600 [273] 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 + //SEG679 [300] 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 - //SEG601 play_remove_lines::@return + //SEG680 play_remove_lines::@return breturn: - //SEG602 [274] return + //SEG681 [301] return rts - //SEG603 play_remove_lines::@6 + //SEG682 play_remove_lines::@6 b6: - //SEG604 [275] *((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 + //SEG683 [302] *((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 - //SEG605 [276] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuz1=_dec_vbuz1 + //SEG684 [303] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuz1=_dec_vbuz1 dec w jmp b5_from_b6 - //SEG606 [277] phi from play_remove_lines::@2 to play_remove_lines::@18 [phi:play_remove_lines::@2->play_remove_lines::@18] + //SEG685 [304] 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 - //SEG607 play_remove_lines::@18 + //SEG686 play_remove_lines::@18 b18: - //SEG608 [261] phi from play_remove_lines::@18 to play_remove_lines::@3 [phi:play_remove_lines::@18->play_remove_lines::@3] + //SEG687 [288] phi from play_remove_lines::@18 to play_remove_lines::@3 [phi:play_remove_lines::@18->play_remove_lines::@3] b3_from_b18: - //SEG609 [261] 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 + //SEG688 [288] 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 } -//SEG610 play_lock_current +//SEG689 play_lock_current play_lock_current: { - .label ypos2 = $3c - .label playfield_line = $9f - .label col = $3f - .label i = $a1 - .label c = $40 - .label l = $3d - .label i_2 = $3e - .label i_3 = $3e - .label i_7 = $3e - .label i_9 = $3e - //SEG611 [278] (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 = $46 + .label playfield_line = $ac + .label col = $49 + .label i = $ae + .label c = $4a + .label l = $47 + .label i_2 = $48 + .label i_3 = $48 + .label i_7 = $48 + .label i_9 = $48 + //SEG690 [305] (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 - //SEG612 [279] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] + //SEG691 [306] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] b1_from_play_lock_current: - //SEG613 [279] 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 + //SEG692 [306] 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 - //SEG614 [279] 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 + //SEG693 [306] 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 - //SEG615 [279] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy + //SEG694 [306] 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 - //SEG616 play_lock_current::@1 + //SEG695 play_lock_current::@1 b1: - //SEG617 [280] (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 + //SEG696 [307] (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 - //SEG618 [281] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 + //SEG697 [308] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG619 [282] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] + //SEG698 [309] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] b2_from_b1: - //SEG620 [282] 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 + //SEG699 [309] 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 - //SEG621 [282] 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 - //SEG622 [282] 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 + //SEG700 [309] 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 + //SEG701 [309] 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 - //SEG623 play_lock_current::@2 + //SEG702 play_lock_current::@2 b2: - //SEG624 [283] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG703 [310] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG625 [284] 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 + //SEG704 [311] 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 - //SEG626 play_lock_current::@4 + //SEG705 play_lock_current::@4 b4: - //SEG627 [285] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG706 [312] *((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 - //SEG628 play_lock_current::@3 + //SEG707 play_lock_current::@3 b3: - //SEG629 [286] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG708 [313] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG630 [287] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuz1=_inc_vbuz1 + //SEG709 [314] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG631 [288] 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 + //SEG710 [315] 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 - //SEG632 play_lock_current::@5 + //SEG711 play_lock_current::@5 b5: - //SEG633 [289] (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 + //SEG712 [316] (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 - //SEG634 [290] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG713 [317] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG635 [291] 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 + //SEG714 [318] 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 - //SEG636 play_lock_current::@return + //SEG715 play_lock_current::@return breturn: - //SEG637 [292] return + //SEG716 [319] return rts - //SEG638 play_lock_current::@7 + //SEG717 play_lock_current::@7 b7: - //SEG639 [293] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG718 [320] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG640 [279] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] + //SEG719 [306] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] b1_from_b7: - //SEG641 [279] 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 - //SEG642 [279] 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 - //SEG643 [279] 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 + //SEG720 [306] 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 + //SEG721 [306] 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 + //SEG722 [306] 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 - //SEG644 play_lock_current::@8 + //SEG723 play_lock_current::@8 b8: - //SEG645 [294] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG724 [321] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG646 [282] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] + //SEG725 [309] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] b2_from_b8: - //SEG647 [282] 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 - //SEG648 [282] 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 - //SEG649 [282] 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 + //SEG726 [309] 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 + //SEG727 [309] 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 + //SEG728 [309] 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 } -//SEG650 keyboard_event_pressed +//SEG729 keyboard_event_pressed keyboard_event_pressed: { - .label _0 = $a2 - .label _1 = $a4 - .label return = $a9 - .label return_1 = $ab - .label return_2 = $ad - .label row_bits = $a3 - .label return_10 = $af - .label keycode = $41 - .label return_11 = $a5 - .label return_12 = $8e - //SEG651 [296] (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 = $af + .label _1 = $b1 + .label return = $b6 + .label return_1 = $b8 + .label return_2 = $ba + .label row_bits = $b0 + .label return_10 = $bc + .label keycode = $4b + .label return_11 = $b2 + .label return_12 = $97 + //SEG730 [323] (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 - //SEG652 [297] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG731 [324] (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 - //SEG653 [298] (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 + //SEG732 [325] (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 - //SEG654 [299] (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 + //SEG733 [326] (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 - //SEG655 keyboard_event_pressed::@return + //SEG734 keyboard_event_pressed::@return breturn: - //SEG656 [300] return + //SEG735 [327] return rts } -//SEG657 keyboard_event_get +//SEG736 keyboard_event_get keyboard_event_get: { - .label return = $42 - .label return_3 = $65 - //SEG658 [301] 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 = $4c + .label return_3 = $6f + //SEG737 [328] 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 - //SEG659 keyboard_event_get::@3 + //SEG738 keyboard_event_get::@3 b3: - //SEG660 [302] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG739 [329] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG661 [303] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG740 [330] (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 - //SEG662 [304] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG741 [331] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] breturn_from_b3: - //SEG663 [304] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG664 [304] 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 + //SEG742 [331] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG743 [331] 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 - //SEG665 [304] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG744 [331] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] breturn_from_keyboard_event_get: - //SEG666 [304] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG667 [304] 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 + //SEG745 [331] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG746 [331] 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 - //SEG668 keyboard_event_get::@return + //SEG747 keyboard_event_get::@return breturn: - //SEG669 [305] return + //SEG748 [332] return rts } -//SEG670 keyboard_event_scan +//SEG749 keyboard_event_scan keyboard_event_scan: { - .label _3 = $b2 - .label _4 = $b3 - .label _11 = $b5 - .label _14 = $aa - .label _18 = $ac - .label _22 = $ae - .label _26 = $b0 - .label row_scan = $a8 - .label keycode = $46 - .label row = $43 - .label col = $45 - .label event_type = $b4 - //SEG671 [307] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + .label _3 = $bf + .label _4 = $c0 + .label _11 = $c2 + .label _14 = $b7 + .label _18 = $b9 + .label _22 = $bb + .label _26 = $bd + .label row_scan = $b5 + .label keycode = $50 + .label row = $4d + .label col = $4f + .label event_type = $c1 + //SEG750 [334] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] b1_from_keyboard_event_scan: - //SEG672 [307] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG673 [307] 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 + //SEG751 [334] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG752 [334] 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 - //SEG674 [307] 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 + //SEG753 [334] 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 - //SEG675 [307] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG754 [334] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] b1_from_b3: - //SEG676 [307] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG677 [307] 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 - //SEG678 [307] 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 + //SEG755 [334] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG756 [334] 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 + //SEG757 [334] 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 - //SEG679 keyboard_event_scan::@1 + //SEG758 keyboard_event_scan::@1 b1: - //SEG680 [308] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuz1=vbuz2 + //SEG759 [335] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuz1=vbuz2 lda row sta keyboard_matrix_read.rowid - //SEG681 [309] call keyboard_matrix_read + //SEG760 [336] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG682 [310] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 -- vbuz1=vbuz2 + //SEG761 [337] (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 - //SEG683 keyboard_event_scan::@25 + //SEG762 keyboard_event_scan::@25 b25: - //SEG684 [311] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuz2 + //SEG763 [338] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuz2 lda keyboard_matrix_read.return_2 sta row_scan - //SEG685 [312] 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 + //SEG764 [339] 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 - //SEG686 keyboard_event_scan::@13 + //SEG765 keyboard_event_scan::@13 b13: - //SEG687 [313] (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 + //SEG766 [340] (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 - //SEG688 [314] 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] + //SEG767 [341] 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: - //SEG689 [314] 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 - //SEG690 [314] 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 + //SEG768 [341] 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 + //SEG769 [341] 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 - //SEG691 keyboard_event_scan::@3 + //SEG770 keyboard_event_scan::@3 b3: - //SEG692 [315] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG771 [342] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG693 [316] 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 + //SEG772 [343] 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 - //SEG694 [317] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG773 [344] 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 - //SEG695 keyboard_event_scan::@20 + //SEG774 keyboard_event_scan::@20 b20: - //SEG696 [318] call keyboard_event_pressed - //SEG697 [295] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG775 [345] call keyboard_event_pressed + //SEG776 [322] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] keyboard_event_pressed_from_b20: - //SEG698 [295] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG777 [322] 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 - //SEG699 [319] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG778 [346] (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 - //SEG700 keyboard_event_scan::@26 + //SEG779 keyboard_event_scan::@26 b26: - //SEG701 [320] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 -- vbuz1=vbuz2 + //SEG780 [347] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 -- vbuz1=vbuz2 lda keyboard_event_pressed.return sta _14 - //SEG702 [321] 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 + //SEG781 [348] 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 - //SEG703 [322] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG782 [349] 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 - //SEG704 keyboard_event_scan::@21 + //SEG783 keyboard_event_scan::@21 b21: - //SEG705 [323] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] + //SEG784 [350] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] b9_from_b21: - //SEG706 [323] 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 + //SEG785 [350] 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 - //SEG707 [323] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG786 [350] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] b9_from_b26: - //SEG708 [323] 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 + //SEG787 [350] 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 - //SEG709 keyboard_event_scan::@9 + //SEG788 keyboard_event_scan::@9 b9: - //SEG710 [324] call keyboard_event_pressed - //SEG711 [295] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG789 [351] call keyboard_event_pressed + //SEG790 [322] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] keyboard_event_pressed_from_b9: - //SEG712 [295] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG791 [322] 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 - //SEG713 [325] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG792 [352] (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 - //SEG714 keyboard_event_scan::@27 + //SEG793 keyboard_event_scan::@27 b27: - //SEG715 [326] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 -- vbuz1=vbuz2 + //SEG794 [353] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_1 sta _18 - //SEG716 [327] 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 + //SEG795 [354] 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 - //SEG717 keyboard_event_scan::@22 + //SEG796 keyboard_event_scan::@22 b22: - //SEG718 [328] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuz1=vbuz1_bor_vbuc1 + //SEG797 [355] (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 - //SEG719 [329] 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] + //SEG798 [356] 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: - //SEG720 [329] 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 + //SEG799 [356] 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 - //SEG721 keyboard_event_scan::@10 + //SEG800 keyboard_event_scan::@10 b10: - //SEG722 [330] call keyboard_event_pressed - //SEG723 [295] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG801 [357] call keyboard_event_pressed + //SEG802 [322] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] keyboard_event_pressed_from_b10: - //SEG724 [295] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG803 [322] 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 - //SEG725 [331] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG804 [358] (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 - //SEG726 keyboard_event_scan::@28 + //SEG805 keyboard_event_scan::@28 b28: - //SEG727 [332] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 -- vbuz1=vbuz2 + //SEG806 [359] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_2 sta _22 - //SEG728 [333] 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 + //SEG807 [360] 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 - //SEG729 keyboard_event_scan::@23 + //SEG808 keyboard_event_scan::@23 b23: - //SEG730 [334] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuz1=vbuz1_bor_vbuc1 + //SEG809 [361] (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 - //SEG731 [335] 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] + //SEG810 [362] 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: - //SEG732 [335] 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 + //SEG811 [362] 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 - //SEG733 keyboard_event_scan::@11 + //SEG812 keyboard_event_scan::@11 b11: - //SEG734 [336] call keyboard_event_pressed - //SEG735 [295] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG813 [363] call keyboard_event_pressed + //SEG814 [322] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] keyboard_event_pressed_from_b11: - //SEG736 [295] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG815 [322] 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 - //SEG737 [337] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG816 [364] (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 - //SEG738 keyboard_event_scan::@29 + //SEG817 keyboard_event_scan::@29 b29: - //SEG739 [338] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 -- vbuz1=vbuz2 + //SEG818 [365] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_10 sta _26 - //SEG740 [339] 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 + //SEG819 [366] 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 - //SEG741 keyboard_event_scan::@24 + //SEG820 keyboard_event_scan::@24 b24: - //SEG742 [340] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuz1=vbuz2_bor_vbuc1 + //SEG821 [367] (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 - //SEG743 keyboard_event_scan::@return + //SEG822 keyboard_event_scan::@return breturn: - //SEG744 [341] return + //SEG823 [368] return rts - //SEG745 [342] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG824 [369] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b4_from_b25: - //SEG746 [342] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG747 [342] 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 - //SEG748 [342] 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 + //SEG825 [369] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG826 [369] 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 + //SEG827 [369] 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 - //SEG749 [342] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG828 [369] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] b4_from_b5: - //SEG750 [342] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG751 [342] 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 - //SEG752 [342] 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 + //SEG829 [369] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG830 [369] 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 + //SEG831 [369] 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 - //SEG753 keyboard_event_scan::@4 + //SEG832 keyboard_event_scan::@4 b4: - //SEG754 [343] (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 + //SEG833 [370] (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 - //SEG755 [344] (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 + //SEG834 [371] (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 - //SEG756 [345] 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 + //SEG835 [372] 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 - //SEG757 keyboard_event_scan::@15 + //SEG836 keyboard_event_scan::@15 b15: - //SEG758 [346] 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 + //SEG837 [373] 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 - //SEG759 keyboard_event_scan::@16 + //SEG838 keyboard_event_scan::@16 b16: - //SEG760 [347] (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 + //SEG839 [374] (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 - //SEG761 [348] 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 + //SEG840 [375] 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 - //SEG762 keyboard_event_scan::@17 + //SEG841 keyboard_event_scan::@17 b17: - //SEG763 [349] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG842 [376] *((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 - //SEG764 [350] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG843 [377] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG765 [351] 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] + //SEG844 [378] 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: - //SEG766 [351] 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 + //SEG845 [378] 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 - //SEG767 keyboard_event_scan::@5 + //SEG846 keyboard_event_scan::@5 b5: - //SEG768 [352] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG847 [379] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG769 [353] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuz1=_inc_vbuz1 + //SEG848 [380] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG770 [354] 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 + //SEG849 [381] 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 - //SEG771 keyboard_event_scan::@19 + //SEG850 keyboard_event_scan::@19 b19: - //SEG772 [355] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG851 [382] *((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 - //SEG773 keyboard_event_scan::@7 + //SEG852 keyboard_event_scan::@7 b7: - //SEG774 [356] (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 + //SEG853 [383] (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 - //SEG775 [357] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG854 [384] *((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 - //SEG776 [358] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG855 [385] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5_from_b7 } -//SEG777 keyboard_matrix_read +//SEG856 keyboard_matrix_read keyboard_matrix_read: { - .label return = $b6 - .label rowid = $a6 - .label return_2 = $a7 - //SEG778 [359] *((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 = $c3 + .label rowid = $b3 + .label return_2 = $b4 + //SEG857 [386] *((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 - //SEG779 [360] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuz1=_bnot__deref_pbuc1 + //SEG858 [387] (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 - //SEG780 keyboard_matrix_read::@return + //SEG859 keyboard_matrix_read::@return breturn: - //SEG781 [361] return + //SEG860 [388] return rts } -//SEG782 render_show +//SEG861 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 = $48 - //SEG783 [362] 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 = $52 + //SEG862 [389] 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 - //SEG784 [363] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] + //SEG863 [390] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] toD0182_from_render_show: jmp toD0182 - //SEG785 render_show::toD0182 + //SEG864 render_show::toD0182 toD0182: - //SEG786 [364] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] + //SEG865 [391] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] b2_from_toD0182: - //SEG787 [364] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@2#0] -- vbuz1=vbuc1 + //SEG866 [391] 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 - //SEG788 render_show::@2 + //SEG867 render_show::@2 b2: - //SEG789 [365] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuz1 + //SEG868 [392] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuz1 lda d018val sta D018 - //SEG790 [366] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 + //SEG869 [393] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 lda render_screen_show sta render_screen_showing_1 jmp breturn - //SEG791 render_show::@return + //SEG870 render_show::@return breturn: - //SEG792 [367] return + //SEG871 [394] return rts - //SEG793 [368] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] + //SEG872 [395] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] toD0181_from_render_show: jmp toD0181 - //SEG794 render_show::toD0181 + //SEG873 render_show::toD0181 toD0181: - //SEG795 [364] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] + //SEG874 [391] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] b2_from_toD0181: - //SEG796 [364] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@2#0] -- vbuz1=vbuc1 + //SEG875 [391] 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 } -//SEG797 play_init +//SEG876 play_init play_init: { - .label _1 = $b8 - .label pli = $4a - .label idx = $4c - .label j = $49 - //SEG798 [370] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] + .label _1 = $c5 + .label pli = $54 + .label idx = $56 + .label j = $53 + //SEG877 [397] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] b1_from_play_init: - //SEG799 [370] 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 + //SEG878 [397] 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 - //SEG800 [370] 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 + //SEG879 [397] 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 - //SEG801 [370] 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 + //SEG880 [397] 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 - //SEG802 [370] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] + //SEG881 [397] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] b1_from_b1: - //SEG803 [370] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy - //SEG804 [370] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy - //SEG805 [370] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy + //SEG882 [397] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy + //SEG883 [397] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy + //SEG884 [397] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy jmp b1 - //SEG806 play_init::@1 + //SEG885 play_init::@1 b1: - //SEG807 [371] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG886 [398] (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 - //SEG808 [372] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuz1=pbuz2 + //SEG887 [399] *((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 - //SEG809 [373] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG888 [400] *((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 - //SEG810 [374] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG889 [401] (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 @@ -12109,246 +13064,246 @@ play_init: { bcc !+ inc pli+1 !: - //SEG811 [375] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG890 [402] (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 - //SEG812 [376] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuz1=_inc_vbuz1 + //SEG891 [403] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuz1=_inc_vbuz1 inc j - //SEG813 [377] 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 + //SEG892 [404] 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 - //SEG814 play_init::@2 + //SEG893 play_init::@2 b2: - //SEG815 [378] *((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 + //SEG894 [405] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 lda #PLAYFIELD_COLS*PLAYFIELD_LINES sta playfield_lines_idx+PLAYFIELD_LINES jmp breturn - //SEG816 play_init::@return + //SEG895 play_init::@return breturn: - //SEG817 [379] return + //SEG896 [406] return rts } -//SEG818 sprites_irq_init +//SEG897 sprites_irq_init sprites_irq_init: { - //SEG819 asm { sei } + //SEG898 asm { sei } sei - //SEG820 [381] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG899 [408] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG821 asm { ldaCIA1_INTERRUPT } + //SEG900 asm { ldaCIA1_INTERRUPT } lda CIA1_INTERRUPT - //SEG822 [383] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 + //SEG901 [410] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_DDR_MEMORY_MASK sta PROCPORT_DDR - //SEG823 [384] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 + //SEG902 [411] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - //SEG824 [385] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 + //SEG903 [412] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG825 [386] *((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 + //SEG904 [413] *((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 - //SEG826 [387] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 + //SEG905 [414] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER_FIRST sta RASTER - //SEG827 [388] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG906 [415] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_ENABLE - //SEG828 [389] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 + //SEG907 [416] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 lda #sprites_irq sta HARDWARE_IRQ+1 - //SEG829 asm { cli } + //SEG908 asm { cli } cli jmp breturn - //SEG830 sprites_irq_init::@return + //SEG909 sprites_irq_init::@return breturn: - //SEG831 [391] return + //SEG910 [418] return rts } -//SEG832 sprites_init +//SEG911 sprites_init sprites_init: { - .label s2 = $b9 - .label xpos = $4e - .label s = $4d - //SEG833 [392] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + .label s2 = $c6 + .label xpos = $58 + .label s = $57 + //SEG912 [419] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 lda #$f sta SPRITES_ENABLE - //SEG834 [393] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG913 [420] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SPRITES_MC - //SEG835 [394] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG914 [421] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 lda SPRITES_MC sta SPRITES_EXPAND_Y - //SEG836 [395] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG915 [422] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 lda SPRITES_EXPAND_Y sta SPRITES_EXPAND_X - //SEG837 [396] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] + //SEG916 [423] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] b1_from_sprites_init: - //SEG838 [396] 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 + //SEG917 [423] 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 - //SEG839 [396] 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 + //SEG918 [423] 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 - //SEG840 [396] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] + //SEG919 [423] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] b1_from_b1: - //SEG841 [396] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy - //SEG842 [396] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy + //SEG920 [423] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy + //SEG921 [423] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy jmp b1 - //SEG843 sprites_init::@1 + //SEG922 sprites_init::@1 b1: - //SEG844 [397] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG923 [424] (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 - //SEG845 [398] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG924 [425] *((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 - //SEG846 [399] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG925 [426] *((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 - //SEG847 [400] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG926 [427] (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 - //SEG848 [401] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuz1=_inc_vbuz1 + //SEG927 [428] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuz1=_inc_vbuz1 inc s - //SEG849 [402] 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 + //SEG928 [429] 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 - //SEG850 sprites_init::@return + //SEG929 sprites_init::@return breturn: - //SEG851 [403] return + //SEG930 [430] return rts } -//SEG852 render_init +//SEG931 render_init render_init: { .const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_CHARSET)>>6 - .label _13 = $ba - .label _14 = $bb - .label li_1 = $50 - .label li_2 = $52 - .label i = $4f + .label _13 = $c7 + .label _14 = $c8 + .label li_1 = $5a + .label li_2 = $5c + .label i = $59 jmp vicSelectGfxBank1 - //SEG853 render_init::vicSelectGfxBank1 + //SEG932 render_init::vicSelectGfxBank1 vicSelectGfxBank1: - //SEG854 [405] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG933 [432] *((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 - //SEG855 [406] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] + //SEG934 [433] 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 - //SEG856 render_init::vicSelectGfxBank1_toDd001 + //SEG935 render_init::vicSelectGfxBank1_toDd001 vicSelectGfxBank1_toDd001: jmp vicSelectGfxBank1_b1 - //SEG857 render_init::vicSelectGfxBank1_@1 + //SEG936 render_init::vicSelectGfxBank1_@1 vicSelectGfxBank1_b1: - //SEG858 [407] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 + //SEG937 [434] *((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 - //SEG859 render_init::@3 + //SEG938 render_init::@3 b3: - //SEG860 [408] *((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 + //SEG939 [435] *((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 - //SEG861 [409] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG940 [436] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BORDERCOL - //SEG862 [410] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG941 [437] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BGCOL1 - //SEG863 [411] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 + //SEG942 [438] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 lda #BLUE sta BGCOL2 - //SEG864 [412] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 + //SEG943 [439] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 lda #CYAN sta BGCOL3 - //SEG865 [413] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 + //SEG944 [440] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 lda #GREY sta BGCOL4 - //SEG866 [414] call render_screen_original - //SEG867 [427] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] + //SEG945 [441] call render_screen_original + //SEG946 [454] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] render_screen_original_from_b3: - //SEG868 [427] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 + //SEG947 [454] 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 - //SEG869 [415] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] + //SEG948 [442] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] b4_from_b3: jmp b4 - //SEG870 render_init::@4 + //SEG949 render_init::@4 b4: - //SEG871 [416] call render_screen_original - //SEG872 [427] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] + //SEG950 [443] call render_screen_original + //SEG951 [454] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] render_screen_original_from_b4: - //SEG873 [427] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_init::@4->render_screen_original#0] -- pbuz1=pbuc1 + //SEG952 [454] 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 - //SEG874 [417] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] + //SEG953 [444] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] b1_from_b4: - //SEG875 [417] 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 + //SEG954 [444] 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 - //SEG876 [417] 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 + //SEG955 [444] 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 - //SEG877 [417] 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 + //SEG956 [444] 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 - //SEG878 [417] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + //SEG957 [444] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] b1_from_b1: - //SEG879 [417] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - //SEG880 [417] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy - //SEG881 [417] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy + //SEG958 [444] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG959 [444] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + //SEG960 [444] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy jmp b1 - //SEG882 render_init::@1 + //SEG961 render_init::@1 b1: - //SEG883 [418] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG962 [445] (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 - //SEG884 [419] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuz1=pbuz2 + //SEG963 [446] *((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 - //SEG885 [420] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG964 [447] (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 - //SEG886 [421] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuz1=pbuz2 + //SEG965 [448] *((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 - //SEG887 [422] (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 + //SEG966 [449] (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 @@ -12356,7 +13311,7 @@ render_init: { bcc !+ inc li_1+1 !: - //SEG888 [423] (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 + //SEG967 [450] (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 @@ -12364,351 +13319,351 @@ render_init: { bcc !+ inc li_2+1 !: - //SEG889 [424] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuz1=_inc_vbuz1 + //SEG968 [451] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG890 [425] 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 + //SEG969 [452] 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 - //SEG891 render_init::@return + //SEG970 render_init::@return breturn: - //SEG892 [426] return + //SEG971 [453] return rts } -//SEG893 render_screen_original +//SEG972 render_screen_original render_screen_original: { .const SPACE = 0 - .label screen = $59 - .label cols = $5b - .label x = $5d - .label oscr = $55 - .label ocols = $57 - .label y = $54 - //SEG894 [428] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] + .label screen = $63 + .label cols = $65 + .label x = $67 + .label oscr = $5f + .label ocols = $61 + .label y = $5e + //SEG973 [455] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] b1_from_render_screen_original: - //SEG895 [428] 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 + //SEG974 [455] 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 - //SEG896 [428] 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 + //SEG975 [455] 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 - //SEG897 [428] 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 + //SEG976 [455] 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 - //SEG898 [428] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS#0 [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 + //SEG977 [455] 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 - //SEG899 [428] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#4] -- register_copy + //SEG978 [455] 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 - //SEG900 [428] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] + //SEG979 [455] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] b1_from_b7: - //SEG901 [428] 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 - //SEG902 [428] 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 - //SEG903 [428] 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 - //SEG904 [428] 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 - //SEG905 [428] 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 + //SEG980 [455] 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 + //SEG981 [455] 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 + //SEG982 [455] 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 + //SEG983 [455] 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 + //SEG984 [455] 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 - //SEG906 render_screen_original::@1 + //SEG985 render_screen_original::@1 b1: - //SEG907 [429] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] + //SEG986 [456] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] b2_from_b1: - //SEG908 [429] 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 + //SEG987 [456] 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 - //SEG909 [429] 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 - //SEG910 [429] 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 + //SEG988 [456] 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 + //SEG989 [456] 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 - //SEG911 [429] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] + //SEG990 [456] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] b2_from_b2: - //SEG912 [429] 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 - //SEG913 [429] 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 - //SEG914 [429] 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 + //SEG991 [456] 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 + //SEG992 [456] 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 + //SEG993 [456] 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 - //SEG915 render_screen_original::@2 + //SEG994 render_screen_original::@2 b2: - //SEG916 [430] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG995 [457] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG917 [431] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 + //SEG996 [458] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG918 [432] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG997 [459] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG919 [433] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 + //SEG998 [460] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG920 [434] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuz1=_inc_vbuz1 + //SEG999 [461] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuz1=_inc_vbuz1 inc x - //SEG921 [435] 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 + //SEG1000 [462] 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 - //SEG922 [436] 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] + //SEG1001 [463] 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: - //SEG923 [436] 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 - //SEG924 [436] 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 - //SEG925 [436] 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 - //SEG926 [436] 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 - //SEG927 [436] 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 + //SEG1002 [463] 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 + //SEG1003 [463] 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 + //SEG1004 [463] 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 + //SEG1005 [463] 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 + //SEG1006 [463] 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 - //SEG928 render_screen_original::@3 + //SEG1007 render_screen_original::@3 b3: - //SEG929 [437] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG1008 [464] *((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 - //SEG930 [438] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 + //SEG1009 [465] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG931 [439] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 + //SEG1010 [466] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 inc oscr bne !+ inc oscr+1 !: - //SEG932 [440] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG1011 [467] *((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 - //SEG933 [441] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 + //SEG1012 [468] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG934 [442] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 + //SEG1013 [469] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 inc ocols bne !+ inc ocols+1 !: - //SEG935 [443] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuz1=_inc_vbuz1 + //SEG1014 [470] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuz1=_inc_vbuz1 inc x - //SEG936 [444] 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 + //SEG1015 [471] 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 - //SEG937 [445] 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] + //SEG1016 [472] 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: - //SEG938 [445] 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 - //SEG939 [445] 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 - //SEG940 [445] 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 + //SEG1017 [472] 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 + //SEG1018 [472] 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 + //SEG1019 [472] 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 - //SEG941 render_screen_original::@4 + //SEG1020 render_screen_original::@4 b4: - //SEG942 [446] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG1021 [473] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG943 [447] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 + //SEG1022 [474] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG944 [448] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG1023 [475] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG945 [449] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 + //SEG1024 [476] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG946 [450] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuz1=_inc_vbuz1 + //SEG1025 [477] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuz1=_inc_vbuz1 inc x - //SEG947 [451] 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 + //SEG1026 [478] 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 - //SEG948 render_screen_original::@7 + //SEG1027 render_screen_original::@7 b7: - //SEG949 [452] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 + //SEG1028 [479] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG950 [453] 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 + //SEG1029 [480] 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 - //SEG951 render_screen_original::@return + //SEG1030 render_screen_original::@return breturn: - //SEG952 [454] return + //SEG1031 [481] return rts } -//SEG953 sid_rnd_init +//SEG1032 sid_rnd_init sid_rnd_init: { - //SEG954 [455] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 + //SEG1033 [482] *((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 - //SEG955 [456] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG1034 [483] *((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 - //SEG956 sid_rnd_init::@return + //SEG1035 sid_rnd_init::@return breturn: - //SEG957 [457] return + //SEG1036 [484] return rts } -//SEG958 sprites_irq +//SEG1037 sprites_irq sprites_irq: { .const toSpritePtr2_return = PLAYFIELD_SPRITES>>6 - .label _4 = $c3 - .label ypos = $bc - .label ptr = $bd - .label ptr_1 = $c7 - .label ptr_2 = $c8 - .label ptr_3 = $be - .label ptr_4 = $bf - .label raster_next = $5f - //SEG959 entry interrupt(HARDWARE_CLOBBER) + .label _4 = $d0 + .label ypos = $c9 + .label ptr = $ca + .label ptr_1 = $d4 + .label ptr_2 = $d5 + .label ptr_3 = $cb + .label ptr_4 = $cc + .label raster_next = $69 + //SEG1038 entry interrupt(HARDWARE_CLOBBER) sta rega+1 stx regx+1 sty regy+1 - //SEG960 asm { cld } + //SEG1039 asm { cld } cld - //SEG961 [459] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuz1=vbuz2 + //SEG1040 [486] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuz1=vbuz2 lda irq_sprite_ypos sta ypos - //SEG962 [460] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 + //SEG1041 [487] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 lda ypos sta SPRITES_YPOS - //SEG963 [461] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 + //SEG1042 [488] *((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 - //SEG964 [462] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 + //SEG1043 [489] *((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 - //SEG965 [463] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 + //SEG1044 [490] *((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 - //SEG966 sprites_irq::@1 + //SEG1045 sprites_irq::@1 b1: - //SEG967 [464] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 + //SEG1046 [491] 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 - //SEG968 sprites_irq::@7 + //SEG1047 sprites_irq::@7 b7: - //SEG969 [465] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuz1=vbuz2 + //SEG1048 [492] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuz1=vbuz2 lda irq_sprite_ptr sta ptr - //SEG970 [466] 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 + //SEG1049 [493] 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 - //SEG971 sprites_irq::@8 + //SEG1050 sprites_irq::@8 b8: - //SEG972 [467] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuz1 + //SEG1051 [494] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuz1 lda ptr sta PLAYFIELD_SPRITE_PTRS_2 - //SEG973 [468] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuz1=_inc_vbuz2 + //SEG1052 [495] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuz1=_inc_vbuz2 ldy ptr iny sty ptr_3 - //SEG974 [469] *((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 + //SEG1053 [496] *((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 - //SEG975 [470] *((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 + //SEG1054 [497] *((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 - //SEG976 [471] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuz1=_inc_vbuz2 + //SEG1055 [498] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuz1=_inc_vbuz2 ldy ptr_3 iny sty ptr_4 - //SEG977 [472] *((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 + //SEG1056 [499] *((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 - //SEG978 sprites_irq::@3 + //SEG1057 sprites_irq::@3 b3: - //SEG979 [473] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz2 + //SEG1058 [500] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz2 ldy irq_cnt iny sty irq_cnt_1 - //SEG980 [474] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 + //SEG1059 [501] 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 - //SEG981 sprites_irq::@10 + //SEG1060 sprites_irq::@10 b10: - //SEG982 [475] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 + //SEG1061 [502] (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 - //SEG983 [476] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 + //SEG1062 [503] (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 - //SEG984 [477] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_plus_vbuc1 + //SEG1063 [504] (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 - //SEG985 [478] phi from sprites_irq::@10 sprites_irq::@13 to sprites_irq::@5 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5] + //SEG1064 [505] 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: - //SEG986 [478] phi (byte) irq_raster_next#13 = (byte) irq_raster_next#2 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5#0] -- register_copy + //SEG1065 [505] 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 - //SEG987 sprites_irq::@5 + //SEG1066 sprites_irq::@5 b5: - //SEG988 [479] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 -- vbuz1=vbuz2 + //SEG1067 [506] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 -- vbuz1=vbuz2 lda irq_raster_next_13 sta raster_next - //SEG989 [480] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=vbuz2_band_vbuc1 + //SEG1068 [507] (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 - //SEG990 [481] if((byte~) sprites_irq::$4!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto sprites_irq::@6 -- vbuz1_neq_vbuc1_then_la1 + //SEG1069 [508] 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 - //SEG991 sprites_irq::@12 + //SEG1070 sprites_irq::@12 b12: - //SEG992 [482] (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 + //SEG1071 [509] (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 - //SEG993 [483] phi from sprites_irq::@12 sprites_irq::@5 to sprites_irq::@6 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6] + //SEG1072 [510] 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: - //SEG994 [483] 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 + //SEG1073 [510] 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 - //SEG995 sprites_irq::@6 + //SEG1074 sprites_irq::@6 b6: - //SEG996 [484] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 -- _deref_pbuc1=vbuz1 + //SEG1075 [511] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 -- _deref_pbuc1=vbuz1 lda raster_next sta RASTER - //SEG997 [485] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG1076 [512] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS jmp breturn - //SEG998 sprites_irq::@return + //SEG1077 sprites_irq::@return breturn: - //SEG999 [486] return - exit interrupt(HARDWARE_CLOBBER) + //SEG1078 [513] return - exit interrupt(HARDWARE_CLOBBER) rega: lda #00 regx: @@ -12716,49 +13671,49 @@ sprites_irq: { regy: ldy #00 rti - //SEG1000 sprites_irq::@4 + //SEG1079 sprites_irq::@4 b4: - //SEG1001 [487] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 + //SEG1080 [514] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 lda #0 sta irq_cnt_14 - //SEG1002 [488] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 + //SEG1081 [515] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next_1 - //SEG1003 [489] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 + //SEG1082 [516] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 lda #$32 sta irq_sprite_ypos_1 - //SEG1004 [490] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] + //SEG1083 [517] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] toSpritePtr2_from_b4: jmp toSpritePtr2 - //SEG1005 sprites_irq::toSpritePtr2 + //SEG1084 sprites_irq::toSpritePtr2 toSpritePtr2: jmp b13 - //SEG1006 sprites_irq::@13 + //SEG1085 sprites_irq::@13 b13: - //SEG1007 [491] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 + //SEG1086 [518] (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 - //SEG1008 sprites_irq::@2 + //SEG1087 sprites_irq::@2 b2: - //SEG1009 [492] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuz1 + //SEG1088 [519] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuz1 lda ptr sta PLAYFIELD_SPRITE_PTRS_1 - //SEG1010 [493] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuz1=_inc_vbuz2 + //SEG1089 [520] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuz1=_inc_vbuz2 ldy ptr iny sty ptr_1 - //SEG1011 [494] *((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 + //SEG1090 [521] *((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 - //SEG1012 [495] *((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 + //SEG1091 [522] *((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 - //SEG1013 [496] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuz1=_inc_vbuz2 + //SEG1092 [523] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuz1=_inc_vbuz2 ldy ptr_1 iny sty ptr_2 - //SEG1014 [497] *((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 + //SEG1093 [524] *((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 @@ -12831,219 +13786,235 @@ Statement [7] (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dw 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 -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:8 [ current_ypos#9 current_ypos#86 current_ypos#87 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:40 [ 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:10 [ current_xpos#47 current_xpos#112 current_xpos#113 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:50 [ 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:51 [ 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:149 [ play_spawn_current::$3 ] +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:59 [ 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:60 [ 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 score_bcd#14 ] ( 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 score_bcd#14 ] ) 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#14 ] ( 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#14 ] ) 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:47 [ 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:71 [ 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:56 [ 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:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] -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 score_bcd#10 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 score_bcd#10 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:102 [ 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 score_bcd#10 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 score_bcd#10 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 score_bcd#10 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 score_bcd#10 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 score_bcd#10 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 score_bcd#10 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:9 [ 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 score_bcd#10 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 score_bcd#10 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a -Statement [80] (byte~) render_score::$9 ← (byte) render_score::score_byte#0 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ render_screen_render#17 render_score::b#2 render_score::screen_score_pos#4 render_score::score_byte#0 render_score::$9 ] ( 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 render_score::b#2 render_score::screen_score_pos#4 render_score::score_byte#0 render_score::$9 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ render_score::b#2 render_score::b#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:115 [ render_score::score_byte#0 ] -Statement [81] (byte~) render_score::$10 ← (const byte) render_score::ZERO_CHAR#0 + (byte~) render_score::$9 [ render_screen_render#17 render_score::b#2 render_score::screen_score_pos#4 render_score::score_byte#0 render_score::$10 ] ( 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 render_score::b#2 render_score::screen_score_pos#4 render_score::score_byte#0 render_score::$10 ] ) always clobbers reg byte a -Statement [82] *((byte*) render_score::screen_score_pos#4) ← (byte~) render_score::$10 [ render_screen_render#17 render_score::b#2 render_score::screen_score_pos#4 render_score::score_byte#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 render_score::b#2 render_score::screen_score_pos#4 render_score::score_byte#0 ] ) always clobbers reg byte y +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:63 [ level_bcd#22 level_bcd#19 level_bcd#12 level_bcd#14 level_bcd#10 level_bcd#3 ] +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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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:47 [ 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:50 [ 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:40 [ 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:51 [ 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:71 [ 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:56 [ 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:59 [ 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:60 [ 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: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:3 [ render_screen_render#17 render_screen_render#11 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:5 [ render_score::b#2 render_score::b#1 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:115 [ render_score::score_byte#0 ] -Statement [83] (byte*) render_score::screen_score_pos#2 ← -- (byte*) render_score::screen_score_pos#4 [ render_screen_render#17 render_score::b#2 render_score::score_byte#0 render_score::screen_score_pos#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 render_score::b#2 render_score::score_byte#0 render_score::screen_score_pos#2 ] ) always clobbers reg byte a -Statement [84] (byte~) render_score::$11 ← (byte) render_score::score_byte#0 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ render_screen_render#17 render_score::b#2 render_score::screen_score_pos#2 render_score::$11 ] ( 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 render_score::b#2 render_score::screen_score_pos#2 render_score::$11 ] ) always clobbers reg byte a -Statement [85] (byte~) render_score::$12 ← (const byte) render_score::ZERO_CHAR#0 + (byte~) render_score::$11 [ render_screen_render#17 render_score::b#2 render_score::screen_score_pos#2 render_score::$12 ] ( 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 render_score::b#2 render_score::screen_score_pos#2 render_score::$12 ] ) always clobbers reg byte a -Statement [86] *((byte*) render_score::screen_score_pos#2) ← (byte~) render_score::$12 [ render_screen_render#17 render_score::b#2 render_score::screen_score_pos#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 render_score::b#2 render_score::screen_score_pos#2 ] ) always clobbers reg byte y -Statement [87] (byte*) render_score::screen_score_pos#3 ← -- (byte*) render_score::screen_score_pos#2 [ render_screen_render#17 render_score::b#2 render_score::screen_score_pos#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 render_score::b#2 render_score::screen_score_pos#3 ] ) always clobbers reg byte a -Statement [92] (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 score_bcd#10 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::ypos2#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:13 [ current_piece_char#64 current_piece_char#90 current_piece_char#91 ] -Statement [95] (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 score_bcd#10 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:14 [ 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:15 [ render_current::l#4 render_current::l#1 ] -Statement [102] (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 score_bcd#10 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:16 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] -Statement [103] (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 score_bcd#10 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 [106] (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 score_bcd#10 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:17 [ 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:18 [ render_current::c#2 render_current::c#1 ] -Statement [110] *((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 score_bcd#10 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 [116] (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 score_bcd#10 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:19 [ render_screen_render#21 render_screen_render#65 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:20 [ render_playfield::l#2 render_playfield::l#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:21 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] -Statement [117] (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 score_bcd#10 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ) always clobbers reg byte a -Statement [118] (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 score_bcd#10 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a -Statement [120] *((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 score_bcd#10 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:149 [ play_spawn_current::$3 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:19 [ render_screen_render#21 render_screen_render#65 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:20 [ render_playfield::l#2 render_playfield::l#1 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:21 [ 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:24 [ render_playfield::c#2 render_playfield::c#1 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:24 [ render_playfield::c#2 render_playfield::c#1 ] -Statement [132] (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 score_bcd#10 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:110 [ main::render#2 ] -Statement [133] (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 score_bcd#10 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 [138] (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 score_bcd#10 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:26 [ 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:31 [ 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:30 [ 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:29 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] -Statement [144] (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 score_bcd#10 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 [145] (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 score_bcd#10 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 [146] (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 score_bcd#10 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 [148] (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:139 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:177 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:188 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:212 [ 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 score_bcd#14 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:106 [ main::render#1 ] -Statement [149] (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:139 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:177 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:188 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:212 [ 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 score_bcd#14 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a -Statement [151] (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:139 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:177 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:188 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:212 [ 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 score_bcd#14 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:32 [ 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:34 [ 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:33 [ play_collision::l#6 play_collision::l#1 ] -Statement [155] 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:139 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:177 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:188 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:212 [ 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 score_bcd#14 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:35 [ 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:36 [ play_collision::c#2 play_collision::c#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:136 [ play_collision::i#1 ] -Statement [159] (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:139 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:177 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:188 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:212 [ 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 score_bcd#14 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 [162] 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:139 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:177 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:188 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:212 [ 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 score_bcd#14 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 [176] (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 score_bcd#10 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 [187] (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 score_bcd#10 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 [211] (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 score_bcd#14 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 score_bcd#14 current_piece#76 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a -Statement [226] (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 score_bcd#12 ] ( 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 score_bcd#12 ] ) always clobbers reg byte a -Statement [234] (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:225 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#12 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:53 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] -Statement [235] (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:225 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#12 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [236] (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:225 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#12 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [237] (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:225 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#12 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 [238] (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:225 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#12 current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ) always clobbers reg byte a -Statement [244] (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:225 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#12 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a -Statement [248] (byte~) play_update_score::$2 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ score_bcd#14 play_update_score::$2 ] ( main:12::play_move_down:45::play_update_score:223 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#14 play_update_score::$2 ] ) always clobbers reg byte a -Statement [249] (dword) play_update_score::add_bcd#0 ← *((const dword[]) score_add_bcd#0 + (byte~) play_update_score::$2) [ score_bcd#14 play_update_score::add_bcd#0 ] ( main:12::play_move_down:45::play_update_score:223 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#14 play_update_score::add_bcd#0 ] ) always clobbers reg byte a -Statement [251] (dword) score_bcd#3 ← (dword) score_bcd#14 + (dword) play_update_score::add_bcd#0 [ score_bcd#3 ] ( main:12::play_move_down:45::play_update_score:223 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#3 ] ) always clobbers reg byte a -Statement [267] (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:219 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#14 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:54 [ play_remove_lines::y#8 play_remove_lines::y#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:55 [ 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:56 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] -Statement [275] *((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:219 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#14 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:59 [ 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 [278] (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:217 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#14 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#0 ] ) always clobbers reg byte a -Statement [280] (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:217 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#14 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:60 [ 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:62 [ 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:61 [ play_lock_current::l#6 play_lock_current::l#1 ] -Statement [284] 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:217 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#14 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:63 [ 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:64 [ play_lock_current::c#2 play_lock_current::c#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:161 [ play_lock_current::i#1 ] -Statement [285] *((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:217 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#14 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 [296] (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:197 [ 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 score_bcd#14 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:318 [ 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 score_bcd#14 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:324 [ 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 score_bcd#14 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:330 [ 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 score_bcd#14 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:336 [ 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 score_bcd#14 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:39 [ 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:65 [ keyboard_event_pressed::keycode#5 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:68 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] -Statement [298] (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:197 [ 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 score_bcd#14 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:318 [ 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 score_bcd#14 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:324 [ 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 score_bcd#14 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:330 [ 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 score_bcd#14 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:336 [ 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 score_bcd#14 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:163 [ keyboard_event_pressed::row_bits#0 ] -Statement [299] (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:197 [ 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 score_bcd#14 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:318 [ 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 score_bcd#14 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:324 [ 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 score_bcd#14 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:330 [ 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 score_bcd#14 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:336 [ 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 score_bcd#14 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a -Statement [313] (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 score_bcd#14 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:67 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Statement [328] (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 score_bcd#14 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a -Statement [334] (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 score_bcd#14 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a -Statement [340] (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 score_bcd#14 keyboard_events_size#13 ] ) always clobbers reg byte a -Statement [343] (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 score_bcd#14 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:168 [ keyboard_event_scan::row_scan#0 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:69 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:70 [ 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 [344] (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 score_bcd#14 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 [347] (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 score_bcd#14 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 [349] *((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 score_bcd#14 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 [355] *((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 score_bcd#14 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a -Statement [356] (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 score_bcd#14 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 [359] *((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:309 [ 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 score_bcd#14 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a -Statement [360] (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:309 [ 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 score_bcd#14 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 [371] (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:73 [ play_init::j#2 play_init::j#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:76 [ play_init::idx#2 play_init::idx#1 ] -Statement [372] *((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 [373] *((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 [374] (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 [375] (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 [378] *((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 [381] *((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 y as potential for zp ZP_BYTE:63 [ level_bcd#22 level_bcd#19 level_bcd#12 level_bcd#14 level_bcd#10 level_bcd#3 ] +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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 ] ) 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#10 render_screen_render#30 current_xpos#47 current_piece_gfx#53 current_piece_char#64 render_current::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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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 ] +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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#14 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#10 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#10 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#10 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#14 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#10 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#10 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#10 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#14 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#10 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#10 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#10 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#14 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#10 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#10 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#10 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#14 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#10 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#10 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#10 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#14 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#10 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#10 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#14 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#14 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#12 ] ( 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#12 ] ) 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#12 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:62 [ 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#12 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#12 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#12 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#12 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#12 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a +Statement [267] (byte~) play_update_score::$2 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ lines_bcd#15 score_bcd#14 level_bcd#14 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#14 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] (dword) play_update_score::add_bcd#0 ← *((const dword[]) score_add_bcd#0 + (byte~) play_update_score::$2) [ lines_bcd#15 score_bcd#14 level_bcd#14 play_update_score::removed#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#14 play_update_score::removed#0 play_update_score::add_bcd#0 ] ) always clobbers reg byte a +Statement [269] (byte~) play_update_score::$3 ← < (word) lines_bcd#15 [ lines_bcd#15 score_bcd#14 level_bcd#14 play_update_score::removed#0 play_update_score::add_bcd#0 play_update_score::$3 ] ( 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#14 play_update_score::removed#0 play_update_score::add_bcd#0 play_update_score::$3 ] ) always clobbers reg byte a +Statement [270] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$3 & (byte/word/signed word/dword/signed dword) 240 [ lines_bcd#15 score_bcd#14 level_bcd#14 play_update_score::removed#0 play_update_score::add_bcd#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#14 play_update_score::removed#0 play_update_score::add_bcd#0 play_update_score::lines_before#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#14 play_update_score::add_bcd#0 play_update_score::lines_before#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#14 play_update_score::add_bcd#0 play_update_score::lines_before#0 lines_bcd#23 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:168 [ play_update_score::lines_before#0 ] +Statement [273] (dword) score_bcd#23 ← (dword) score_bcd#14 + (dword) play_update_score::add_bcd#0 [ level_bcd#14 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#14 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 ] ) always clobbers reg byte a +Statement [274] (byte~) play_update_score::$5 ← < (word) lines_bcd#23 [ level_bcd#14 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#14 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 play_update_score::$5 ] ) always clobbers reg byte a +Statement [275] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 [ level_bcd#14 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#14 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 play_update_score::lines_after#0 ] ) always clobbers reg byte a +Statement [294] (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#14 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 [302] *((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#14 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 [305] (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#14 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#0 ] ) always clobbers reg byte a +Statement [307] (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#14 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 [311] 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#14 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:174 [ play_lock_current::i#1 ] +Statement [312] *((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#14 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 [323] (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#14 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:345 [ 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#14 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:351 [ 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#14 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:357 [ 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#14 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:363 [ 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#14 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 [325] (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#14 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:345 [ 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#14 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:351 [ 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#14 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:357 [ 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#14 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:363 [ 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#14 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:176 [ keyboard_event_pressed::row_bits#0 ] +Statement [326] (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#14 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:345 [ 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#14 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:351 [ 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#14 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:357 [ 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#14 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:363 [ 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#14 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a +Statement [340] (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#14 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 [355] (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#14 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a +Statement [361] (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#14 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a +Statement [367] (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#14 keyboard_events_size#13 ] ) always clobbers reg byte a +Statement [370] (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#14 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:181 [ 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 [371] (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#14 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 [374] (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#14 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 [376] *((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#14 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 [382] *((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#14 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a +Statement [383] (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#14 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 [386] *((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:336 [ 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#14 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a +Statement [387] (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:336 [ 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#14 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 [398] (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 [399] *((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 [400] *((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 [401] (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 [402] (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 [405] *((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 [408] *((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 [383] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [384] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [385] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [386] *((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 [387] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [388] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [389] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [392] *((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 [393] *((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 [394] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a -Statement [395] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a -Statement [397] (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:77 [ sprites_init::s#2 sprites_init::s#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:78 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Statement [398] *((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 [399] *((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 [400] (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 [405] *((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 [407] *((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 [408] *((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 [409] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [410] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [411] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [412] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [413] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [418] (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:79 [ render_init::i#2 render_init::i#1 ] -Statement [419] *((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 [420] (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 [421] *((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 [422] (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 [423] (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 [430] *((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:414 [ 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:416 [ 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:84 [ render_screen_original::y#6 render_screen_original::y#1 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:84 [ render_screen_original::y#6 render_screen_original::y#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:93 [ 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:93 [ 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 [432] *((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:414 [ 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:416 [ 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 [437] *((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:414 [ 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:416 [ 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 [440] *((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:414 [ 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:416 [ 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 [446] *((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:414 [ 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:416 [ 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 [448] *((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:414 [ 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:416 [ 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 [455] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a -Statement [456] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a -Statement [464] 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 [466] 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:189 [ sprites_irq::ptr#0 ] -Statement [473] (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 [474] 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 [475] (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 [476] (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 [477] (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 [480] (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:95 [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] -Statement [485] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a -Statement [486] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y -Statement [487] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( [ ] ) always clobbers reg byte a -Statement [488] (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 [489] (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 [491] (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 [410] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [411] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [412] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [413] *((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 [414] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [415] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [416] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [419] *((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 [420] *((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 [421] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [422] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [424] (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 [425] *((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 [426] *((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 [427] (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 [432] *((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 [434] *((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 [435] *((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 [436] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [437] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [438] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [439] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [440] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [445] (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 [446] *((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 [447] (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 [448] *((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 [449] (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 [450] (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 [457] *((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:441 [ 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 ] ) 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 [459] *((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:441 [ 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 ] ) always clobbers reg byte a reg byte y +Statement [464] *((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:441 [ 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 ] ) always clobbers reg byte a reg byte y +Statement [467] *((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:441 [ 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 ] ) always clobbers reg byte a reg byte y +Statement [473] *((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:441 [ 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 ] ) always clobbers reg byte a reg byte y +Statement [475] *((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:441 [ 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 ] ) always clobbers reg byte a reg byte y +Statement [482] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a +Statement [483] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a +Statement [491] 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 [493] 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:202 [ sprites_irq::ptr#0 ] +Statement [500] (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 [501] 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 [502] (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 [503] (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 [504] (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 [507] (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 [512] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a +Statement [513] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y +Statement [514] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( [ ] ) always clobbers reg byte a +Statement [515] (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 [516] (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 [518] (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 @@ -13051,657 +14022,691 @@ Statement [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0 [ ] 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 score_bcd#14 ] ( 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 score_bcd#14 ] ) 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 score_bcd#10 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 score_bcd#10 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 score_bcd#10 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 score_bcd#10 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 score_bcd#10 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 score_bcd#10 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 score_bcd#10 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 score_bcd#10 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 score_bcd#10 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 score_bcd#10 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a -Statement [79] (byte) render_score::score_byte#0 ← *((const byte*) render_score::score_bytes#0 + (byte) render_score::b#2) [ render_screen_render#17 render_score::b#2 render_score::screen_score_pos#4 render_score::score_byte#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 render_score::b#2 render_score::screen_score_pos#4 render_score::score_byte#0 ] ) always clobbers reg byte a -Statement [80] (byte~) render_score::$9 ← (byte) render_score::score_byte#0 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ render_screen_render#17 render_score::b#2 render_score::screen_score_pos#4 render_score::score_byte#0 render_score::$9 ] ( 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 render_score::b#2 render_score::screen_score_pos#4 render_score::score_byte#0 render_score::$9 ] ) always clobbers reg byte a -Statement [81] (byte~) render_score::$10 ← (const byte) render_score::ZERO_CHAR#0 + (byte~) render_score::$9 [ render_screen_render#17 render_score::b#2 render_score::screen_score_pos#4 render_score::score_byte#0 render_score::$10 ] ( 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 render_score::b#2 render_score::screen_score_pos#4 render_score::score_byte#0 render_score::$10 ] ) always clobbers reg byte a -Statement [82] *((byte*) render_score::screen_score_pos#4) ← (byte~) render_score::$10 [ render_screen_render#17 render_score::b#2 render_score::screen_score_pos#4 render_score::score_byte#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 render_score::b#2 render_score::screen_score_pos#4 render_score::score_byte#0 ] ) always clobbers reg byte y -Statement [83] (byte*) render_score::screen_score_pos#2 ← -- (byte*) render_score::screen_score_pos#4 [ render_screen_render#17 render_score::b#2 render_score::score_byte#0 render_score::screen_score_pos#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 render_score::b#2 render_score::score_byte#0 render_score::screen_score_pos#2 ] ) always clobbers reg byte a -Statement [84] (byte~) render_score::$11 ← (byte) render_score::score_byte#0 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ render_screen_render#17 render_score::b#2 render_score::screen_score_pos#2 render_score::$11 ] ( 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 render_score::b#2 render_score::screen_score_pos#2 render_score::$11 ] ) always clobbers reg byte a -Statement [85] (byte~) render_score::$12 ← (const byte) render_score::ZERO_CHAR#0 + (byte~) render_score::$11 [ render_screen_render#17 render_score::b#2 render_score::screen_score_pos#2 render_score::$12 ] ( 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 render_score::b#2 render_score::screen_score_pos#2 render_score::$12 ] ) always clobbers reg byte a -Statement [86] *((byte*) render_score::screen_score_pos#2) ← (byte~) render_score::$12 [ render_screen_render#17 render_score::b#2 render_score::screen_score_pos#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 render_score::b#2 render_score::screen_score_pos#2 ] ) always clobbers reg byte y -Statement [87] (byte*) render_score::screen_score_pos#3 ← -- (byte*) render_score::screen_score_pos#2 [ render_screen_render#17 render_score::b#2 render_score::screen_score_pos#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 render_score::b#2 render_score::screen_score_pos#3 ] ) always clobbers reg byte a -Statement [92] (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 score_bcd#10 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 [94] 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 score_bcd#10 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 [95] (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 score_bcd#10 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 [102] (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 score_bcd#10 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 [103] (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 score_bcd#10 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 [106] (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 score_bcd#10 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 [110] *((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 score_bcd#10 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 [116] (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 score_bcd#10 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ) always clobbers reg byte a -Statement [117] (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 score_bcd#10 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ) always clobbers reg byte a -Statement [118] (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 score_bcd#10 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a -Statement [120] *((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 score_bcd#10 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 [132] (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 score_bcd#10 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 [133] (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 score_bcd#10 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 [138] (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 score_bcd#10 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 [144] (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 score_bcd#10 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 [145] (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 score_bcd#10 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 [146] (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 score_bcd#10 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 [148] (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:139 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:177 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:188 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:212 [ 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 score_bcd#14 play_collision::ypos#4 play_collision::xpos#5 play_collision::piece_gfx#0 ] ) always clobbers reg byte a -Statement [149] (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:139 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:177 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:188 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:212 [ 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 score_bcd#14 play_collision::xpos#5 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a -Statement [151] (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:139 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:177 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:188 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:212 [ 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 score_bcd#14 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 [155] 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:139 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:177 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:188 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:212 [ 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 score_bcd#14 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 [159] (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:139 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:177 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:188 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:212 [ 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 score_bcd#14 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 [162] 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:139 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:177 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:188 [ render_screen_show#16 render_screen_render#17 current_piece_char#1 keyboard_events_size#16 current_movedown_counter#10 score_bcd#10 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:212 [ 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 score_bcd#14 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 [176] (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 score_bcd#10 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 [187] (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 score_bcd#10 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 [211] (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 score_bcd#14 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 score_bcd#14 current_piece#76 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a -Statement [226] (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 score_bcd#12 ] ( 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 score_bcd#12 ] ) always clobbers reg byte a -Statement [234] (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:225 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#12 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [235] (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:225 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#12 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [236] (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:225 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#12 current_xpos#23 current_piece_gfx#16 play_spawn_current::$3 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [237] (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:225 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#12 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 [238] (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:225 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#12 current_ypos#18 current_xpos#23 current_piece_gfx#16 current_piece_char#12 play_spawn_current::$3 ] ) always clobbers reg byte a -Statement [244] (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:225 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#12 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a -Statement [248] (byte~) play_update_score::$2 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ score_bcd#14 play_update_score::$2 ] ( main:12::play_move_down:45::play_update_score:223 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#14 play_update_score::$2 ] ) always clobbers reg byte a -Statement [249] (dword) play_update_score::add_bcd#0 ← *((const dword[]) score_add_bcd#0 + (byte~) play_update_score::$2) [ score_bcd#14 play_update_score::add_bcd#0 ] ( main:12::play_move_down:45::play_update_score:223 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#14 play_update_score::add_bcd#0 ] ) always clobbers reg byte a -Statement [251] (dword) score_bcd#3 ← (dword) score_bcd#14 + (dword) play_update_score::add_bcd#0 [ score_bcd#3 ] ( main:12::play_move_down:45::play_update_score:223 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#3 ] ) always clobbers reg byte a -Statement [267] (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:219 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#14 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 [275] *((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:219 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#14 play_remove_lines::removed#7 play_remove_lines::w#6 ] ) always clobbers reg byte a -Statement [278] (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:217 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#14 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#0 ] ) always clobbers reg byte a -Statement [280] (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:217 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#14 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 [284] 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:217 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#14 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 [285] *((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:217 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 main::key_event#0 score_bcd#14 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 [296] (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:197 [ 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 score_bcd#14 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:318 [ 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 score_bcd#14 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:324 [ 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 score_bcd#14 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:330 [ 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 score_bcd#14 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:336 [ 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 score_bcd#14 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a -Statement [298] (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:197 [ 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 score_bcd#14 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:318 [ 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 score_bcd#14 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:324 [ 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 score_bcd#14 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:330 [ 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 score_bcd#14 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:336 [ 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 score_bcd#14 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a -Statement [299] (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:197 [ 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 score_bcd#14 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:318 [ 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 score_bcd#14 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:324 [ 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 score_bcd#14 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:330 [ 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 score_bcd#14 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:336 [ 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 score_bcd#14 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a -Statement [312] 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 score_bcd#14 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 [313] (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 score_bcd#14 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a -Statement [328] (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 score_bcd#14 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a -Statement [334] (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 score_bcd#14 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a -Statement [340] (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 score_bcd#14 keyboard_events_size#13 ] ) always clobbers reg byte a -Statement [343] (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 score_bcd#14 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 [344] (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 score_bcd#14 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 [347] (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 score_bcd#14 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 [349] *((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 score_bcd#14 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 [355] *((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 score_bcd#14 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a -Statement [356] (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 score_bcd#14 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 [359] *((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:309 [ 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 score_bcd#14 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a -Statement [360] (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:309 [ 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 score_bcd#14 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 [371] (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 [372] *((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 [373] *((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 [374] (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 [375] (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 [378] *((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 [381] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) 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#14 ] ( 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#14 ] ) 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 ] ) 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#10 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#14 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#10 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#10 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#10 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#14 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#10 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#10 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#10 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#14 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#10 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#10 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#10 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#14 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#10 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#10 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#10 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#14 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#10 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#10 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#10 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#14 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#10 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#10 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#14 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#14 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#12 ] ( 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#12 ] ) 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#12 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#12 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#12 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#12 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#12 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#12 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a +Statement [267] (byte~) play_update_score::$2 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ lines_bcd#15 score_bcd#14 level_bcd#14 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#14 play_update_score::removed#0 play_update_score::$2 ] ) always clobbers reg byte a +Statement [268] (dword) play_update_score::add_bcd#0 ← *((const dword[]) score_add_bcd#0 + (byte~) play_update_score::$2) [ lines_bcd#15 score_bcd#14 level_bcd#14 play_update_score::removed#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#14 play_update_score::removed#0 play_update_score::add_bcd#0 ] ) always clobbers reg byte a +Statement [269] (byte~) play_update_score::$3 ← < (word) lines_bcd#15 [ lines_bcd#15 score_bcd#14 level_bcd#14 play_update_score::removed#0 play_update_score::add_bcd#0 play_update_score::$3 ] ( 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#14 play_update_score::removed#0 play_update_score::add_bcd#0 play_update_score::$3 ] ) always clobbers reg byte a +Statement [270] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$3 & (byte/word/signed word/dword/signed dword) 240 [ lines_bcd#15 score_bcd#14 level_bcd#14 play_update_score::removed#0 play_update_score::add_bcd#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#14 play_update_score::removed#0 play_update_score::add_bcd#0 play_update_score::lines_before#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#14 play_update_score::add_bcd#0 play_update_score::lines_before#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#14 play_update_score::add_bcd#0 play_update_score::lines_before#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#14 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#14 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 ] ) always clobbers reg byte a +Statement [274] (byte~) play_update_score::$5 ← < (word) lines_bcd#23 [ level_bcd#14 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#14 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 play_update_score::$5 ] ) always clobbers reg byte a +Statement [275] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 [ level_bcd#14 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#14 play_update_score::lines_before#0 lines_bcd#23 score_bcd#23 play_update_score::lines_after#0 ] ) always clobbers reg byte a +Statement [294] (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#14 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 [302] *((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#14 play_remove_lines::removed#7 play_remove_lines::w#6 ] ) always clobbers reg byte a +Statement [305] (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#14 current_piece_gfx#20 current_xpos#10 current_piece_char#15 play_lock_current::ypos2#0 ] ) always clobbers reg byte a +Statement [307] (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#14 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 [311] 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#14 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 [312] *((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#14 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 [323] (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#14 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:345 [ 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#14 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:351 [ 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#14 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:357 [ 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#14 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:363 [ 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#14 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a +Statement [325] (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#14 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:345 [ 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#14 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:351 [ 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#14 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:357 [ 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#14 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:363 [ 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#14 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a +Statement [326] (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#14 current_movedown_counter#1 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:345 [ 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#14 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:351 [ 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#14 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:357 [ 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#14 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:363 [ 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#14 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a +Statement [339] 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#14 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 [340] (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#14 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a +Statement [355] (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#14 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a +Statement [361] (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#14 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a +Statement [367] (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#14 keyboard_events_size#13 ] ) always clobbers reg byte a +Statement [370] (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#14 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 [371] (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#14 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 [374] (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#14 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 [376] *((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#14 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 [382] *((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#14 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a +Statement [383] (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#14 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 [386] *((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:336 [ 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#14 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a +Statement [387] (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:336 [ 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#14 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 [398] (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 [399] *((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 [400] *((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 [401] (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 [402] (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 [405] *((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 [408] *((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 [383] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [384] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [385] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [386] *((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 [387] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [388] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [389] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [392] *((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 [393] *((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 [394] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a -Statement [395] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a -Statement [397] (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 [398] *((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 [399] *((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 [400] (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 [405] *((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 [407] *((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 [408] *((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 [409] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [410] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [411] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [412] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [413] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [418] (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 [419] *((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 [420] (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 [421] *((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 [422] (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 [423] (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 [430] *((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:414 [ 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:416 [ 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 [432] *((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:414 [ 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:416 [ 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 [437] *((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:414 [ 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:416 [ 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 [440] *((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:414 [ 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:416 [ 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 [446] *((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:414 [ 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:416 [ 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 [448] *((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:414 [ 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:416 [ 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 [455] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a -Statement [456] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a -Statement [464] 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 [466] 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 [473] (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 [474] 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 [475] (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 [476] (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 [477] (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 [480] (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 [485] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a -Statement [486] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y -Statement [487] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( [ ] ) always clobbers reg byte a -Statement [488] (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 [489] (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 [491] (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 [410] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [411] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [412] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [413] *((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 [414] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [415] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [416] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [419] *((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 [420] *((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 [421] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [422] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [424] (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 [425] *((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 [426] *((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 [427] (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 [432] *((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 [434] *((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 [435] *((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 [436] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [437] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [438] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [439] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [440] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [445] (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 [446] *((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 [447] (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 [448] *((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 [449] (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 [450] (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 [457] *((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:441 [ 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 ] ) always clobbers reg byte a reg byte y +Statement [459] *((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:441 [ 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 ] ) always clobbers reg byte a reg byte y +Statement [464] *((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:441 [ 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 ] ) always clobbers reg byte a reg byte y +Statement [467] *((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:441 [ 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 ] ) always clobbers reg byte a reg byte y +Statement [473] *((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:441 [ 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 ] ) always clobbers reg byte a reg byte y +Statement [475] *((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:441 [ 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 ] ) always clobbers reg byte a reg byte y +Statement [482] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a +Statement [483] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a +Statement [491] 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 [493] 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 [500] (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 [501] 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 [502] (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 [503] (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 [504] (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 [507] (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 [512] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a +Statement [513] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y +Statement [514] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( [ ] ) always clobbers reg byte a +Statement [515] (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 [516] (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 [518] (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 , -Potential registers zp ZP_BYTE:5 [ render_score::b#2 render_score::b#1 ] : zp ZP_BYTE:5 , reg byte x , -Potential registers zp ZP_WORD:6 [ render_score::screen_score_pos#4 render_score::screen_score_pos#5 render_score::screen_score_pos#3 ] : zp ZP_WORD:6 , -Potential registers zp ZP_BYTE:8 [ current_ypos#9 current_ypos#86 current_ypos#87 ] : zp ZP_BYTE:8 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:9 [ render_screen_render#30 render_screen_render#64 ] : zp ZP_BYTE:9 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:10 [ current_xpos#47 current_xpos#112 current_xpos#113 ] : zp ZP_BYTE:10 , reg byte x , reg byte y , -Potential registers zp ZP_WORD:11 [ current_piece_gfx#53 current_piece_gfx#102 current_piece_gfx#103 ] : zp ZP_WORD:11 , -Potential registers zp ZP_BYTE:13 [ current_piece_char#64 current_piece_char#90 current_piece_char#91 ] : zp ZP_BYTE:13 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:14 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] : zp ZP_BYTE:14 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:15 [ render_current::l#4 render_current::l#1 ] : zp ZP_BYTE:15 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:16 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] : zp ZP_BYTE:16 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:17 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] : zp ZP_BYTE:17 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:18 [ render_current::c#2 render_current::c#1 ] : zp ZP_BYTE:18 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:19 [ render_screen_render#21 render_screen_render#65 ] : zp ZP_BYTE:19 , reg byte x , -Potential registers zp ZP_BYTE:20 [ render_playfield::l#2 render_playfield::l#1 ] : zp ZP_BYTE:20 , reg byte x , -Potential registers zp ZP_BYTE:21 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] : zp ZP_BYTE:21 , reg byte x , -Potential registers zp ZP_WORD:22 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] : zp ZP_WORD:22 , -Potential registers zp ZP_BYTE:24 [ render_playfield::c#2 render_playfield::c#1 ] : zp ZP_BYTE:24 , reg byte x , -Potential registers zp ZP_BYTE:25 [ play_move_rotate::return#1 ] : zp ZP_BYTE:25 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:26 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] : zp ZP_BYTE:26 , reg byte x , reg byte y , -Potential registers zp ZP_WORD:27 [ current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 ] : zp ZP_WORD:27 , -Potential registers zp ZP_BYTE:29 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] : zp ZP_BYTE:29 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:30 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] : zp ZP_BYTE:30 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:31 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] : zp ZP_BYTE:31 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:32 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] : zp ZP_BYTE:32 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:33 [ play_collision::l#6 play_collision::l#1 ] : zp ZP_BYTE:33 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:34 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] : zp ZP_BYTE:34 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:35 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] : zp ZP_BYTE:35 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:36 [ play_collision::c#2 play_collision::c#1 ] : zp ZP_BYTE:36 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:37 [ play_collision::return#14 ] : zp ZP_BYTE:37 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:38 [ play_move_leftright::return#1 ] : zp ZP_BYTE:38 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:39 [ 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:39 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:40 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] : zp ZP_BYTE:40 , reg byte x , -Potential registers zp ZP_DWORD:41 [ score_bcd#20 score_bcd#12 score_bcd#14 score_bcd#10 score_bcd#3 ] : zp ZP_DWORD:41 , -Potential registers zp ZP_WORD:45 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 ] : zp ZP_WORD:45 , -Potential registers zp ZP_BYTE:47 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] : zp ZP_BYTE:47 , reg byte x , -Potential registers zp ZP_WORD:48 [ 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:48 , -Potential registers zp ZP_BYTE:50 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] : zp ZP_BYTE:50 , reg byte x , -Potential registers zp ZP_BYTE:51 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] : zp ZP_BYTE:51 , reg byte x , -Potential registers zp ZP_BYTE:52 [ play_move_down::return#2 ] : zp ZP_BYTE:52 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:53 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] : zp ZP_BYTE:53 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:54 [ play_remove_lines::y#8 play_remove_lines::y#1 ] : zp ZP_BYTE:54 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:55 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] : zp ZP_BYTE:55 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:56 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] : zp ZP_BYTE:56 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:57 [ play_remove_lines::x#2 play_remove_lines::x#1 ] : zp ZP_BYTE:57 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:58 [ play_remove_lines::full#4 play_remove_lines::full#2 ] : zp ZP_BYTE:58 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:59 [ 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:59 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:60 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] : zp ZP_BYTE:60 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:61 [ play_lock_current::l#6 play_lock_current::l#1 ] : zp ZP_BYTE:61 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:62 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] : zp ZP_BYTE:62 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:63 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] : zp ZP_BYTE:63 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:64 [ play_lock_current::c#2 play_lock_current::c#1 ] : zp ZP_BYTE:64 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:65 [ keyboard_event_pressed::keycode#5 ] : zp ZP_BYTE:65 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:66 [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] : zp ZP_BYTE:66 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:67 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] : zp ZP_BYTE:67 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:68 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] : zp ZP_BYTE:68 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:69 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] : zp ZP_BYTE:69 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:70 [ 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:70 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:71 [ 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:71 , reg byte x , -Potential registers zp ZP_BYTE:72 [ render_show::d018val#3 ] : zp ZP_BYTE:72 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:73 [ play_init::j#2 play_init::j#1 ] : zp ZP_BYTE:73 , reg byte x , reg byte y , -Potential registers zp ZP_WORD:74 [ play_init::pli#2 play_init::pli#1 ] : zp ZP_WORD:74 , -Potential registers zp ZP_BYTE:76 [ play_init::idx#2 play_init::idx#1 ] : zp ZP_BYTE:76 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:77 [ sprites_init::s#2 sprites_init::s#1 ] : zp ZP_BYTE:77 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:78 [ sprites_init::xpos#2 sprites_init::xpos#1 ] : zp ZP_BYTE:78 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:79 [ render_init::i#2 render_init::i#1 ] : zp ZP_BYTE:79 , reg byte x , reg byte y , -Potential registers zp ZP_WORD:80 [ render_init::li_1#2 render_init::li_1#1 ] : zp ZP_WORD:80 , -Potential registers zp ZP_WORD:82 [ render_init::li_2#2 render_init::li_2#1 ] : zp ZP_WORD:82 , -Potential registers zp ZP_BYTE:84 [ render_screen_original::y#6 render_screen_original::y#1 ] : zp ZP_BYTE:84 , reg byte x , -Potential registers zp ZP_WORD:85 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] : zp ZP_WORD:85 , -Potential registers zp ZP_WORD:87 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] : zp ZP_WORD:87 , -Potential registers zp ZP_WORD:89 [ 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:89 , -Potential registers zp ZP_WORD:91 [ 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:91 , -Potential registers zp ZP_BYTE:93 [ 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:93 , reg byte x , -Potential registers zp ZP_BYTE:94 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] : zp ZP_BYTE:94 , -Potential registers zp ZP_BYTE:95 [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] : zp ZP_BYTE:95 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:96 [ render_screen_showing#0 ] : zp ZP_BYTE:96 , -Potential registers zp ZP_BYTE:97 [ irq_raster_next#0 ] : zp ZP_BYTE:97 , -Potential registers zp ZP_BYTE:98 [ irq_sprite_ypos#0 ] : zp ZP_BYTE:98 , -Potential registers zp ZP_BYTE:99 [ irq_sprite_ptr#0 ] : zp ZP_BYTE:99 , -Potential registers zp ZP_BYTE:100 [ irq_cnt#0 ] : zp ZP_BYTE:100 , -Potential registers zp ZP_BYTE:101 [ keyboard_event_get::return#3 ] : zp ZP_BYTE:101 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:102 [ main::key_event#0 ] : zp ZP_BYTE:102 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:103 [ play_move_down::key_event#0 ] : zp ZP_BYTE:103 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:104 [ play_move_down::return#3 ] : zp ZP_BYTE:104 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:105 [ main::$12 ] : zp ZP_BYTE:105 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:106 [ main::render#1 ] : zp ZP_BYTE:106 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:107 [ play_move_leftright::key_event#0 ] : zp ZP_BYTE:107 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:108 [ play_move_leftright::return#4 ] : zp ZP_BYTE:108 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:109 [ main::$13 ] : zp ZP_BYTE:109 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:110 [ main::render#2 ] : zp ZP_BYTE:110 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:111 [ play_move_rotate::key_event#0 ] : zp ZP_BYTE:111 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:112 [ play_move_rotate::return#4 ] : zp ZP_BYTE:112 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:113 [ main::$14 ] : zp ZP_BYTE:113 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:114 [ main::render#3 ] : zp ZP_BYTE:114 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:115 [ render_score::score_byte#0 ] : zp ZP_BYTE:115 , reg byte x , -Potential registers zp ZP_BYTE:116 [ render_score::$9 ] : zp ZP_BYTE:116 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:117 [ render_score::$10 ] : zp ZP_BYTE:117 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:118 [ render_score::screen_score_pos#2 ] : zp ZP_WORD:118 , -Potential registers zp ZP_BYTE:120 [ render_score::$11 ] : zp ZP_BYTE:120 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:121 [ render_score::$12 ] : zp ZP_BYTE:121 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:122 [ render_current::$5 ] : zp ZP_BYTE:122 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:123 [ render_current::screen_line#0 ] : zp ZP_WORD:123 , -Potential registers zp ZP_BYTE:125 [ render_current::current_cell#0 ] : zp ZP_BYTE:125 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:126 [ render_playfield::$2 ] : zp ZP_BYTE:126 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:127 [ render_playfield::$3 ] : zp ZP_BYTE:127 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:128 [ play_move_rotate::$2 ] : zp ZP_BYTE:128 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:129 [ play_collision::return#13 ] : zp ZP_BYTE:129 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:130 [ play_move_rotate::$6 ] : zp ZP_BYTE:130 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:131 [ play_move_rotate::$4 ] : zp ZP_BYTE:131 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:132 [ play_collision::piece_gfx#0 ] : zp ZP_WORD:132 , -Potential registers zp ZP_WORD:134 [ play_collision::playfield_line#0 ] : zp ZP_WORD:134 , -Potential registers zp ZP_BYTE:136 [ play_collision::i#1 ] : zp ZP_BYTE:136 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:137 [ play_collision::$7 ] : zp ZP_BYTE:137 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:138 [ play_collision::return#12 ] : zp ZP_BYTE:138 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:139 [ play_move_leftright::$4 ] : zp ZP_BYTE:139 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:140 [ play_collision::return#1 ] : zp ZP_BYTE:140 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:141 [ play_move_leftright::$8 ] : zp ZP_BYTE:141 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:142 [ keyboard_event_pressed::return#12 ] : zp ZP_BYTE:142 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:143 [ play_move_down::$2 ] : zp ZP_BYTE:143 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:144 [ play_collision::return#0 ] : zp ZP_BYTE:144 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:145 [ play_move_down::$12 ] : zp ZP_BYTE:145 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:146 [ play_remove_lines::return#0 ] : zp ZP_BYTE:146 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:147 [ play_move_down::removed#0 ] : zp ZP_BYTE:147 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:148 [ play_update_score::removed#0 ] : zp ZP_BYTE:148 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:149 [ play_spawn_current::$3 ] : zp ZP_BYTE:149 , reg byte x , -Potential registers zp ZP_BYTE:150 [ sid_rnd::return#2 ] : zp ZP_BYTE:150 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:151 [ play_spawn_current::$1 ] : zp ZP_BYTE:151 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:152 [ sid_rnd::return#0 ] : zp ZP_BYTE:152 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:153 [ play_update_score::$2 ] : zp ZP_BYTE:153 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_DWORD:154 [ play_update_score::add_bcd#0 ] : zp ZP_DWORD:154 , -Potential registers zp ZP_BYTE:158 [ play_remove_lines::c#0 ] : zp ZP_BYTE:158 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:159 [ play_lock_current::playfield_line#0 ] : zp ZP_WORD:159 , -Potential registers zp ZP_BYTE:161 [ play_lock_current::i#1 ] : zp ZP_BYTE:161 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:162 [ keyboard_event_pressed::$0 ] : zp ZP_BYTE:162 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:163 [ keyboard_event_pressed::row_bits#0 ] : zp ZP_BYTE:163 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:164 [ keyboard_event_pressed::$1 ] : zp ZP_BYTE:164 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:165 [ keyboard_event_pressed::return#11 ] : zp ZP_BYTE:165 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:166 [ keyboard_matrix_read::rowid#0 ] : zp ZP_BYTE:166 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:167 [ keyboard_matrix_read::return#2 ] : zp ZP_BYTE:167 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:168 [ keyboard_event_scan::row_scan#0 ] : zp ZP_BYTE:168 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:169 [ keyboard_event_pressed::return#0 ] : zp ZP_BYTE:169 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:170 [ keyboard_event_scan::$14 ] : zp ZP_BYTE:170 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:171 [ keyboard_event_pressed::return#1 ] : zp ZP_BYTE:171 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:172 [ keyboard_event_scan::$18 ] : zp ZP_BYTE:172 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:173 [ keyboard_event_pressed::return#2 ] : zp ZP_BYTE:173 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:174 [ keyboard_event_scan::$22 ] : zp ZP_BYTE:174 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:175 [ keyboard_event_pressed::return#10 ] : zp ZP_BYTE:175 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:176 [ keyboard_event_scan::$26 ] : zp ZP_BYTE:176 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:177 [ keyboard_modifiers#5 ] : zp ZP_BYTE:177 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:178 [ keyboard_event_scan::$3 ] : zp ZP_BYTE:178 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:179 [ keyboard_event_scan::$4 ] : zp ZP_BYTE:179 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:180 [ keyboard_event_scan::event_type#0 ] : zp ZP_BYTE:180 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:181 [ keyboard_event_scan::$11 ] : zp ZP_BYTE:181 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:182 [ keyboard_matrix_read::return#0 ] : zp ZP_BYTE:182 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:183 [ render_screen_showing#1 ] : zp ZP_BYTE:183 , -Potential registers zp ZP_BYTE:184 [ play_init::$1 ] : zp ZP_BYTE:184 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:185 [ sprites_init::s2#0 ] : zp ZP_BYTE:185 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:186 [ render_init::$13 ] : zp ZP_BYTE:186 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:187 [ render_init::$14 ] : zp ZP_BYTE:187 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:188 [ sprites_irq::ypos#0 ] : zp ZP_BYTE:188 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:189 [ sprites_irq::ptr#0 ] : zp ZP_BYTE:189 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:190 [ sprites_irq::ptr#3 ] : zp ZP_BYTE:190 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:191 [ sprites_irq::ptr#4 ] : zp ZP_BYTE:191 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:192 [ irq_cnt#1 ] : zp ZP_BYTE:192 , -Potential registers zp ZP_BYTE:193 [ irq_sprite_ypos#2 ] : zp ZP_BYTE:193 , -Potential registers zp ZP_BYTE:194 [ irq_sprite_ptr#2 ] : zp ZP_BYTE:194 , -Potential registers zp ZP_BYTE:195 [ sprites_irq::$4 ] : zp ZP_BYTE:195 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:196 [ irq_cnt#14 ] : zp ZP_BYTE:196 , -Potential registers zp ZP_BYTE:197 [ irq_sprite_ypos#1 ] : zp ZP_BYTE:197 , -Potential registers zp ZP_BYTE:198 [ irq_sprite_ptr#1 ] : zp ZP_BYTE:198 , -Potential registers zp ZP_BYTE:199 [ sprites_irq::ptr#1 ] : zp ZP_BYTE:199 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:200 [ sprites_irq::ptr#2 ] : zp ZP_BYTE:200 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:5 [ render_score::screen#2 ] : zp ZP_WORD:5 , +Potential registers 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 ] : zp ZP_WORD:7 , +Potential registers zp ZP_WORD:9 [ render_bcd::offset#6 ] : zp ZP_WORD:9 , +Potential registers zp ZP_BYTE:11 [ render_bcd::only_low#6 ] : zp ZP_BYTE:11 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:12 [ render_bcd::bcd#6 render_bcd::bcd#0 render_bcd::bcd#1 render_bcd::bcd#2 render_bcd::bcd#3 render_bcd::bcd#4 render_bcd::bcd#5 ] : zp ZP_BYTE:12 , reg byte x , +Potential registers zp ZP_WORD:13 [ render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 ] : zp ZP_WORD:13 , +Potential registers zp ZP_BYTE:15 [ current_ypos#9 current_ypos#86 current_ypos#87 ] : zp ZP_BYTE:15 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 ] : zp ZP_BYTE:16 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:17 [ current_xpos#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:26 [ render_screen_render#21 render_screen_render#65 ] : zp ZP_BYTE:26 , reg byte x , +Potential registers zp ZP_BYTE:27 [ render_playfield::l#2 render_playfield::l#1 ] : zp ZP_BYTE:27 , reg byte x , +Potential registers zp ZP_BYTE:28 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] : zp ZP_BYTE:28 , reg byte x , +Potential registers zp ZP_WORD:29 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] : zp ZP_WORD:29 , +Potential registers zp ZP_BYTE:31 [ render_playfield::c#2 render_playfield::c#1 ] : zp ZP_BYTE:31 , reg byte x , +Potential registers zp ZP_BYTE:32 [ play_move_rotate::return#1 ] : zp ZP_BYTE:32 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:33 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] : zp ZP_BYTE:33 , reg byte x , reg byte y , +Potential registers zp ZP_WORD:34 [ current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 ] : zp ZP_WORD:34 , +Potential registers 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:36 , reg byte x , reg byte y , +Potential registers 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:37 , reg byte x , reg byte y , +Potential registers 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:38 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:39 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] : zp ZP_BYTE:39 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:40 [ play_collision::l#6 play_collision::l#1 ] : zp ZP_BYTE:40 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:41 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] : zp ZP_BYTE:41 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:42 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] : zp ZP_BYTE:42 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:43 [ play_collision::c#2 play_collision::c#1 ] : zp ZP_BYTE:43 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:44 [ play_collision::return#14 ] : zp ZP_BYTE:44 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:45 [ play_move_leftright::return#1 ] : zp ZP_BYTE:45 , reg byte a , reg byte x , reg byte y , +Potential registers 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:46 , reg byte x , reg byte y , +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_WORD:54 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 ] : zp ZP_WORD:54 , +Potential registers zp ZP_BYTE:56 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] : zp ZP_BYTE:56 , reg byte x , +Potential registers zp ZP_WORD:57 [ 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:57 , +Potential registers zp ZP_BYTE:59 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] : zp ZP_BYTE:59 , reg byte x , +Potential registers zp ZP_BYTE:60 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] : zp ZP_BYTE:60 , reg byte x , +Potential registers zp ZP_BYTE:61 [ play_move_down::return#2 ] : zp ZP_BYTE:61 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:62 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] : zp ZP_BYTE:62 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:63 [ level_bcd#22 level_bcd#19 level_bcd#12 level_bcd#14 level_bcd#10 level_bcd#3 ] : zp ZP_BYTE:63 , reg byte x , +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_DWORD:163 [ play_update_score::add_bcd#0 ] : zp ZP_DWORD:163 , +Potential registers zp ZP_BYTE:167 [ play_update_score::$3 ] : zp ZP_BYTE:167 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:168 [ play_update_score::lines_before#0 ] : zp ZP_BYTE:168 , reg byte x , reg byte y , +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_remove_lines::c#0 ] : zp ZP_BYTE:171 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:172 [ play_lock_current::playfield_line#0 ] : zp ZP_WORD:172 , +Potential registers zp ZP_BYTE:174 [ play_lock_current::i#1 ] : zp ZP_BYTE:174 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:175 [ keyboard_event_pressed::$0 ] : zp ZP_BYTE:175 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:176 [ keyboard_event_pressed::row_bits#0 ] : zp ZP_BYTE:176 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:177 [ keyboard_event_pressed::$1 ] : zp ZP_BYTE:177 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:178 [ keyboard_event_pressed::return#11 ] : zp ZP_BYTE:178 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:179 [ keyboard_matrix_read::rowid#0 ] : zp ZP_BYTE:179 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:180 [ keyboard_matrix_read::return#2 ] : zp ZP_BYTE:180 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:181 [ keyboard_event_scan::row_scan#0 ] : zp ZP_BYTE:181 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:182 [ keyboard_event_pressed::return#0 ] : zp ZP_BYTE:182 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:183 [ keyboard_event_scan::$14 ] : zp ZP_BYTE:183 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:184 [ keyboard_event_pressed::return#1 ] : zp ZP_BYTE:184 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:185 [ keyboard_event_scan::$18 ] : zp ZP_BYTE:185 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:186 [ keyboard_event_pressed::return#2 ] : zp ZP_BYTE:186 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:187 [ keyboard_event_scan::$22 ] : zp ZP_BYTE:187 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:188 [ keyboard_event_pressed::return#10 ] : zp ZP_BYTE:188 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:189 [ keyboard_event_scan::$26 ] : zp ZP_BYTE:189 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:190 [ keyboard_modifiers#5 ] : zp ZP_BYTE:190 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:191 [ keyboard_event_scan::$3 ] : zp ZP_BYTE:191 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:192 [ keyboard_event_scan::$4 ] : zp ZP_BYTE:192 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:193 [ keyboard_event_scan::event_type#0 ] : zp ZP_BYTE:193 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:194 [ keyboard_event_scan::$11 ] : zp ZP_BYTE:194 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:195 [ keyboard_matrix_read::return#0 ] : zp ZP_BYTE:195 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:196 [ render_screen_showing#1 ] : zp ZP_BYTE:196 , +Potential registers zp ZP_BYTE:197 [ play_init::$1 ] : zp ZP_BYTE:197 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:198 [ sprites_init::s2#0 ] : zp ZP_BYTE:198 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:199 [ render_init::$13 ] : zp ZP_BYTE:199 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:200 [ render_init::$14 ] : zp ZP_BYTE:200 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:201 [ sprites_irq::ypos#0 ] : zp ZP_BYTE:201 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:202 [ sprites_irq::ptr#0 ] : zp ZP_BYTE:202 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:203 [ sprites_irq::ptr#3 ] : zp ZP_BYTE:203 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:204 [ sprites_irq::ptr#4 ] : zp ZP_BYTE:204 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:205 [ irq_cnt#1 ] : zp ZP_BYTE:205 , +Potential registers zp ZP_BYTE:206 [ irq_sprite_ypos#2 ] : zp ZP_BYTE:206 , +Potential registers zp ZP_BYTE:207 [ irq_sprite_ptr#2 ] : zp ZP_BYTE:207 , +Potential registers zp ZP_BYTE:208 [ sprites_irq::$4 ] : zp ZP_BYTE:208 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:209 [ irq_cnt#14 ] : zp ZP_BYTE:209 , +Potential registers zp ZP_BYTE:210 [ irq_sprite_ypos#1 ] : zp ZP_BYTE:210 , +Potential registers zp ZP_BYTE:211 [ irq_sprite_ptr#1 ] : zp ZP_BYTE:211 , +Potential registers zp ZP_BYTE:212 [ sprites_irq::ptr#1 ] : zp ZP_BYTE:212 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:213 [ sprites_irq::ptr#2 ] : zp ZP_BYTE:213 , reg byte a , reg byte x , reg byte y , REGISTER UPLIFT SCOPES -Uplift Scope [keyboard_event_scan] 20,002: zp ZP_BYTE:178 [ keyboard_event_scan::$3 ] 20,002: zp ZP_BYTE:179 [ keyboard_event_scan::$4 ] 20,002: zp ZP_BYTE:180 [ keyboard_event_scan::event_type#0 ] 20,002: zp ZP_BYTE:181 [ keyboard_event_scan::$11 ] 17,858.93: zp ZP_BYTE:69 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] 11,908.48: zp ZP_BYTE:70 [ 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:67 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] 1,278.06: zp ZP_BYTE:168 [ keyboard_event_scan::row_scan#0 ] 4: zp ZP_BYTE:170 [ keyboard_event_scan::$14 ] 4: zp ZP_BYTE:172 [ keyboard_event_scan::$18 ] 4: zp ZP_BYTE:174 [ keyboard_event_scan::$22 ] 4: zp ZP_BYTE:176 [ keyboard_event_scan::$26 ] -Uplift Scope [play_collision] 38,173.33: zp ZP_BYTE:34 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] 20,002: zp ZP_BYTE:137 [ play_collision::$7 ] 13,378.25: zp ZP_BYTE:35 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] 12,223.44: zp ZP_BYTE:36 [ play_collision::c#2 play_collision::c#1 ] 1,615.62: zp ZP_BYTE:136 [ play_collision::i#1 ] 1,371.57: zp ZP_BYTE:32 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] 1,126.12: zp ZP_BYTE:33 [ play_collision::l#6 play_collision::l#1 ] 785.86: zp ZP_WORD:134 [ play_collision::playfield_line#0 ] 476.33: zp ZP_WORD:132 [ play_collision::piece_gfx#0 ] 50.2: zp ZP_BYTE:31 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] 18: zp ZP_BYTE:29 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] 10: zp ZP_BYTE:30 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] 4: zp ZP_BYTE:129 [ play_collision::return#13 ] 4: zp ZP_BYTE:138 [ play_collision::return#12 ] 4: zp ZP_BYTE:140 [ play_collision::return#1 ] 4: zp ZP_BYTE:144 [ play_collision::return#0 ] 1.33: zp ZP_BYTE:37 [ play_collision::return#14 ] -Uplift Scope [play_remove_lines] 19,004.21: zp ZP_BYTE:56 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] 17,938.14: zp ZP_BYTE:59 [ 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:57 [ play_remove_lines::x#2 play_remove_lines::x#1 ] 8,201: zp ZP_BYTE:58 [ play_remove_lines::full#4 play_remove_lines::full#2 ] 6,000.6: zp ZP_BYTE:158 [ play_remove_lines::c#0 ] 2,566.89: zp ZP_BYTE:55 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] 1,634.97: zp ZP_BYTE:54 [ play_remove_lines::y#8 play_remove_lines::y#1 ] 4: zp ZP_BYTE:146 [ play_remove_lines::return#0 ] -Uplift Scope [play_lock_current] 38,173.33: zp ZP_BYTE:62 [ 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:63 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] 14,001.4: zp ZP_BYTE:64 [ play_lock_current::c#2 play_lock_current::c#1 ] 2,333.67: zp ZP_BYTE:161 [ play_lock_current::i#1 ] 1,167.83: zp ZP_BYTE:61 [ play_lock_current::l#6 play_lock_current::l#1 ] 1,100.2: zp ZP_WORD:159 [ play_lock_current::playfield_line#0 ] 777.68: zp ZP_BYTE:60 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -Uplift Scope [] 58,857.97: zp ZP_BYTE:71 [ 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:48 [ 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:51 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] 72.09: zp ZP_BYTE:13 [ current_piece_char#64 current_piece_char#90 current_piece_char#91 ] 59.09: zp ZP_WORD:11 [ current_piece_gfx#53 current_piece_gfx#102 current_piece_gfx#103 ] 39.95: zp ZP_BYTE:50 [ 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:19 [ render_screen_render#21 render_screen_render#65 ] 26: zp ZP_WORD:27 [ current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 ] 20.4: zp ZP_BYTE:8 [ current_ypos#9 current_ypos#86 current_ypos#87 ] 20: zp ZP_BYTE:177 [ keyboard_modifiers#5 ] 20: zp ZP_BYTE:183 [ render_screen_showing#1 ] 20: zp ZP_BYTE:193 [ irq_sprite_ypos#2 ] 20: zp ZP_BYTE:194 [ irq_sprite_ptr#2 ] 20: zp ZP_BYTE:196 [ irq_cnt#14 ] 20: zp ZP_BYTE:197 [ irq_sprite_ypos#1 ] 20: zp ZP_BYTE:198 [ irq_sprite_ptr#1 ] 19.2: zp ZP_WORD:45 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 ] 16.91: zp ZP_BYTE:47 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] 15.96: zp ZP_BYTE:40 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] 15.61: zp ZP_DWORD:41 [ score_bcd#20 score_bcd#12 score_bcd#14 score_bcd#10 score_bcd#3 ] 14.83: zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] 13.85: zp ZP_BYTE:10 [ current_xpos#47 current_xpos#112 current_xpos#113 ] 11.6: zp ZP_BYTE:68 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] 10.59: zp ZP_BYTE:9 [ render_screen_render#30 render_screen_render#64 ] 8.33: zp ZP_BYTE:94 [ 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:192 [ irq_cnt#1 ] 3.95: zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] 0.71: zp ZP_BYTE:98 [ irq_sprite_ypos#0 ] 0.5: zp ZP_BYTE:96 [ render_screen_showing#0 ] 0.24: zp ZP_BYTE:99 [ irq_sprite_ptr#0 ] 0.19: zp ZP_BYTE:100 [ irq_cnt#0 ] 0.17: zp ZP_BYTE:97 [ irq_raster_next#0 ] -Uplift Scope [render_current] 2,534.25: zp ZP_BYTE:16 [ 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:18 [ render_current::c#2 render_current::c#1 ] 1,553.5: zp ZP_BYTE:17 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] 1,001: zp ZP_BYTE:125 [ render_current::current_cell#0 ] 202: zp ZP_BYTE:122 [ render_current::$5 ] 162.72: zp ZP_BYTE:15 [ render_current::l#4 render_current::l#1 ] 101.16: zp ZP_BYTE:14 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] 100.18: zp ZP_WORD:123 [ render_current::screen_line#0 ] -Uplift Scope [render_playfield] 2,254.5: zp ZP_WORD:22 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] 2,002: zp ZP_BYTE:24 [ render_playfield::c#2 render_playfield::c#1 ] 1,505.77: zp ZP_BYTE:21 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] 202: zp ZP_BYTE:126 [ render_playfield::$2 ] 202: zp ZP_BYTE:127 [ render_playfield::$3 ] 181.8: zp ZP_BYTE:20 [ render_playfield::l#2 render_playfield::l#1 ] -Uplift Scope [play_spawn_current] 2,337: zp ZP_BYTE:53 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] 2,002: zp ZP_BYTE:151 [ play_spawn_current::$1 ] 0.13: zp ZP_BYTE:149 [ play_spawn_current::$3 ] -Uplift Scope [keyboard_matrix_read] 2,002: zp ZP_BYTE:167 [ keyboard_matrix_read::return#2 ] 1,003: zp ZP_BYTE:166 [ keyboard_matrix_read::rowid#0 ] 334.33: zp ZP_BYTE:182 [ keyboard_matrix_read::return#0 ] -Uplift Scope [sid_rnd] 2,002: zp ZP_BYTE:150 [ sid_rnd::return#2 ] 334.33: zp ZP_BYTE:152 [ sid_rnd::return#0 ] -Uplift Scope [render_screen_original] 721.31: zp ZP_WORD:89 [ 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:93 [ 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:91 [ 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:85 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] 99.08: zp ZP_WORD:87 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] 17.42: zp ZP_BYTE:84 [ render_screen_original::y#6 render_screen_original::y#1 ] -Uplift Scope [render_score] 202: zp ZP_BYTE:116 [ render_score::$9 ] 202: zp ZP_BYTE:117 [ render_score::$10 ] 202: zp ZP_BYTE:120 [ render_score::$11 ] 202: zp ZP_BYTE:121 [ render_score::$12 ] 181.8: zp ZP_BYTE:5 [ render_score::b#2 render_score::b#1 ] 130.33: zp ZP_WORD:6 [ render_score::screen_score_pos#4 render_score::screen_score_pos#5 render_score::screen_score_pos#3 ] 75.75: zp ZP_WORD:118 [ render_score::screen_score_pos#2 ] 60.6: zp ZP_BYTE:115 [ render_score::score_byte#0 ] -Uplift Scope [main] 202: zp ZP_BYTE:105 [ main::$12 ] 202: zp ZP_BYTE:109 [ main::$13 ] 202: zp ZP_BYTE:113 [ main::$14 ] 202: zp ZP_BYTE:114 [ main::render#3 ] 40.4: zp ZP_BYTE:106 [ main::render#1 ] 40.4: zp ZP_BYTE:110 [ main::render#2 ] 36.73: zp ZP_BYTE:102 [ main::key_event#0 ] -Uplift Scope [play_move_down] 202: zp ZP_BYTE:104 [ play_move_down::return#3 ] 51.5: zp ZP_BYTE:103 [ play_move_down::key_event#0 ] 33.67: zp ZP_BYTE:52 [ play_move_down::return#2 ] 20: zp ZP_BYTE:39 [ 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:143 [ play_move_down::$2 ] 4: zp ZP_BYTE:145 [ play_move_down::$12 ] 4: zp ZP_BYTE:147 [ play_move_down::removed#0 ] -Uplift Scope [play_move_rotate] 202: zp ZP_BYTE:112 [ play_move_rotate::return#4 ] 52.5: zp ZP_BYTE:111 [ play_move_rotate::key_event#0 ] 33.67: zp ZP_BYTE:25 [ play_move_rotate::return#1 ] 8.89: zp ZP_BYTE:26 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] 4: zp ZP_BYTE:128 [ play_move_rotate::$2 ] 4: zp ZP_BYTE:130 [ play_move_rotate::$6 ] 4: zp ZP_BYTE:131 [ play_move_rotate::$4 ] -Uplift Scope [play_move_leftright] 202: zp ZP_BYTE:108 [ play_move_leftright::return#4 ] 52.5: zp ZP_BYTE:107 [ play_move_leftright::key_event#0 ] 33.67: zp ZP_BYTE:38 [ play_move_leftright::return#1 ] 4: zp ZP_BYTE:139 [ play_move_leftright::$4 ] 4: zp ZP_BYTE:141 [ play_move_leftright::$8 ] -Uplift Scope [keyboard_event_get] 202: zp ZP_BYTE:101 [ keyboard_event_get::return#3 ] 38.33: zp ZP_BYTE:66 [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] -Uplift Scope [render_init] 22.79: zp ZP_BYTE:79 [ render_init::i#2 render_init::i#1 ] 22: zp ZP_BYTE:186 [ render_init::$13 ] 22: zp ZP_BYTE:187 [ render_init::$14 ] 12.83: zp ZP_WORD:82 [ render_init::li_2#2 render_init::li_2#1 ] 12.1: zp ZP_WORD:80 [ render_init::li_1#2 render_init::li_1#1 ] -Uplift Scope [play_init] 23.83: zp ZP_BYTE:73 [ play_init::j#2 play_init::j#1 ] 22: zp ZP_BYTE:184 [ play_init::$1 ] 13.93: zp ZP_BYTE:76 [ play_init::idx#2 play_init::idx#1 ] 13.75: zp ZP_WORD:74 [ play_init::pli#2 play_init::pli#1 ] -Uplift Scope [sprites_init] 25.3: zp ZP_BYTE:77 [ sprites_init::s#2 sprites_init::s#1 ] 22: zp ZP_BYTE:185 [ sprites_init::s2#0 ] 15.58: zp ZP_BYTE:78 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Uplift Scope [sprites_irq] 12.67: zp ZP_BYTE:95 [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ] 4: zp ZP_BYTE:191 [ sprites_irq::ptr#4 ] 4: zp ZP_BYTE:195 [ sprites_irq::$4 ] 4: zp ZP_BYTE:200 [ sprites_irq::ptr#2 ] 2.67: zp ZP_BYTE:190 [ sprites_irq::ptr#3 ] 2.67: zp ZP_BYTE:199 [ sprites_irq::ptr#1 ] 2.5: zp ZP_BYTE:188 [ sprites_irq::ypos#0 ] 2.5: zp ZP_BYTE:189 [ sprites_irq::ptr#0 ] -Uplift Scope [keyboard_event_pressed] 4: zp ZP_BYTE:142 [ keyboard_event_pressed::return#12 ] 4: zp ZP_BYTE:162 [ keyboard_event_pressed::$0 ] 4: zp ZP_BYTE:164 [ keyboard_event_pressed::$1 ] 4: zp ZP_BYTE:169 [ keyboard_event_pressed::return#0 ] 4: zp ZP_BYTE:171 [ keyboard_event_pressed::return#1 ] 4: zp ZP_BYTE:173 [ keyboard_event_pressed::return#2 ] 4: zp ZP_BYTE:175 [ keyboard_event_pressed::return#10 ] 2: zp ZP_BYTE:163 [ keyboard_event_pressed::row_bits#0 ] 1.71: zp ZP_BYTE:165 [ keyboard_event_pressed::return#11 ] 1.33: zp ZP_BYTE:65 [ keyboard_event_pressed::keycode#5 ] -Uplift Scope [play_update_score] 4: zp ZP_BYTE:153 [ play_update_score::$2 ] 3: zp ZP_BYTE:148 [ play_update_score::removed#0 ] 2: zp ZP_DWORD:154 [ play_update_score::add_bcd#0 ] -Uplift Scope [render_show] 2: zp ZP_BYTE:72 [ render_show::d018val#3 ] +Uplift Scope [keyboard_event_scan] 20,002: zp ZP_BYTE:191 [ keyboard_event_scan::$3 ] 20,002: zp ZP_BYTE:192 [ keyboard_event_scan::$4 ] 20,002: zp ZP_BYTE:193 [ keyboard_event_scan::event_type#0 ] 20,002: zp ZP_BYTE:194 [ 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:181 [ keyboard_event_scan::row_scan#0 ] 4: zp ZP_BYTE:183 [ keyboard_event_scan::$14 ] 4: zp ZP_BYTE:185 [ keyboard_event_scan::$18 ] 4: zp ZP_BYTE:187 [ keyboard_event_scan::$22 ] 4: zp ZP_BYTE:189 [ 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:171 [ 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:174 [ 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:172 [ 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:57 [ 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:60 [ 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:59 [ 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:190 [ keyboard_modifiers#5 ] 20: zp ZP_BYTE:196 [ render_screen_showing#1 ] 20: zp ZP_BYTE:206 [ irq_sprite_ypos#2 ] 20: zp ZP_BYTE:207 [ irq_sprite_ptr#2 ] 20: zp ZP_BYTE:209 [ irq_cnt#14 ] 20: zp ZP_BYTE:210 [ irq_sprite_ypos#1 ] 20: zp ZP_BYTE:211 [ irq_sprite_ptr#1 ] 19.2: zp ZP_WORD:54 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 ] 18.62: zp ZP_BYTE:63 [ level_bcd#22 level_bcd#19 level_bcd#12 level_bcd#14 level_bcd#10 level_bcd#3 ] 16.91: zp ZP_BYTE:56 [ 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.02: zp ZP_DWORD:50 [ score_bcd#20 score_bcd#12 score_bcd#14 score_bcd#10 score_bcd#23 ] 13.85: zp ZP_BYTE:17 [ current_xpos#47 current_xpos#112 current_xpos#113 ] 12.64: 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:205 [ 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:62 [ 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:180 [ keyboard_matrix_read::return#2 ] 1,003: zp ZP_BYTE:179 [ keyboard_matrix_read::rowid#0 ] 334.33: zp ZP_BYTE:195 [ 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:61 [ 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:199 [ render_init::$13 ] 22: zp ZP_BYTE:200 [ 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:197 [ 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:198 [ 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:204 [ sprites_irq::ptr#4 ] 4: zp ZP_BYTE:208 [ sprites_irq::$4 ] 4: zp ZP_BYTE:213 [ sprites_irq::ptr#2 ] 2.67: zp ZP_BYTE:203 [ sprites_irq::ptr#3 ] 2.67: zp ZP_BYTE:212 [ sprites_irq::ptr#1 ] 2.5: zp ZP_BYTE:201 [ sprites_irq::ypos#0 ] 2.5: zp ZP_BYTE:202 [ sprites_irq::ptr#0 ] +Uplift Scope [keyboard_event_pressed] 4: zp ZP_BYTE:151 [ keyboard_event_pressed::return#12 ] 4: zp ZP_BYTE:175 [ keyboard_event_pressed::$0 ] 4: zp ZP_BYTE:177 [ keyboard_event_pressed::$1 ] 4: zp ZP_BYTE:182 [ keyboard_event_pressed::return#0 ] 4: zp ZP_BYTE:184 [ keyboard_event_pressed::return#1 ] 4: zp ZP_BYTE:186 [ keyboard_event_pressed::return#2 ] 4: zp ZP_BYTE:188 [ keyboard_event_pressed::return#10 ] 2: zp ZP_BYTE:176 [ keyboard_event_pressed::row_bits#0 ] 1.71: zp ZP_BYTE:178 [ 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:167 [ play_update_score::$3 ] 4: zp ZP_BYTE:169 [ play_update_score::$5 ] 4: zp ZP_BYTE:170 [ play_update_score::lines_after#0 ] 1.14: zp ZP_BYTE:157 [ play_update_score::removed#0 ] 0.8: zp ZP_DWORD:163 [ play_update_score::add_bcd#0 ] 0.67: zp ZP_BYTE:168 [ play_update_score::lines_before#0 ] +Uplift Scope [render_show] 2: zp ZP_BYTE:82 [ 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 4541005 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:69 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] zp ZP_BYTE:70 [ 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:67 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] zp ZP_BYTE:168 [ keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:170 [ keyboard_event_scan::$14 ] zp ZP_BYTE:172 [ keyboard_event_scan::$18 ] zp ZP_BYTE:174 [ keyboard_event_scan::$22 ] zp ZP_BYTE:176 [ keyboard_event_scan::$26 ] +Uplifting [keyboard_event_scan] best 4529262 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:181 [ keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:183 [ keyboard_event_scan::$14 ] zp ZP_BYTE:185 [ keyboard_event_scan::$18 ] zp ZP_BYTE:187 [ keyboard_event_scan::$22 ] zp ZP_BYTE:189 [ keyboard_event_scan::$26 ] Limited combination testing to 100 combinations of 5308416 possible. -Uplifting [play_collision] best 4391005 combination zp ZP_BYTE:34 [ 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:35 [ 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:136 [ play_collision::i#1 ] zp ZP_BYTE:32 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] zp ZP_BYTE:33 [ play_collision::l#6 play_collision::l#1 ] zp ZP_WORD:134 [ play_collision::playfield_line#0 ] zp ZP_WORD:132 [ play_collision::piece_gfx#0 ] zp ZP_BYTE:31 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] zp ZP_BYTE:29 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] zp ZP_BYTE:30 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] zp ZP_BYTE:129 [ play_collision::return#13 ] zp ZP_BYTE:138 [ play_collision::return#12 ] zp ZP_BYTE:140 [ play_collision::return#1 ] zp ZP_BYTE:144 [ play_collision::return#0 ] zp ZP_BYTE:37 [ play_collision::return#14 ] +Uplifting [play_collision] best 4379262 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 ] Limited combination testing to 100 combinations of 80621568 possible. -Uplifting [play_remove_lines] best 4254005 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:57 [ play_remove_lines::x#2 play_remove_lines::x#1 ] zp ZP_BYTE:58 [ play_remove_lines::full#4 play_remove_lines::full#2 ] zp ZP_BYTE:158 [ play_remove_lines::c#0 ] zp ZP_BYTE:55 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] zp ZP_BYTE:54 [ play_remove_lines::y#8 play_remove_lines::y#1 ] zp ZP_BYTE:146 [ play_remove_lines::return#0 ] +Uplifting [play_remove_lines] best 4242262 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:171 [ 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 ] Limited combination testing to 100 combinations of 20736 possible. -Uplifting [play_lock_current] best 4164005 combination zp ZP_BYTE:62 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] zp ZP_BYTE:63 [ 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:161 [ play_lock_current::i#1 ] zp ZP_BYTE:61 [ play_lock_current::l#6 play_lock_current::l#1 ] zp ZP_WORD:159 [ play_lock_current::playfield_line#0 ] zp ZP_BYTE:60 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] +Uplifting [play_lock_current] best 4152262 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:174 [ play_lock_current::i#1 ] zp ZP_BYTE:71 [ play_lock_current::l#6 play_lock_current::l#1 ] zp ZP_WORD:172 [ 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 ] Limited combination testing to 100 combinations of 729 possible. -Uplifting [] best 4162839 combination zp ZP_BYTE:71 [ 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:48 [ 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:51 [ 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:11 [ current_piece_gfx#53 current_piece_gfx#102 current_piece_gfx#103 ] zp ZP_BYTE:50 [ 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:27 [ current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 ] zp ZP_BYTE:8 [ current_ypos#9 current_ypos#86 current_ypos#87 ] zp ZP_BYTE:177 [ keyboard_modifiers#5 ] zp ZP_BYTE:183 [ render_screen_showing#1 ] zp ZP_BYTE:193 [ irq_sprite_ypos#2 ] zp ZP_BYTE:194 [ irq_sprite_ptr#2 ] zp ZP_BYTE:196 [ irq_cnt#14 ] zp ZP_BYTE:197 [ irq_sprite_ypos#1 ] zp ZP_BYTE:198 [ irq_sprite_ptr#1 ] zp ZP_WORD:45 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 ] zp ZP_BYTE:47 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] zp ZP_BYTE:40 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] zp ZP_DWORD:41 [ score_bcd#20 score_bcd#12 score_bcd#14 score_bcd#10 score_bcd#3 ] zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 ] zp ZP_BYTE:10 [ current_xpos#47 current_xpos#112 current_xpos#113 ] zp ZP_BYTE:68 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] zp ZP_BYTE:9 [ render_screen_render#30 render_screen_render#64 ] zp ZP_BYTE:94 [ 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:192 [ irq_cnt#1 ] zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] zp ZP_BYTE:98 [ irq_sprite_ypos#0 ] zp ZP_BYTE:96 [ render_screen_showing#0 ] zp ZP_BYTE:99 [ irq_sprite_ptr#0 ] zp ZP_BYTE:100 [ irq_cnt#0 ] zp ZP_BYTE:97 [ irq_raster_next#0 ] -Limited combination testing to 100 combinations of 497664 possible. -Uplifting [render_current] best 4156839 combination zp ZP_BYTE:16 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] zp ZP_BYTE:18 [ render_current::c#2 render_current::c#1 ] zp ZP_BYTE:17 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] reg byte a [ render_current::current_cell#0 ] zp ZP_BYTE:122 [ render_current::$5 ] zp ZP_BYTE:15 [ render_current::l#4 render_current::l#1 ] zp ZP_BYTE:14 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] zp ZP_WORD:123 [ render_current::screen_line#0 ] +Uplifting [] best 4151096 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:57 [ 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:60 [ 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:59 [ 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:190 [ keyboard_modifiers#5 ] zp ZP_BYTE:196 [ render_screen_showing#1 ] zp ZP_BYTE:206 [ irq_sprite_ypos#2 ] zp ZP_BYTE:207 [ irq_sprite_ptr#2 ] zp ZP_BYTE:209 [ irq_cnt#14 ] zp ZP_BYTE:210 [ irq_sprite_ypos#1 ] zp ZP_BYTE:211 [ irq_sprite_ptr#1 ] zp ZP_WORD:54 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 ] zp ZP_BYTE:63 [ level_bcd#22 level_bcd#19 level_bcd#12 level_bcd#14 level_bcd#10 level_bcd#3 ] zp ZP_BYTE:56 [ 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: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:205 [ 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 4145096 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 ] Limited combination testing to 100 combinations of 3888 possible. -Uplifting [render_playfield] best 4156239 combination zp ZP_WORD:22 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] zp ZP_BYTE:24 [ render_playfield::c#2 render_playfield::c#1 ] zp ZP_BYTE:21 [ 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:20 [ render_playfield::l#2 render_playfield::l#1 ] +Uplifting [render_playfield] best 4144496 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 4143229 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:149 [ play_spawn_current::$3 ] -Uplifting [keyboard_matrix_read] best 4131223 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 4122220 combination reg byte a [ sid_rnd::return#2 ] reg byte a [ sid_rnd::return#0 ] -Uplifting [render_screen_original] best 4120120 combination zp ZP_WORD:89 [ 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:91 [ 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:85 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] zp ZP_WORD:87 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] zp ZP_BYTE:84 [ render_screen_original::y#6 render_screen_original::y#1 ] -Uplifting [render_score] best 4117720 combination reg byte a [ render_score::$9 ] reg byte a [ render_score::$10 ] reg byte a [ render_score::$11 ] reg byte a [ render_score::$12 ] zp ZP_BYTE:5 [ render_score::b#2 render_score::b#1 ] zp ZP_WORD:6 [ render_score::screen_score_pos#4 render_score::screen_score_pos#5 render_score::screen_score_pos#3 ] zp ZP_WORD:118 [ render_score::screen_score_pos#2 ] zp ZP_BYTE:115 [ render_score::score_byte#0 ] -Limited combination testing to 100 combinations of 1024 possible. -Uplifting [main] best 4115320 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:106 [ main::render#1 ] zp ZP_BYTE:110 [ main::render#2 ] zp ZP_BYTE:102 [ main::key_event#0 ] +Uplifting [play_spawn_current] best 4131486 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 4119480 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 4110477 combination reg byte a [ sid_rnd::return#2 ] reg byte a [ sid_rnd::return#0 ] +Uplifting [render_screen_original] best 4108377 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 4105977 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 ] Limited combination testing to 100 combinations of 6912 possible. -Uplifting [play_move_down] best 4114311 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:39 [ 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:143 [ play_move_down::$2 ] zp ZP_BYTE:145 [ play_move_down::$12 ] zp ZP_BYTE:147 [ play_move_down::removed#0 ] +Uplifting [play_move_down] best 4104968 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 ] Limited combination testing to 100 combinations of 12288 possible. -Uplifting [play_move_rotate] best 4113099 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:26 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] zp ZP_BYTE:128 [ play_move_rotate::$2 ] zp ZP_BYTE:130 [ play_move_rotate::$6 ] zp ZP_BYTE:131 [ play_move_rotate::$4 ] +Uplifting [play_move_rotate] best 4103756 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 ] Limited combination testing to 100 combinations of 12288 possible. -Uplifting [play_move_leftright] best 4111881 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:141 [ play_move_leftright::$8 ] +Uplifting [play_move_leftright] best 4102538 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 ] Limited combination testing to 100 combinations of 1024 possible. -Uplifting [keyboard_event_get] best 4110975 combination reg byte a [ keyboard_event_get::return#3 ] reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] -Uplifting [render_init] best 4110785 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:82 [ render_init::li_2#2 render_init::li_2#1 ] zp ZP_WORD:80 [ render_init::li_1#2 render_init::li_1#1 ] -Uplifting [play_init] best 4110615 combination reg byte x [ play_init::j#2 play_init::j#1 ] reg byte a [ play_init::$1 ] zp ZP_BYTE:76 [ play_init::idx#2 play_init::idx#1 ] zp ZP_WORD:74 [ play_init::pli#2 play_init::pli#1 ] -Uplifting [sprites_init] best 4110445 combination reg byte x [ sprites_init::s#2 sprites_init::s#1 ] reg byte a [ sprites_init::s2#0 ] zp ZP_BYTE:78 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Uplifting [sprites_irq] best 4110419 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:190 [ sprites_irq::ptr#3 ] zp ZP_BYTE:199 [ sprites_irq::ptr#1 ] zp ZP_BYTE:188 [ sprites_irq::ypos#0 ] zp ZP_BYTE:189 [ sprites_irq::ptr#0 ] +Uplifting [keyboard_event_get] best 4101632 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 4101598 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 ] +Limited combination testing to 100 combinations of 1536 possible. +Uplifting [render_init] best 4101408 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 4101238 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 4101068 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 4101042 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:203 [ sprites_irq::ptr#3 ] zp ZP_BYTE:212 [ sprites_irq::ptr#1 ] zp ZP_BYTE:201 [ sprites_irq::ypos#0 ] zp ZP_BYTE:202 [ sprites_irq::ptr#0 ] Limited combination testing to 100 combinations of 36864 possible. -Uplifting [keyboard_event_pressed] best 4110399 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:171 [ keyboard_event_pressed::return#1 ] zp ZP_BYTE:173 [ keyboard_event_pressed::return#2 ] zp ZP_BYTE:175 [ keyboard_event_pressed::return#10 ] zp ZP_BYTE:163 [ keyboard_event_pressed::row_bits#0 ] zp ZP_BYTE:165 [ keyboard_event_pressed::return#11 ] zp ZP_BYTE:65 [ keyboard_event_pressed::keycode#5 ] +Uplifting [keyboard_event_pressed] best 4101022 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:184 [ keyboard_event_pressed::return#1 ] zp ZP_BYTE:186 [ keyboard_event_pressed::return#2 ] zp ZP_BYTE:188 [ keyboard_event_pressed::return#10 ] zp ZP_BYTE:176 [ keyboard_event_pressed::row_bits#0 ] zp ZP_BYTE:178 [ keyboard_event_pressed::return#11 ] zp ZP_BYTE:75 [ keyboard_event_pressed::keycode#5 ] Limited combination testing to 100 combinations of 589824 possible. -Uplifting [play_update_score] best 4110386 combination reg byte a [ play_update_score::$2 ] reg byte a [ play_update_score::removed#0 ] zp ZP_DWORD:154 [ play_update_score::add_bcd#0 ] -Uplifting [render_show] best 4110377 combination reg byte a [ render_show::d018val#3 ] -Uplifting [sid_rnd_init] best 4110377 combination -Uplifting [render_screen_swap] best 4110377 combination -Uplifting [sprites_irq_init] best 4110377 combination -Attempting to uplift remaining variables inzp ZP_BYTE:71 [ 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 4110377 combination zp ZP_BYTE:71 [ 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:34 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] -Uplifting [play_collision] best 4110377 combination zp ZP_BYTE:34 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] -Attempting to uplift remaining variables inzp ZP_BYTE:62 [ 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 4110377 combination zp ZP_BYTE:62 [ 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:69 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] -Uplifting [keyboard_event_scan] best 3960377 combination reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:57 [ play_remove_lines::x#2 play_remove_lines::x#1 ] -Uplifting [play_remove_lines] best 3960377 combination zp ZP_BYTE:57 [ play_remove_lines::x#2 play_remove_lines::x#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:63 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] -Uplifting [play_lock_current] best 3960377 combination zp ZP_BYTE:63 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:35 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] -Uplifting [play_collision] best 3960377 combination zp ZP_BYTE:35 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:70 [ 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 3960377 combination zp ZP_BYTE:70 [ 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:58 [ play_remove_lines::full#4 play_remove_lines::full#2 ] -Uplifting [play_remove_lines] best 3960377 combination zp ZP_BYTE:58 [ play_remove_lines::full#4 play_remove_lines::full#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:158 [ play_remove_lines::c#0 ] -Uplifting [play_remove_lines] best 3960377 combination zp ZP_BYTE:158 [ play_remove_lines::c#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:55 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] -Uplifting [play_remove_lines] best 3960377 combination zp ZP_BYTE:55 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:16 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] -Uplifting [render_current] best 3960377 combination zp ZP_BYTE:16 [ 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:161 [ play_lock_current::i#1 ] -Uplifting [play_lock_current] best 3960377 combination zp ZP_BYTE:161 [ play_lock_current::i#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:67 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Uplifting [keyboard_event_scan] best 3960377 combination zp ZP_BYTE:67 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:24 [ render_playfield::c#2 render_playfield::c#1 ] -Uplifting [render_playfield] best 3960377 combination zp ZP_BYTE:24 [ render_playfield::c#2 render_playfield::c#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:18 [ render_current::c#2 render_current::c#1 ] -Uplifting [render_current] best 3960377 combination zp ZP_BYTE:18 [ render_current::c#2 render_current::c#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:54 [ play_remove_lines::y#8 play_remove_lines::y#1 ] -Uplifting [play_remove_lines] best 3960377 combination zp ZP_BYTE:54 [ play_remove_lines::y#8 play_remove_lines::y#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:136 [ play_collision::i#1 ] -Uplifting [play_collision] best 3960377 combination zp ZP_BYTE:136 [ play_collision::i#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:17 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] -Uplifting [render_current] best 3960377 combination zp ZP_BYTE:17 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:21 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] -Uplifting [render_playfield] best 3960377 combination zp ZP_BYTE:21 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:32 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] -Uplifting [play_collision] best 3960377 combination zp ZP_BYTE:32 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:168 [ keyboard_event_scan::row_scan#0 ] -Uplifting [keyboard_event_scan] best 3960377 combination zp ZP_BYTE:168 [ keyboard_event_scan::row_scan#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:61 [ play_lock_current::l#6 play_lock_current::l#1 ] -Uplifting [play_lock_current] best 3960377 combination zp ZP_BYTE:61 [ play_lock_current::l#6 play_lock_current::l#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:33 [ play_collision::l#6 play_collision::l#1 ] -Uplifting [play_collision] best 3960377 combination zp ZP_BYTE:33 [ play_collision::l#6 play_collision::l#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:60 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -Uplifting [play_lock_current] best 3960377 combination zp ZP_BYTE:60 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:51 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] -Uplifting [] best 3960377 combination zp ZP_BYTE:51 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:122 [ render_current::$5 ] -Uplifting [render_current] best 3959977 combination reg byte a [ render_current::$5 ] -Attempting to uplift remaining variables inzp ZP_BYTE:5 [ render_score::b#2 render_score::b#1 ] -Uplifting [render_score] best 3958777 combination reg byte x [ render_score::b#2 render_score::b#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:20 [ render_playfield::l#2 render_playfield::l#1 ] -Uplifting [render_playfield] best 3958777 combination zp ZP_BYTE:20 [ render_playfield::l#2 render_playfield::l#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:15 [ render_current::l#4 render_current::l#1 ] -Uplifting [render_current] best 3958777 combination zp ZP_BYTE:15 [ render_current::l#4 render_current::l#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:14 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] -Uplifting [render_current] best 3958777 combination zp ZP_BYTE:14 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:115 [ render_score::score_byte#0 ] -Uplifting [render_score] best 3958777 combination zp ZP_BYTE:115 [ render_score::score_byte#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:31 [ play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 ] -Uplifting [play_collision] best 3958777 combination zp ZP_BYTE:31 [ 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:106 [ main::render#1 ] -Uplifting [main] best 3958777 combination zp ZP_BYTE:106 [ main::render#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:110 [ main::render#2 ] -Uplifting [main] best 3958777 combination zp ZP_BYTE:110 [ main::render#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:50 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] -Uplifting [] best 3958777 combination zp ZP_BYTE:50 [ 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:102 [ main::key_event#0 ] -Uplifting [main] best 3958777 combination zp ZP_BYTE:102 [ main::key_event#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:8 [ current_ypos#9 current_ypos#86 current_ypos#87 ] -Uplifting [] best 3958743 combination reg byte y [ current_ypos#9 current_ypos#86 current_ypos#87 ] -Attempting to uplift remaining variables inzp ZP_BYTE:39 [ 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 3958728 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:177 [ keyboard_modifiers#5 ] -Uplifting [] best 3958725 combination reg byte a [ keyboard_modifiers#5 ] -Attempting to uplift remaining variables inzp ZP_BYTE:183 [ render_screen_showing#1 ] -Uplifting [] best 3958725 combination zp ZP_BYTE:183 [ render_screen_showing#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:193 [ irq_sprite_ypos#2 ] -Uplifting [] best 3958725 combination zp ZP_BYTE:193 [ irq_sprite_ypos#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:194 [ irq_sprite_ptr#2 ] -Uplifting [] best 3958725 combination zp ZP_BYTE:194 [ irq_sprite_ptr#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:196 [ irq_cnt#14 ] -Uplifting [] best 3958725 combination zp ZP_BYTE:196 [ irq_cnt#14 ] -Attempting to uplift remaining variables inzp ZP_BYTE:197 [ irq_sprite_ypos#1 ] -Uplifting [] best 3958725 combination zp ZP_BYTE:197 [ irq_sprite_ypos#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:198 [ irq_sprite_ptr#1 ] -Uplifting [] best 3958725 combination zp ZP_BYTE:198 [ irq_sprite_ptr#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:29 [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] -Uplifting [play_collision] best 3958712 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:84 [ render_screen_original::y#6 render_screen_original::y#1 ] -Uplifting [render_screen_original] best 3958712 combination zp ZP_BYTE:84 [ render_screen_original::y#6 render_screen_original::y#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:47 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -Uplifting [] best 3958712 combination zp ZP_BYTE:47 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -Attempting to uplift remaining variables inzp ZP_BYTE:40 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] -Uplifting [] best 3958712 combination zp ZP_BYTE:40 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:78 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Uplifting [sprites_init] best 3958712 combination zp ZP_BYTE:78 [ sprites_init::xpos#2 sprites_init::xpos#1 ] +Uplifting [play_update_score] best 4101000 combination reg byte a [ play_update_score::$2 ] reg byte a [ play_update_score::$3 ] reg byte a [ play_update_score::$5 ] reg byte a [ play_update_score::lines_after#0 ] zp ZP_BYTE:157 [ play_update_score::removed#0 ] zp ZP_DWORD:163 [ play_update_score::add_bcd#0 ] zp ZP_BYTE:168 [ play_update_score::lines_before#0 ] +Limited combination testing to 100 combinations of 2304 possible. +Uplifting [render_show] best 4100991 combination reg byte a [ render_show::d018val#3 ] +Uplifting [render_score] best 4100991 combination zp ZP_WORD:5 [ render_score::screen#2 ] +Uplifting [sid_rnd_init] best 4100991 combination +Uplifting [render_screen_swap] best 4100991 combination +Uplifting [sprites_irq_init] best 4100991 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 4100991 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 ] +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 4100991 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 4100991 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 3950991 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 3950991 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 3950991 combination zp ZP_BYTE:73 [ 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 3950991 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 3950991 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 3950991 combination zp ZP_BYTE:68 [ play_remove_lines::full#4 play_remove_lines::full#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:171 [ play_remove_lines::c#0 ] +Uplifting [play_remove_lines] best 3950991 combination zp ZP_BYTE:171 [ 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 3950991 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 3950991 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:174 [ play_lock_current::i#1 ] +Uplifting [play_lock_current] best 3950991 combination zp ZP_BYTE:174 [ 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 3950991 combination zp ZP_BYTE:77 [ 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 3950991 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 3950991 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 3950991 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 3950991 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 3950991 combination zp ZP_BYTE:24 [ render_current::xpos#2 render_current::xpos#0 render_current::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 3950991 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 3950991 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:181 [ keyboard_event_scan::row_scan#0 ] +Uplifting [keyboard_event_scan] best 3950991 combination zp ZP_BYTE:181 [ 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 3950991 combination zp ZP_BYTE:71 [ 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 3950991 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 3950991 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:60 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] +Uplifting [] best 3950991 combination zp ZP_BYTE:60 [ 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 3950591 combination reg byte a [ render_current::$5 ] +Attempting to uplift remaining variables inzp ZP_BYTE:27 [ render_playfield::l#2 render_playfield::l#1 ] +Uplifting [render_playfield] best 3950591 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 3950591 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 3950591 combination zp ZP_BYTE:21 [ render_current::ypos2#2 render_current::ypos2#0 render_current::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 3950591 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 3950591 combination zp ZP_BYTE:116 [ main::render#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:120 [ main::render#2 ] +Uplifting [main] best 3950591 combination zp ZP_BYTE:120 [ main::render#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:59 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] +Uplifting [] best 3950591 combination zp ZP_BYTE:59 [ 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 3950591 combination zp ZP_BYTE:112 [ main::key_event#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:15 [ current_ypos#9 current_ypos#86 current_ypos#87 ] +Uplifting [] best 3950557 combination reg byte y [ current_ypos#9 current_ypos#86 current_ypos#87 ] +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 3950542 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:190 [ keyboard_modifiers#5 ] +Uplifting [] best 3950539 combination reg byte a [ keyboard_modifiers#5 ] +Attempting to uplift remaining variables inzp ZP_BYTE:196 [ render_screen_showing#1 ] +Uplifting [] best 3950539 combination zp ZP_BYTE:196 [ render_screen_showing#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:206 [ irq_sprite_ypos#2 ] +Uplifting [] best 3950539 combination zp ZP_BYTE:206 [ irq_sprite_ypos#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:207 [ irq_sprite_ptr#2 ] +Uplifting [] best 3950539 combination zp ZP_BYTE:207 [ irq_sprite_ptr#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:209 [ irq_cnt#14 ] +Uplifting [] best 3950539 combination zp ZP_BYTE:209 [ irq_cnt#14 ] +Attempting to uplift remaining variables inzp ZP_BYTE:210 [ irq_sprite_ypos#1 ] +Uplifting [] best 3950539 combination zp ZP_BYTE:210 [ irq_sprite_ypos#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:211 [ irq_sprite_ptr#1 ] +Uplifting [] best 3950539 combination zp ZP_BYTE:211 [ irq_sprite_ptr#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:63 [ level_bcd#22 level_bcd#19 level_bcd#12 level_bcd#14 level_bcd#10 level_bcd#3 ] +Uplifting [] best 3950539 combination zp ZP_BYTE:63 [ level_bcd#22 level_bcd#19 level_bcd#12 level_bcd#14 level_bcd#10 level_bcd#3 ] +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 3950526 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 3950526 combination zp ZP_BYTE:94 [ render_screen_original::y#6 render_screen_original::y#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:56 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] +Uplifting [] best 3950526 combination zp ZP_BYTE:56 [ 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 3950526 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 3950526 combination zp ZP_BYTE:88 [ 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 3958712 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:76 [ play_init::idx#2 play_init::idx#1 ] -Uplifting [play_init] best 3958712 combination zp ZP_BYTE:76 [ play_init::idx#2 play_init::idx#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:10 [ current_xpos#47 current_xpos#112 current_xpos#113 ] -Uplifting [] best 3958712 combination zp ZP_BYTE:10 [ current_xpos#47 current_xpos#112 current_xpos#113 ] -Attempting to uplift remaining variables inzp ZP_BYTE:68 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] -Uplifting [] best 3958701 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:9 [ render_screen_render#30 render_screen_render#64 ] -Uplifting [] best 3958701 combination zp ZP_BYTE:9 [ render_screen_render#30 render_screen_render#64 ] -Attempting to uplift remaining variables inzp ZP_BYTE:30 [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ] -Uplifting [play_collision] best 3958688 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:26 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] -Uplifting [play_move_rotate] best 3958688 combination zp ZP_BYTE:26 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:94 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] -Uplifting [] best 3958688 combination zp ZP_BYTE:94 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] +Uplifting [] best 3950526 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 3950526 combination zp ZP_BYTE:86 [ 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 3950526 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 3950515 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 3950515 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 3950502 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 3950502 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 3950502 combination zp ZP_BYTE:104 [ 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 3958688 combination zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] -Attempting to uplift remaining variables inzp ZP_BYTE:128 [ play_move_rotate::$2 ] -Uplifting [play_move_rotate] best 3958682 combination reg byte a [ play_move_rotate::$2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:129 [ play_collision::return#13 ] -Uplifting [play_collision] best 3958676 combination reg byte a [ play_collision::return#13 ] -Attempting to uplift remaining variables inzp ZP_BYTE:130 [ play_move_rotate::$6 ] -Uplifting [play_move_rotate] best 3958670 combination reg byte a [ play_move_rotate::$6 ] -Attempting to uplift remaining variables inzp ZP_BYTE:131 [ play_move_rotate::$4 ] -Uplifting [play_move_rotate] best 3958664 combination reg byte a [ play_move_rotate::$4 ] -Attempting to uplift remaining variables inzp ZP_BYTE:138 [ play_collision::return#12 ] -Uplifting [play_collision] best 3958658 combination reg byte a [ play_collision::return#12 ] -Attempting to uplift remaining variables inzp ZP_BYTE:140 [ play_collision::return#1 ] -Uplifting [play_collision] best 3958652 combination reg byte a [ play_collision::return#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:141 [ play_move_leftright::$8 ] -Uplifting [play_move_leftright] best 3958646 combination reg byte a [ play_move_leftright::$8 ] -Attempting to uplift remaining variables inzp ZP_BYTE:143 [ play_move_down::$2 ] -Uplifting [play_move_down] best 3958640 combination reg byte a [ play_move_down::$2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:144 [ play_collision::return#0 ] -Uplifting [play_collision] best 3958634 combination reg byte a [ play_collision::return#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:145 [ play_move_down::$12 ] -Uplifting [play_move_down] best 3958628 combination reg byte a [ play_move_down::$12 ] -Attempting to uplift remaining variables inzp ZP_BYTE:146 [ play_remove_lines::return#0 ] -Uplifting [play_remove_lines] best 3958622 combination reg byte a [ play_remove_lines::return#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:147 [ play_move_down::removed#0 ] -Uplifting [play_move_down] best 3958616 combination reg byte a [ play_move_down::removed#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:170 [ keyboard_event_scan::$14 ] -Uplifting [keyboard_event_scan] best 3958610 combination reg byte a [ keyboard_event_scan::$14 ] -Attempting to uplift remaining variables inzp ZP_BYTE:171 [ keyboard_event_pressed::return#1 ] -Uplifting [keyboard_event_pressed] best 3958604 combination reg byte a [ keyboard_event_pressed::return#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:172 [ keyboard_event_scan::$18 ] -Uplifting [keyboard_event_scan] best 3958598 combination reg byte a [ keyboard_event_scan::$18 ] -Attempting to uplift remaining variables inzp ZP_BYTE:173 [ keyboard_event_pressed::return#2 ] -Uplifting [keyboard_event_pressed] best 3958592 combination reg byte a [ keyboard_event_pressed::return#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:174 [ keyboard_event_scan::$22 ] -Uplifting [keyboard_event_scan] best 3958586 combination reg byte a [ keyboard_event_scan::$22 ] -Attempting to uplift remaining variables inzp ZP_BYTE:175 [ keyboard_event_pressed::return#10 ] -Uplifting [keyboard_event_pressed] best 3958580 combination reg byte a [ keyboard_event_pressed::return#10 ] -Attempting to uplift remaining variables inzp ZP_BYTE:176 [ keyboard_event_scan::$26 ] -Uplifting [keyboard_event_scan] best 3958574 combination reg byte a [ keyboard_event_scan::$26 ] -Attempting to uplift remaining variables inzp ZP_BYTE:192 [ irq_cnt#1 ] -Uplifting [] best 3958574 combination zp ZP_BYTE:192 [ irq_cnt#1 ] +Uplifting [] best 3950502 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 3950496 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 3950490 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 3950484 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 3950478 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 3950472 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 3950466 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 3950460 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 3950454 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 3950448 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 3950442 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 3950436 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 3950430 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 3950424 combination reg byte a [ play_move_down::removed#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:183 [ keyboard_event_scan::$14 ] +Uplifting [keyboard_event_scan] best 3950418 combination reg byte a [ keyboard_event_scan::$14 ] +Attempting to uplift remaining variables inzp ZP_BYTE:184 [ keyboard_event_pressed::return#1 ] +Uplifting [keyboard_event_pressed] best 3950412 combination reg byte a [ keyboard_event_pressed::return#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:185 [ keyboard_event_scan::$18 ] +Uplifting [keyboard_event_scan] best 3950406 combination reg byte a [ keyboard_event_scan::$18 ] +Attempting to uplift remaining variables inzp ZP_BYTE:186 [ keyboard_event_pressed::return#2 ] +Uplifting [keyboard_event_pressed] best 3950400 combination reg byte a [ keyboard_event_pressed::return#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:187 [ keyboard_event_scan::$22 ] +Uplifting [keyboard_event_scan] best 3950394 combination reg byte a [ keyboard_event_scan::$22 ] +Attempting to uplift remaining variables inzp ZP_BYTE:188 [ keyboard_event_pressed::return#10 ] +Uplifting [keyboard_event_pressed] best 3950388 combination reg byte a [ keyboard_event_pressed::return#10 ] +Attempting to uplift remaining variables inzp ZP_BYTE:189 [ keyboard_event_scan::$26 ] +Uplifting [keyboard_event_scan] best 3950382 combination reg byte a [ keyboard_event_scan::$26 ] +Attempting to uplift remaining variables inzp ZP_BYTE:205 [ irq_cnt#1 ] +Uplifting [] best 3950382 combination zp ZP_BYTE:205 [ irq_cnt#1 ] Attempting to uplift remaining variables inzp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] -Uplifting [] best 3958574 combination zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] -Attempting to uplift remaining variables inzp ZP_BYTE:190 [ sprites_irq::ptr#3 ] -Uplifting [sprites_irq] best 3958562 combination reg byte x [ sprites_irq::ptr#3 ] -Attempting to uplift remaining variables inzp ZP_BYTE:199 [ sprites_irq::ptr#1 ] -Uplifting [sprites_irq] best 3958552 combination reg byte a [ sprites_irq::ptr#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:188 [ sprites_irq::ypos#0 ] -Uplifting [sprites_irq] best 3958537 combination reg byte a [ sprites_irq::ypos#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:189 [ sprites_irq::ptr#0 ] -Uplifting [sprites_irq] best 3958524 combination reg byte x [ sprites_irq::ptr#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:163 [ keyboard_event_pressed::row_bits#0 ] -Uplifting [keyboard_event_pressed] best 3958524 combination zp ZP_BYTE:163 [ keyboard_event_pressed::row_bits#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:165 [ keyboard_event_pressed::return#11 ] -Uplifting [keyboard_event_pressed] best 3958506 combination reg byte a [ keyboard_event_pressed::return#11 ] -Attempting to uplift remaining variables inzp ZP_BYTE:37 [ play_collision::return#14 ] -Uplifting [play_collision] best 3958479 combination reg byte a [ play_collision::return#14 ] -Attempting to uplift remaining variables inzp ZP_BYTE:65 [ keyboard_event_pressed::keycode#5 ] -Uplifting [keyboard_event_pressed] best 3958479 combination zp ZP_BYTE:65 [ keyboard_event_pressed::keycode#5 ] -Attempting to uplift remaining variables inzp ZP_BYTE:98 [ irq_sprite_ypos#0 ] -Uplifting [] best 3958479 combination zp ZP_BYTE:98 [ irq_sprite_ypos#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:96 [ render_screen_showing#0 ] -Uplifting [] best 3958479 combination zp ZP_BYTE:96 [ render_screen_showing#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:99 [ irq_sprite_ptr#0 ] -Uplifting [] best 3958479 combination zp ZP_BYTE:99 [ irq_sprite_ptr#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:100 [ irq_cnt#0 ] -Uplifting [] best 3958479 combination zp ZP_BYTE:100 [ irq_cnt#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:97 [ irq_raster_next#0 ] -Uplifting [] best 3958479 combination zp ZP_BYTE:97 [ irq_raster_next#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:149 [ play_spawn_current::$3 ] -Uplifting [play_spawn_current] best 3958479 combination zp ZP_BYTE:149 [ play_spawn_current::$3 ] -Coalescing zero page register with common assignment [ zp ZP_WORD:6 [ render_score::screen_score_pos#4 render_score::screen_score_pos#5 render_score::screen_score_pos#3 ] ] with [ zp ZP_WORD:118 [ render_score::screen_score_pos#2 ] ] - score: 2 -Coalescing zero page register with common assignment [ zp ZP_WORD:27 [ current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 ] ] with [ zp ZP_WORD:132 [ play_collision::piece_gfx#0 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_BYTE:40 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 ] ] with [ zp ZP_BYTE:60 [ 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:94 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 ] ] with [ zp ZP_BYTE:97 [ irq_raster_next#0 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_BYTE:98 [ irq_sprite_ypos#0 ] ] with [ zp ZP_BYTE:193 [ irq_sprite_ypos#2 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_BYTE:99 [ irq_sprite_ptr#0 ] ] with [ zp ZP_BYTE:194 [ irq_sprite_ptr#2 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_BYTE:100 [ irq_cnt#0 ] ] with [ zp ZP_BYTE:192 [ irq_cnt#1 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_BYTE:106 [ main::render#1 ] ] with [ zp ZP_BYTE:110 [ main::render#2 ] ] - score: 1 -Coalescing zero page register [ zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] ] with [ zp ZP_BYTE:76 [ 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:78 [ 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:84 [ 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:54 [ 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:61 [ 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:149 [ play_spawn_current::$3 ] ] -Coalescing zero page register [ zp ZP_WORD:6 [ render_score::screen_score_pos#4 render_score::screen_score_pos#5 render_score::screen_score_pos#3 render_score::screen_score_pos#2 ] ] with [ zp ZP_WORD:11 [ current_piece_gfx#53 current_piece_gfx#102 current_piece_gfx#103 ] ] -Coalescing zero page register [ zp ZP_WORD:6 [ render_score::screen_score_pos#4 render_score::screen_score_pos#5 render_score::screen_score_pos#3 render_score::screen_score_pos#2 current_piece_gfx#53 current_piece_gfx#102 current_piece_gfx#103 ] ] with [ zp ZP_WORD:22 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] ] -Coalescing zero page register [ zp ZP_WORD:6 [ render_score::screen_score_pos#4 render_score::screen_score_pos#5 render_score::screen_score_pos#3 render_score::screen_score_pos#2 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:27 [ 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:6 [ render_score::screen_score_pos#4 render_score::screen_score_pos#5 render_score::screen_score_pos#3 render_score::screen_score_pos#2 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:74 [ play_init::pli#2 play_init::pli#1 ] ] -Coalescing zero page register [ zp ZP_WORD:6 [ render_score::screen_score_pos#4 render_score::screen_score_pos#5 render_score::screen_score_pos#3 render_score::screen_score_pos#2 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:80 [ render_init::li_1#2 render_init::li_1#1 ] ] -Coalescing zero page register [ zp ZP_WORD:6 [ render_score::screen_score_pos#4 render_score::screen_score_pos#5 render_score::screen_score_pos#3 render_score::screen_score_pos#2 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:85 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] ] -Coalescing zero page register [ zp ZP_WORD:6 [ render_score::screen_score_pos#4 render_score::screen_score_pos#5 render_score::screen_score_pos#3 render_score::screen_score_pos#2 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:159 [ play_lock_current::playfield_line#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:9 [ render_screen_render#30 render_screen_render#64 ] ] with [ zp ZP_BYTE:20 [ render_playfield::l#2 render_playfield::l#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:9 [ render_screen_render#30 render_screen_render#64 render_playfield::l#2 render_playfield::l#1 ] ] with [ zp ZP_BYTE:26 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] ] -Coalescing zero page register [ 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 ] ] with [ zp ZP_BYTE:55 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] ] -Coalescing zero page register [ 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 ] ] with [ zp ZP_BYTE:62 [ 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: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 ] ] with [ zp ZP_BYTE:65 [ keyboard_event_pressed::keycode#5 ] ] -Coalescing zero page register [ 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 ] ] with [ zp ZP_BYTE:67 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] ] -Coalescing zero page register [ 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 ] ] with [ zp ZP_BYTE:115 [ render_score::score_byte#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:10 [ current_xpos#47 current_xpos#112 current_xpos#113 ] ] with [ zp ZP_BYTE:21 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] ] -Coalescing zero page register [ 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 ] ] with [ zp ZP_BYTE:31 [ 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: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 ] ] with [ zp ZP_BYTE:57 [ play_remove_lines::x#2 play_remove_lines::x#1 ] ] -Coalescing zero page register [ 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 ] ] with [ zp ZP_BYTE:63 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] ] -Coalescing zero page register [ 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 ] ] with [ zp ZP_BYTE:70 [ 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: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 ] ] with [ zp ZP_BYTE:163 [ keyboard_event_pressed::row_bits#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:14 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 ] ] with [ zp ZP_BYTE:24 [ render_playfield::c#2 render_playfield::c#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:14 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 render_playfield::c#2 render_playfield::c#1 ] ] with [ zp ZP_BYTE:32 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:14 [ 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:58 [ play_remove_lines::full#4 play_remove_lines::full#2 ] ] -Coalescing zero page register [ zp ZP_BYTE:14 [ 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:161 [ play_lock_current::i#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:14 [ 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:168 [ keyboard_event_scan::row_scan#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:15 [ render_current::l#4 render_current::l#1 ] ] with [ zp ZP_BYTE:33 [ play_collision::l#6 play_collision::l#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:15 [ render_current::l#4 render_current::l#1 play_collision::l#6 play_collision::l#1 ] ] with [ zp ZP_BYTE:158 [ play_remove_lines::c#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:16 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 ] ] with [ zp ZP_BYTE:34 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] ] -Coalescing zero page register [ zp ZP_BYTE:17 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 ] ] with [ zp ZP_BYTE:35 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:18 [ render_current::c#2 render_current::c#1 ] ] with [ zp ZP_BYTE:102 [ main::key_event#0 ] ] -Coalescing zero page register [ zp ZP_WORD:45 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 ] ] with [ zp ZP_WORD:82 [ render_init::li_2#2 render_init::li_2#1 ] ] -Coalescing zero page register [ zp ZP_WORD:45 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 render_init::li_2#2 render_init::li_2#1 ] ] with [ zp ZP_WORD:87 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] ] -Coalescing zero page register [ zp ZP_WORD:48 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 ] ] with [ zp ZP_WORD:89 [ 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:91 [ 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 ] ] with [ zp ZP_WORD:123 [ render_current::screen_line#0 ] ] -Coalescing zero page register [ zp ZP_WORD:91 [ 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 render_current::screen_line#0 ] ] with [ zp ZP_WORD:134 [ play_collision::playfield_line#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:96 [ render_screen_showing#0 ] ] with [ zp ZP_BYTE:183 [ render_screen_showing#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:98 [ irq_sprite_ypos#0 irq_sprite_ypos#2 ] ] with [ zp ZP_BYTE:197 [ irq_sprite_ypos#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:99 [ irq_sprite_ptr#0 irq_sprite_ptr#2 ] ] with [ zp ZP_BYTE:198 [ irq_sprite_ptr#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:100 [ irq_cnt#0 irq_cnt#1 ] ] with [ zp ZP_BYTE:196 [ irq_cnt#14 ] ] -Allocated (was zp ZP_WORD:6) zp ZP_WORD:5 [ render_score::screen_score_pos#4 render_score::screen_score_pos#5 render_score::screen_score_pos#3 render_score::screen_score_pos#2 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 ] -Allocated (was zp ZP_BYTE:9) zp ZP_BYTE:7 [ 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 render_score::score_byte#0 ] -Allocated (was zp ZP_BYTE:10) zp ZP_BYTE:8 [ 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:14) zp ZP_BYTE:9 [ 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:15) zp ZP_BYTE:10 [ 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:16) zp ZP_BYTE:11 [ 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:17) zp ZP_BYTE:12 [ 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:18) zp ZP_BYTE:13 [ render_current::c#2 render_current::c#1 main::key_event#0 ] -Allocated (was zp ZP_BYTE:40) zp ZP_BYTE:14 [ 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_DWORD:41) zp ZP_DWORD:15 [ score_bcd#20 score_bcd#12 score_bcd#14 score_bcd#10 score_bcd#3 ] -Allocated (was zp ZP_WORD:45) zp ZP_WORD:19 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 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 ] -Allocated (was zp ZP_BYTE:47) zp ZP_BYTE:21 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -Allocated (was zp ZP_WORD:48) zp ZP_WORD:22 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 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_BYTE:50) zp ZP_BYTE:24 [ 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:51) zp ZP_BYTE:25 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] -Allocated (was zp ZP_BYTE:71) zp ZP_BYTE:26 [ 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_WORD:91) zp ZP_WORD:27 [ 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 render_current::screen_line#0 play_collision::playfield_line#0 ] -Allocated (was zp ZP_BYTE:94) zp ZP_BYTE:29 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 irq_raster_next#0 ] -Allocated (was zp ZP_BYTE:96) zp ZP_BYTE:30 [ render_screen_showing#0 render_screen_showing#1 ] -Allocated (was zp ZP_BYTE:98) zp ZP_BYTE:31 [ irq_sprite_ypos#0 irq_sprite_ypos#2 irq_sprite_ypos#1 ] -Allocated (was zp ZP_BYTE:99) zp ZP_BYTE:32 [ irq_sprite_ptr#0 irq_sprite_ptr#2 irq_sprite_ptr#1 ] -Allocated (was zp ZP_BYTE:100) zp ZP_BYTE:33 [ irq_cnt#0 irq_cnt#1 irq_cnt#14 ] -Allocated (was zp ZP_BYTE:106) zp ZP_BYTE:34 [ main::render#1 main::render#2 ] -Allocated (was zp ZP_BYTE:136) zp ZP_BYTE:35 [ play_collision::i#1 ] -Allocated (was zp ZP_DWORD:154) zp ZP_DWORD:36 [ play_update_score::add_bcd#0 ] +Uplifting [] best 3950382 combination zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] +Attempting to uplift remaining variables inzp ZP_BYTE:203 [ sprites_irq::ptr#3 ] +Uplifting [sprites_irq] best 3950370 combination reg byte x [ sprites_irq::ptr#3 ] +Attempting to uplift remaining variables inzp ZP_BYTE:212 [ sprites_irq::ptr#1 ] +Uplifting [sprites_irq] best 3950360 combination reg byte a [ sprites_irq::ptr#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:201 [ sprites_irq::ypos#0 ] +Uplifting [sprites_irq] best 3950345 combination reg byte a [ sprites_irq::ypos#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:202 [ sprites_irq::ptr#0 ] +Uplifting [sprites_irq] best 3950332 combination reg byte x [ sprites_irq::ptr#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:176 [ keyboard_event_pressed::row_bits#0 ] +Uplifting [keyboard_event_pressed] best 3950332 combination zp ZP_BYTE:176 [ keyboard_event_pressed::row_bits#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:178 [ keyboard_event_pressed::return#11 ] +Uplifting [keyboard_event_pressed] best 3950314 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 3950287 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 3950287 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 3950281 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 3950260 combination reg byte y [ render_bcd::only_low#6 ] +Attempting to uplift remaining variables inzp ZP_BYTE:108 [ irq_sprite_ypos#0 ] +Uplifting [] best 3950260 combination zp ZP_BYTE:108 [ irq_sprite_ypos#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:168 [ play_update_score::lines_before#0 ] +Uplifting [play_update_score] best 3950260 combination zp ZP_BYTE:168 [ play_update_score::lines_before#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:106 [ render_screen_showing#0 ] +Uplifting [] best 3950260 combination zp ZP_BYTE:106 [ render_screen_showing#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:109 [ irq_sprite_ptr#0 ] +Uplifting [] best 3950260 combination zp ZP_BYTE:109 [ irq_sprite_ptr#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:110 [ irq_cnt#0 ] +Uplifting [] best 3950260 combination zp ZP_BYTE:110 [ irq_cnt#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:107 [ irq_raster_next#0 ] +Uplifting [] best 3950260 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 3950260 combination zp ZP_BYTE:158 [ 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:206 [ 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:207 [ irq_sprite_ptr#2 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_BYTE:110 [ irq_cnt#0 ] ] with [ zp ZP_BYTE:205 [ 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:168 [ 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:172 [ 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_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: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:176 [ 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:174 [ 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:181 [ 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:171 [ 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:54 [ 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:196 [ render_screen_showing#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:108 [ irq_sprite_ypos#0 irq_sprite_ypos#2 ] ] with [ zp ZP_BYTE:210 [ irq_sprite_ypos#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:109 [ irq_sprite_ptr#0 irq_sprite_ptr#2 ] ] with [ zp ZP_BYTE:211 [ irq_sprite_ptr#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:110 [ irq_cnt#0 irq_cnt#1 ] ] with [ zp ZP_BYTE:209 [ 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 ] +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: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_WORD:54) zp ZP_WORD:23 [ 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:56) zp ZP_BYTE:25 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] +Allocated (was zp ZP_WORD:57) zp ZP_WORD:26 [ 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:59) zp ZP_BYTE:28 [ 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:60) zp ZP_BYTE:29 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] +Allocated (was zp ZP_BYTE:63) zp ZP_BYTE:30 [ level_bcd#22 level_bcd#19 level_bcd#12 level_bcd#14 level_bcd#10 level_bcd#3 ] +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:163) zp ZP_DWORD:39 [ play_update_score::add_bcd#0 ] Interrupt procedure sprites_irq clobbers AXCNZV -Removing interrupt register storage sty regy+1 in SEG959 entry interrupt(HARDWARE_CLOBBER) -Removing interrupt register storage regy: in SEG999 [486] return - exit interrupt(HARDWARE_CLOBBER) -Removing interrupt register storage ldy #00 in SEG999 [486] return - exit interrupt(HARDWARE_CLOBBER) +Removing interrupt register storage sty regy+1 in SEG1038 entry interrupt(HARDWARE_CLOBBER) +Removing interrupt register storage regy: in SEG1078 [513] return - exit interrupt(HARDWARE_CLOBBER) +Removing interrupt register storage ldy #00 in SEG1078 [513] return - exit interrupt(HARDWARE_CLOBBER) ASSEMBLER BEFORE OPTIMIZATION //SEG0 Basic Upstart @@ -13784,29 +14789,31 @@ 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 = $1a - .label render_screen_showing = $1e - .label irq_raster_next = $1d - .label irq_sprite_ypos = $1f - .label irq_sprite_ptr = $20 - .label irq_cnt = $21 + .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 current_movedown_counter = 4 - .label current_ypos = $e - .label current_piece_gfx = $16 - .label current_xpos = $18 - .label current_piece_char = $19 - .label current_orientation = $15 - .label score_bcd = $f + .label current_ypos = $10 + .label current_piece_gfx = $1a + .label current_xpos = $1c + .label current_piece_char = $1d + .label current_orientation = $19 + .label level_bcd = $1e .label render_screen_render = 3 .label render_screen_show = 2 - .label current_piece = $13 + .label lines_bcd = $11 + .label score_bcd = $13 + .label current_piece = $17 .label current_piece_12 = 5 - .label render_screen_render_30 = 7 - .label current_xpos_47 = 8 + .label render_screen_render_30 = 9 + .label current_xpos_47 = $a .label current_piece_gfx_53 = 5 - .label render_screen_render_64 = 7 - .label current_xpos_112 = 8 - .label current_xpos_113 = 8 + .label render_screen_render_64 = 9 + .label current_xpos_112 = $a + .label current_xpos_113 = $a .label current_piece_gfx_102 = 5 .label current_piece_gfx_103 = 5 .label current_piece_76 = 5 @@ -13824,51 +14831,51 @@ b14: //SEG5 kickasm(location (const byte*) PLAYFIELD_CHARSET#0) {{ .fill 8,$00 // Place a filled char at the start of the charset .import binary "playfield-screen.imap" }} //SEG6 kickasm(location (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0) {{ // Load chars for the screen .var screen = LoadBinary("playfield-screen.iscr") // Load extended colors for the screen .var extended = LoadBinary("playfield-extended.col") // screen.get(i)+1 because the charset is loaded into PLAYFIELD_CHARSET+8 // extended.get(i)-1 because the extended colors are 1-based (1/2/3/4) // <<6 to move extended colors to the upper 2 bits .fill screen.getSize(), ( (screen.get(i)+1) | (extended.get(i)-1)<<6 ) }} //SEG7 kickasm(location (const byte*) PLAYFIELD_COLORS_ORIGINAL#0) {{ .import binary "playfield-screen.col" }} - jmp b21 -//SEG8 @21 -b21: -//SEG9 kickasm(location (const 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++) { .for (var y=0;y<21; y++) { .for (var c=0; c<3; c++) { .byte sprites.getSinglecolorByte(sx*3+c,sy*21+y) } } .byte 0 } } }} jmp b22 -//SEG10 @22 +//SEG8 @22 b22: +//SEG9 kickasm(location (const 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++) { .for (var y=0;y<21; y++) { .for (var c=0; c<3; c++) { .byte sprites.getSinglecolorByte(sx*3+c,sy*21+y) } } .byte 0 } } }} + jmp b23 +//SEG10 @23 +b23: //SEG11 [6] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next //SEG12 [7] (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 lda #$32 sta irq_sprite_ypos -//SEG13 [8] phi from @22 to toSpritePtr1 [phi:@22->toSpritePtr1] -toSpritePtr1_from_b22: +//SEG13 [8] phi from @23 to toSpritePtr1 [phi:@23->toSpritePtr1] +toSpritePtr1_from_b23: jmp toSpritePtr1 //SEG14 toSpritePtr1 toSpritePtr1: - jmp b35 -//SEG15 @35 -b35: + jmp b36 +//SEG15 @36 +b36: //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 @35 to @34 [phi:@35->@34] -b34_from_b35: - jmp b34 -//SEG19 @34 -b34: +//SEG18 [11] phi from @36 to @35 [phi:@36->@35] +b35_from_b36: + jmp b35 +//SEG19 @35 +b35: //SEG20 [12] call main -//SEG21 [14] phi from @34 to main [phi:@34->main] -main_from_b34: +//SEG21 [14] phi from @35 to main [phi:@35->main] +main_from_b35: jsr main -//SEG22 [13] phi from @34 to @end [phi:@34->@end] -bend_from_b34: +//SEG22 [13] phi from @35 to @end [phi:@35->@end] +bend_from_b35: jmp bend //SEG23 @end bend: //SEG24 main main: { - .label key_event = $d - .label render = $22 + .label key_event = $f + .label render = $25 //SEG25 [15] call sid_rnd_init jsr sid_rnd_init jmp b15 @@ -13877,7 +14884,7 @@ main: { //SEG27 asm { sei } sei //SEG28 [17] call render_init - //SEG29 [404] phi from main::@15 to render_init [phi:main::@15->render_init] + //SEG29 [431] 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] @@ -13900,7 +14907,7 @@ main: { //SEG37 main::@18 b18: //SEG38 [23] call play_init - //SEG39 [369] phi from main::@18 to play_init [phi:main::@18->play_init] + //SEG39 [396] 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] @@ -13909,7 +14916,7 @@ main: { //SEG41 main::@19 b19: //SEG42 [25] call play_spawn_current - //SEG43 [231] phi from main::@19 to play_spawn_current [phi:main::@19->play_spawn_current] + //SEG43 [250] phi from main::@19 to play_spawn_current [phi:main::@19->play_spawn_current] play_spawn_current_from_b19: jsr play_spawn_current //SEG44 [26] phi from main::@19 to main::@20 [phi:main::@19->main::@20] @@ -13918,9 +14925,9 @@ main: { //SEG45 main::@20 b20: //SEG46 [27] call render_playfield - //SEG47 [114] phi from main::@20 to render_playfield [phi:main::@20->render_playfield] + //SEG47 [133] phi from main::@20 to render_playfield [phi:main::@20->render_playfield] render_playfield_from_b20: - //SEG48 [114] phi (byte) render_screen_render#21 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@20->render_playfield#0] -- vbuxx=vbuc1 + //SEG48 [133] phi (byte) render_screen_render#21 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@20->render_playfield#0] -- vbuxx=vbuc1 ldx #$40 jsr render_playfield jmp b21 @@ -13939,15 +14946,15 @@ main: { //SEG53 [31] (byte~) current_piece_char#90 ← (byte) current_piece_char#12 -- vbuxx=vbuz1 ldx current_piece_char //SEG54 [32] call render_current - //SEG55 [91] phi from main::@21 to render_current [phi:main::@21->render_current] + //SEG55 [110] phi from main::@21 to render_current [phi:main::@21->render_current] render_current_from_b21: - //SEG56 [91] phi (byte) current_piece_char#64 = (byte~) current_piece_char#90 [phi:main::@21->render_current#0] -- register_copy - //SEG57 [91] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#102 [phi:main::@21->render_current#1] -- register_copy - //SEG58 [91] phi (byte) current_xpos#47 = (byte~) current_xpos#112 [phi:main::@21->render_current#2] -- register_copy - //SEG59 [91] phi (byte) render_screen_render#30 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->render_current#3] -- vbuz1=vbuc1 + //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 lda #$40 sta render_screen_render_30 - //SEG60 [91] phi (byte) current_ypos#9 = (byte~) current_ypos#86 [phi:main::@21->render_current#4] -- register_copy + //SEG60 [110] phi (byte) current_ypos#9 = (byte~) current_ypos#86 [phi:main::@21->render_current#4] -- register_copy jsr render_current //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 @@ -13957,610 +14964,750 @@ 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 (dword) score_bcd#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#0] -- vduz1=vbuc1 + //SEG63 [34] phi (byte) level_bcd#14 = (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 lda #0 sta score_bcd lda #0 sta score_bcd+1 sta score_bcd+2 sta score_bcd+3 - //SEG64 [34] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#1] -- vbuz1=vbuc1 + //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 + 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 lda #0 sta current_movedown_counter - //SEG65 [34] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#2] -- vbuz1=vbuc1 + //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 lda #0 sta keyboard_events_size - //SEG66 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#12 [phi:main::@21->main::@1#3] -- register_copy - //SEG67 [34] phi (byte) current_ypos#21 = (byte) current_ypos#18 [phi:main::@21->main::@1#4] -- register_copy - //SEG68 [34] phi (byte) current_xpos#10 = (byte) current_xpos#23 [phi:main::@21->main::@1#5] -- register_copy - //SEG69 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#16 [phi:main::@21->main::@1#6] -- register_copy - //SEG70 [34] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#7] -- vbuz1=vbuc1 + //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 lda #0 sta current_orientation - //SEG71 [34] phi (byte*) current_piece#16 = (byte*~) current_piece#73 [phi:main::@21->main::@1#8] -- register_copy - //SEG72 [34] phi (byte) render_screen_render#17 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->main::@1#9] -- vbuz1=vbuc1 + //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 lda #$40 sta render_screen_render - //SEG73 [34] phi (byte) render_screen_show#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#10] -- vbuz1=vbuc1 + //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 lda #0 sta render_screen_show jmp b1 - //SEG74 [34] phi from main::@28 to main::@1 [phi:main::@28->main::@1] + //SEG76 [34] phi from main::@28 to main::@1 [phi:main::@28->main::@1] b1_from_b28: - //SEG75 [34] phi (dword) score_bcd#14 = (dword) score_bcd#10 [phi:main::@28->main::@1#0] -- register_copy - //SEG76 [34] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@28->main::@1#1] -- register_copy - //SEG77 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@28->main::@1#2] -- register_copy - //SEG78 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@28->main::@1#3] -- register_copy - //SEG79 [34] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@28->main::@1#4] -- register_copy - //SEG80 [34] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@28->main::@1#5] -- register_copy - //SEG81 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@28->main::@1#6] -- register_copy - //SEG82 [34] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@28->main::@1#7] -- register_copy - //SEG83 [34] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@28->main::@1#8] -- register_copy + //SEG77 [34] phi (byte) level_bcd#14 = (byte) level_bcd#10 [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 jmp b1 - //SEG84 main::@1 + //SEG88 main::@1 b1: jmp b4 - //SEG85 main::@4 + //SEG89 main::@4 b4: - //SEG86 [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG90 [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 - //SEG87 [36] phi from main::@4 to main::@6 [phi:main::@4->main::@6] + //SEG91 [36] phi from main::@4 to main::@6 [phi:main::@4->main::@6] b6_from_b4: jmp b6 - //SEG88 main::@6 + //SEG92 main::@6 b6: - //SEG89 [37] call render_show + //SEG93 [37] call render_show jsr render_show - //SEG90 [38] phi from main::@6 to main::@23 [phi:main::@6->main::@23] + //SEG94 [38] phi from main::@6 to main::@23 [phi:main::@6->main::@23] b23_from_b6: jmp b23 - //SEG91 main::@23 + //SEG95 main::@23 b23: - //SEG92 [39] call keyboard_event_scan - //SEG93 [306] phi from main::@23 to keyboard_event_scan [phi:main::@23->keyboard_event_scan] + //SEG96 [39] call keyboard_event_scan + //SEG97 [333] phi from main::@23 to keyboard_event_scan [phi:main::@23->keyboard_event_scan] keyboard_event_scan_from_b23: jsr keyboard_event_scan - //SEG94 [40] phi from main::@23 to main::@24 [phi:main::@23->main::@24] + //SEG98 [40] phi from main::@23 to main::@24 [phi:main::@23->main::@24] b24_from_b23: jmp b24 - //SEG95 main::@24 + //SEG99 main::@24 b24: - //SEG96 [41] call keyboard_event_get + //SEG100 [41] call keyboard_event_get jsr keyboard_event_get - //SEG97 [42] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + //SEG101 [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 - //SEG98 main::@25 + //SEG102 main::@25 b25: - //SEG99 [43] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa + //SEG103 [43] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa sta key_event - //SEG100 [44] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG104 [44] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG101 [45] call play_move_down + //SEG105 [45] call play_move_down jsr play_move_down - //SEG102 [46] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuaa=vbuxx + //SEG106 [46] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuaa=vbuxx txa jmp b26 - //SEG103 main::@26 + //SEG107 main::@26 b26: - //SEG104 [47] (byte~) main::$12 ← (byte) play_move_down::return#3 + //SEG108 [47] (byte~) main::$12 ← (byte) play_move_down::return#3 // (byte~) main::$12 = (byte) play_move_down::return#3 // register copy reg byte a - //SEG105 [48] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 -- vbuz1=vbuc1_plus_vbuaa + //SEG109 [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 - //SEG106 [49] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG110 [49] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG107 [50] call play_move_leftright + //SEG111 [50] call play_move_leftright jsr play_move_leftright - //SEG108 [51] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 + //SEG112 [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 - //SEG109 main::@27 + //SEG113 main::@27 b27: - //SEG110 [52] (byte~) main::$13 ← (byte) play_move_leftright::return#4 + //SEG114 [52] (byte~) main::$13 ← (byte) play_move_leftright::return#4 // (byte~) main::$13 = (byte) play_move_leftright::return#4 // register copy reg byte a - //SEG111 [53] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 -- vbuz1=vbuz1_plus_vbuaa + //SEG115 [53] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 -- vbuz1=vbuz1_plus_vbuaa clc adc render sta render - //SEG112 [54] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG116 [54] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG113 [55] call play_move_rotate + //SEG117 [55] call play_move_rotate jsr play_move_rotate - //SEG114 [56] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 + //SEG118 [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 - //SEG115 main::@28 + //SEG119 main::@28 b28: - //SEG116 [57] (byte~) main::$14 ← (byte) play_move_rotate::return#4 + //SEG120 [57] (byte~) main::$14 ← (byte) play_move_rotate::return#4 // (byte~) main::$14 = (byte) play_move_rotate::return#4 // register copy reg byte a - //SEG117 [58] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 -- vbuaa=vbuz1_plus_vbuaa + //SEG121 [58] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 -- vbuaa=vbuz1_plus_vbuaa clc adc render - //SEG118 [59] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 -- vbuaa_eq_0_then_la1 + //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 cmp #0 beq b1_from_b28 jmp b13 - //SEG119 main::@13 + //SEG123 main::@13 b13: - //SEG120 [60] (byte~) render_screen_render#65 ← (byte) render_screen_render#17 -- vbuxx=vbuz1 + //SEG124 [60] (byte~) render_screen_render#65 ← (byte) render_screen_render#17 -- vbuxx=vbuz1 ldx render_screen_render - //SEG121 [61] call render_playfield - //SEG122 [114] phi from main::@13 to render_playfield [phi:main::@13->render_playfield] + //SEG125 [61] call render_playfield + //SEG126 [133] phi from main::@13 to render_playfield [phi:main::@13->render_playfield] render_playfield_from_b13: - //SEG123 [114] phi (byte) render_screen_render#21 = (byte~) render_screen_render#65 [phi:main::@13->render_playfield#0] -- register_copy + //SEG127 [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 - //SEG124 main::@29 + //SEG128 main::@29 b29: - //SEG125 [62] (byte~) current_ypos#87 ← (byte) current_ypos#13 -- vbuyy=vbuz1 + //SEG129 [62] (byte~) current_ypos#87 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos - //SEG126 [63] (byte~) render_screen_render#64 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 + //SEG130 [63] (byte~) render_screen_render#64 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 lda render_screen_render sta render_screen_render_64 - //SEG127 [64] (byte~) current_xpos#113 ← (byte) current_xpos#19 -- vbuz1=vbuz2 + //SEG131 [64] (byte~) current_xpos#113 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda current_xpos sta current_xpos_113 - //SEG128 [65] (byte*~) current_piece_gfx#103 ← (byte*) current_piece_gfx#14 -- pbuz1=pbuz2 + //SEG132 [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 - //SEG129 [66] (byte~) current_piece_char#91 ← (byte) current_piece_char#1 -- vbuxx=vbuz1 + //SEG133 [66] (byte~) current_piece_char#91 ← (byte) current_piece_char#1 -- vbuxx=vbuz1 ldx current_piece_char - //SEG130 [67] call render_current - //SEG131 [91] phi from main::@29 to render_current [phi:main::@29->render_current] + //SEG134 [67] call render_current + //SEG135 [110] phi from main::@29 to render_current [phi:main::@29->render_current] render_current_from_b29: - //SEG132 [91] phi (byte) current_piece_char#64 = (byte~) current_piece_char#91 [phi:main::@29->render_current#0] -- register_copy - //SEG133 [91] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#103 [phi:main::@29->render_current#1] -- register_copy - //SEG134 [91] phi (byte) current_xpos#47 = (byte~) current_xpos#113 [phi:main::@29->render_current#2] -- register_copy - //SEG135 [91] phi (byte) render_screen_render#30 = (byte~) render_screen_render#64 [phi:main::@29->render_current#3] -- register_copy - //SEG136 [91] phi (byte) current_ypos#9 = (byte~) current_ypos#87 [phi:main::@29->render_current#4] -- register_copy + //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 - //SEG137 [68] phi from main::@29 to main::@30 [phi:main::@29->main::@30] + //SEG141 [68] phi from main::@29 to main::@30 [phi:main::@29->main::@30] b30_from_b29: jmp b30 - //SEG138 main::@30 + //SEG142 main::@30 b30: - //SEG139 [69] call render_score + //SEG143 [69] call render_score jsr render_score - //SEG140 [70] phi from main::@30 to main::@31 [phi:main::@30->main::@31] + //SEG144 [70] phi from main::@30 to main::@31 [phi:main::@30->main::@31] b31_from_b30: jmp b31 - //SEG141 main::@31 + //SEG145 main::@31 b31: - //SEG142 [71] call render_screen_swap + //SEG146 [71] call render_screen_swap jsr render_screen_swap - //SEG143 [34] phi from main::@31 to main::@1 [phi:main::@31->main::@1] + //SEG147 [34] phi from main::@31 to main::@1 [phi:main::@31->main::@1] b1_from_b31: - //SEG144 [34] phi (dword) score_bcd#14 = (dword) score_bcd#10 [phi:main::@31->main::@1#0] -- register_copy - //SEG145 [34] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@31->main::@1#1] -- register_copy - //SEG146 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@31->main::@1#2] -- register_copy - //SEG147 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@31->main::@1#3] -- register_copy - //SEG148 [34] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@31->main::@1#4] -- register_copy - //SEG149 [34] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@31->main::@1#5] -- register_copy - //SEG150 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@31->main::@1#6] -- register_copy - //SEG151 [34] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@31->main::@1#7] -- register_copy - //SEG152 [34] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@31->main::@1#8] -- register_copy - //SEG153 [34] phi (byte) render_screen_render#17 = (byte) render_screen_render#11 [phi:main::@31->main::@1#9] -- register_copy - //SEG154 [34] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@31->main::@1#10] -- register_copy + //SEG148 [34] phi (byte) level_bcd#14 = (byte) level_bcd#10 [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 jmp b1 } -//SEG155 render_screen_swap +//SEG161 render_screen_swap render_screen_swap: { - //SEG156 [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 + //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 lda render_screen_render eor #$40 sta render_screen_render - //SEG157 [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 + //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 lda render_screen_show eor #$40 sta render_screen_show jmp breturn - //SEG158 render_screen_swap::@return + //SEG164 render_screen_swap::@return breturn: - //SEG159 [74] return + //SEG165 [74] return rts } -//SEG160 render_score +//SEG166 render_score render_score: { - .const ZERO_CHAR = $33 - .const SCREEN_SCORE_ROW = 5 - .const SCREEN_SCORE_COL = $21 .label score_bytes = score_bcd - .label score_byte = 7 - .label screen_score_pos = 5 - //SEG161 [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 + .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 lda render_screen_render cmp #0 beq b2_from_render_score - //SEG162 [76] phi from render_score to render_score::@4 [phi:render_score->render_score::@4] - b4_from_render_score: - jmp b4 - //SEG163 render_score::@4 - b4: - //SEG164 [77] phi from render_score::@4 to render_score::@2 [phi:render_score::@4->render_score::@2] - b2_from_b4: - //SEG165 [77] phi (byte*) render_score::screen_score_pos#5 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(const byte) render_score::SCREEN_SCORE_ROW#0+(const byte) render_score::SCREEN_SCORE_COL#0 [phi:render_score::@4->render_score::@2#0] -- pbuz1=pbuc1 - lda #PLAYFIELD_SCREEN_2+$28*SCREEN_SCORE_ROW+SCREEN_SCORE_COL - sta screen_score_pos+1 - jmp b2 - //SEG166 [77] phi from render_score to render_score::@2 [phi:render_score->render_score::@2] - b2_from_render_score: - //SEG167 [77] phi (byte*) render_score::screen_score_pos#5 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(const byte) render_score::SCREEN_SCORE_ROW#0+(const byte) render_score::SCREEN_SCORE_COL#0 [phi:render_score->render_score::@2#0] -- pbuz1=pbuc1 - lda #PLAYFIELD_SCREEN_1+$28*SCREEN_SCORE_ROW+SCREEN_SCORE_COL - sta screen_score_pos+1 - jmp b2 - //SEG168 render_score::@2 - b2: - //SEG169 [78] phi from render_score::@2 to render_score::@3 [phi:render_score::@2->render_score::@3] - b3_from_b2: - //SEG170 [78] phi (byte*) render_score::screen_score_pos#4 = (byte*) render_score::screen_score_pos#5 [phi:render_score::@2->render_score::@3#0] -- register_copy - //SEG171 [78] phi (byte) render_score::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@2->render_score::@3#1] -- vbuxx=vbuc1 - ldx #0 + //SEG168 [76] phi from render_score to render_score::@3 [phi:render_score->render_score::@3] + b3_from_render_score: jmp b3 - //SEG172 [78] phi from render_score::@3 to render_score::@3 [phi:render_score::@3->render_score::@3] - b3_from_b3: - //SEG173 [78] phi (byte*) render_score::screen_score_pos#4 = (byte*) render_score::screen_score_pos#3 [phi:render_score::@3->render_score::@3#0] -- register_copy - //SEG174 [78] phi (byte) render_score::b#2 = (byte) render_score::b#1 [phi:render_score::@3->render_score::@3#1] -- register_copy - jmp b3 - //SEG175 render_score::@3 + //SEG169 render_score::@3 b3: - //SEG176 [79] (byte) render_score::score_byte#0 ← *((const byte*) render_score::score_bytes#0 + (byte) render_score::b#2) -- vbuz1=pbuc1_derefidx_vbuxx - lda score_bytes,x - sta score_byte - //SEG177 [80] (byte~) render_score::$9 ← (byte) render_score::score_byte#0 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 - lda #$f - and score_byte - //SEG178 [81] (byte~) render_score::$10 ← (const byte) render_score::ZERO_CHAR#0 + (byte~) render_score::$9 -- vbuaa=vbuc1_plus_vbuaa - clc - adc #ZERO_CHAR - //SEG179 [82] *((byte*) render_score::screen_score_pos#4) ← (byte~) render_score::$10 -- _deref_pbuz1=vbuaa + //SEG170 [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 + 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] + 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 + lda #PLAYFIELD_SCREEN_1 + sta screen+1 + jmp b2 + //SEG174 render_score::@2 + b2: + //SEG175 [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 + 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] + 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 ldy #0 - sta (screen_score_pos),y - //SEG180 [83] (byte*) render_score::screen_score_pos#2 ← -- (byte*) render_score::screen_score_pos#4 -- pbuz1=_dec_pbuz1 - lda screen_score_pos - bne !+ - dec screen_score_pos+1 - !: - dec screen_score_pos - //SEG181 [84] (byte~) render_score::$11 ← (byte) render_score::score_byte#0 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuaa=vbuz1_ror_4 - lda score_byte - lsr - lsr - lsr - lsr - //SEG182 [85] (byte~) render_score::$12 ← (const byte) render_score::ZERO_CHAR#0 + (byte~) render_score::$11 -- vbuaa=vbuc1_plus_vbuaa - clc - adc #ZERO_CHAR - //SEG183 [86] *((byte*) render_score::screen_score_pos#2) ← (byte~) render_score::$12 -- _deref_pbuz1=vbuaa + //SEG181 [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 + jsr render_bcd + jmp b5 + //SEG183 render_score::@5 + b5: + //SEG184 [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 + 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] + 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 ldy #0 - sta (screen_score_pos),y - //SEG184 [87] (byte*) render_score::screen_score_pos#3 ← -- (byte*) render_score::screen_score_pos#2 -- pbuz1=_dec_pbuz1 - lda screen_score_pos - bne !+ - dec screen_score_pos+1 - !: - dec screen_score_pos - //SEG185 [88] (byte) render_score::b#1 ← ++ (byte) render_score::b#2 -- vbuxx=_inc_vbuxx - inx - //SEG186 [89] if((byte) render_score::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto render_score::@3 -- vbuxx_neq_vbuc1_then_la1 - cpx #3 - bne b3_from_b3 + //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 + 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 + jsr render_bcd + jmp b6 + //SEG192 render_score::@6 + b6: + //SEG193 [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 + ldx score_bytes + //SEG195 [86] call render_bcd + //SEG196 [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 + 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 + 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 + jsr render_bcd + jmp b7 + //SEG201 render_score::@7 + b7: + //SEG202 [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 + // (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] + 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 + 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 + 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 + jsr render_bcd + jmp b8 + //SEG210 render_score::@8 + b8: + //SEG211 [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 + // (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] + 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 + 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 + 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 + jsr render_bcd + jmp b9 + //SEG219 render_score::@9 + b9: + //SEG220 [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#10 -- 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] + 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 + 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 + 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 + jsr render_bcd jmp breturn - //SEG187 render_score::@return + //SEG228 render_score::@return breturn: - //SEG188 [90] return + //SEG229 [96] return rts } -//SEG189 render_current +//SEG230 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 + lda screen_pos + clc + adc screen + sta screen_pos + 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 + cpy #0 + bne b1_from_render_bcd + jmp b2 + //SEG233 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 + 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 + clc + adc #ZERO_CHAR + //SEG236 [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 + 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] + 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 + jmp b1 + //SEG240 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 + txa + and #$f + //SEG242 [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 + ldy #0 + sta (screen_pos),y + //SEG244 [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 + breturn: + //SEG246 [109] return + rts +} +//SEG247 render_current render_current: { - .label ypos2 = 9 - .label screen_line = $1b - .label xpos = $c - .label i = $b - .label l = $a - .label c = $d - //SEG190 [92] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 + .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 tya asl sta ypos2 - //SEG191 [93] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] + //SEG249 [112] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] b1_from_render_current: - //SEG192 [93] 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 + //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 lda #0 sta l - //SEG193 [93] 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 + //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 lda #0 sta i - //SEG194 [93] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy + //SEG252 [112] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy jmp b1 - //SEG195 [93] phi from render_current::@3 to render_current::@1 [phi:render_current::@3->render_current::@1] + //SEG253 [112] phi from render_current::@3 to render_current::@1 [phi:render_current::@3->render_current::@1] b1_from_b3: - //SEG196 [93] phi (byte) render_current::l#4 = (byte) render_current::l#1 [phi:render_current::@3->render_current::@1#0] -- register_copy - //SEG197 [93] phi (byte) render_current::i#3 = (byte) render_current::i#8 [phi:render_current::@3->render_current::@1#1] -- register_copy - //SEG198 [93] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@3->render_current::@1#2] -- register_copy + //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 jmp b1 - //SEG199 render_current::@1 + //SEG257 render_current::@1 b1: - //SEG200 [94] 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 + //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 lda ypos2 cmp #2 beq !+ bcs b13 !: jmp b7 - //SEG201 render_current::@7 + //SEG259 render_current::@7 b7: - //SEG202 [95] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz1_plus_vbuc1 + //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 lda #4 clc adc i sta i - //SEG203 [96] phi from render_current::@5 render_current::@7 to render_current::@3 [phi:render_current::@5/render_current::@7->render_current::@3] + //SEG261 [115] phi from render_current::@5 render_current::@7 to render_current::@3 [phi:render_current::@5/render_current::@7->render_current::@3] b3_from_b5: b3_from_b7: - //SEG204 [96] phi (byte) render_current::i#8 = (byte) render_current::i#10 [phi:render_current::@5/render_current::@7->render_current::@3#0] -- register_copy + //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 jmp b3 - //SEG205 render_current::@3 + //SEG263 render_current::@3 b3: - //SEG206 [97] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //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 lda ypos2 clc adc #2 sta ypos2 - //SEG207 [98] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 -- vbuz1=_inc_vbuz1 + //SEG265 [117] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG208 [99] 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 + //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 lda l cmp #4 bne b1_from_b3 jmp breturn - //SEG209 render_current::@return + //SEG267 render_current::@return breturn: - //SEG210 [100] return + //SEG268 [119] return rts - //SEG211 render_current::@13 + //SEG269 render_current::@13 b13: - //SEG212 [101] 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 + //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 lda ypos2 cmp #2*PLAYFIELD_LINES bcc b2 jmp b7 - //SEG213 render_current::@2 + //SEG271 render_current::@2 b2: - //SEG214 [102] (byte~) render_current::$5 ← (byte) render_screen_render#30 + (byte) render_current::ypos2#2 -- vbuaa=vbuz1_plus_vbuz2 + //SEG272 [121] (byte~) render_current::$5 ← (byte) render_screen_render#30 + (byte) render_current::ypos2#2 -- vbuaa=vbuz1_plus_vbuz2 lda render_screen_render_30 clc adc ypos2 - //SEG215 [103] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) -- pbuz1=pptc1_derefidx_vbuaa + //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 tay lda screen_lines_1,y sta screen_line lda screen_lines_1+1,y sta screen_line+1 - //SEG216 [104] (byte) render_current::xpos#0 ← (byte) current_xpos#47 -- vbuz1=vbuz2 + //SEG274 [123] (byte) render_current::xpos#0 ← (byte) current_xpos#47 -- vbuz1=vbuz2 lda current_xpos_47 sta xpos - //SEG217 [105] phi from render_current::@2 to render_current::@4 [phi:render_current::@2->render_current::@4] + //SEG275 [124] phi from render_current::@2 to render_current::@4 [phi:render_current::@2->render_current::@4] b4_from_b2: - //SEG218 [105] 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 + //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 lda #0 sta c - //SEG219 [105] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@2->render_current::@4#1] -- register_copy - //SEG220 [105] phi (byte) render_current::i#4 = (byte) render_current::i#3 [phi:render_current::@2->render_current::@4#2] -- register_copy + //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 jmp b4 - //SEG221 [105] phi from render_current::@5 to render_current::@4 [phi:render_current::@5->render_current::@4] + //SEG279 [124] phi from render_current::@5 to render_current::@4 [phi:render_current::@5->render_current::@4] b4_from_b5: - //SEG222 [105] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@5->render_current::@4#0] -- register_copy - //SEG223 [105] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@5->render_current::@4#1] -- register_copy - //SEG224 [105] phi (byte) render_current::i#4 = (byte) render_current::i#10 [phi:render_current::@5->render_current::@4#2] -- register_copy + //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 jmp b4 - //SEG225 render_current::@4 + //SEG283 render_current::@4 b4: - //SEG226 [106] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 + //SEG284 [125] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 ldy i lda (current_piece_gfx_53),y - //SEG227 [107] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 -- vbuz1=_inc_vbuz1 + //SEG285 [126] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 -- vbuz1=_inc_vbuz1 inc i - //SEG228 [108] 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 + //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 cmp #0 beq b5 jmp b9 - //SEG229 render_current::@9 + //SEG287 render_current::@9 b9: - //SEG230 [109] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 -- vbuz1_ge_vbuc1_then_la1 + //SEG288 [128] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 -- vbuz1_ge_vbuc1_then_la1 lda xpos cmp #PLAYFIELD_COLS bcs b5 jmp b10 - //SEG231 render_current::@10 + //SEG289 render_current::@10 b10: - //SEG232 [110] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#64 -- pbuz1_derefidx_vbuz2=vbuxx + //SEG290 [129] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#64 -- pbuz1_derefidx_vbuz2=vbuxx ldy xpos txa sta (screen_line),y jmp b5 - //SEG233 render_current::@5 + //SEG291 render_current::@5 b5: - //SEG234 [111] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG292 [130] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG235 [112] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuz1=_inc_vbuz1 + //SEG293 [131] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG236 [113] 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 + //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 lda c cmp #4 bne b4_from_b5 jmp b3_from_b5 } -//SEG237 render_playfield +//SEG295 render_playfield render_playfield: { .label screen_line = 5 - .label i = 8 - .label c = 9 - .label l = 7 - //SEG238 [115] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + .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] b1_from_render_playfield: - //SEG239 [115] 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 + //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 lda #PLAYFIELD_COLS*2 sta i - //SEG240 [115] 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 + //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 lda #2 sta l jmp b1 - //SEG241 [115] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG299 [134] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] b1_from_b3: - //SEG242 [115] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG243 [115] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //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 jmp b1 - //SEG244 render_playfield::@1 + //SEG302 render_playfield::@1 b1: - //SEG245 [116] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 + //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 lda l asl - //SEG246 [117] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 -- vbuaa=vbuxx_plus_vbuaa + //SEG304 [136] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 -- vbuaa=vbuxx_plus_vbuaa stx $ff clc adc $ff - //SEG247 [118] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuaa + //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 tay lda screen_lines_1,y sta screen_line lda screen_lines_1+1,y sta screen_line+1 - //SEG248 [119] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG306 [138] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] b2_from_b1: - //SEG249 [119] 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 + //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 lda #0 sta c - //SEG250 [119] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG251 [119] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //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 jmp b2 - //SEG252 [119] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG310 [138] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] b2_from_b2: - //SEG253 [119] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG254 [119] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG255 [119] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //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 jmp b2 - //SEG256 render_playfield::@2 + //SEG314 render_playfield::@2 b2: - //SEG257 [120] *((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 + //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 ldy i lda playfield,y ldy #0 sta (screen_line),y - //SEG258 [121] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 + //SEG316 [140] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 inc screen_line bne !+ inc screen_line+1 !: - //SEG259 [122] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG317 [141] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG260 [123] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 + //SEG318 [142] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG261 [124] 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 + //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 lda c cmp #PLAYFIELD_COLS-1+1 bne b2_from_b2 jmp b3 - //SEG262 render_playfield::@3 + //SEG320 render_playfield::@3 b3: - //SEG263 [125] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG321 [144] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG264 [126] 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 + //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 lda l cmp #PLAYFIELD_LINES-1+1 bne b1_from_b3 jmp breturn - //SEG265 render_playfield::@return + //SEG323 render_playfield::@return breturn: - //SEG266 [127] return + //SEG324 [146] return rts } -//SEG267 play_move_rotate +//SEG325 play_move_rotate play_move_rotate: { - .label orientation = 7 - //SEG268 [128] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 + .label orientation = 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 cmp #KEY_Z beq b1 jmp b6 - //SEG269 play_move_rotate::@6 + //SEG327 play_move_rotate::@6 b6: - //SEG270 [129] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 + //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 cmp #KEY_X beq b2 - //SEG271 [130] 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] + //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] breturn_from_b14: breturn_from_b6: - //SEG272 [130] 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 - //SEG273 [130] 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 - //SEG274 [130] 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 + //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 lda #0 jmp breturn - //SEG275 play_move_rotate::@return + //SEG333 play_move_rotate::@return breturn: - //SEG276 [131] return + //SEG334 [150] return rts - //SEG277 play_move_rotate::@2 + //SEG335 play_move_rotate::@2 b2: - //SEG278 [132] (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 + //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 lda #$10 clc adc current_orientation - //SEG279 [133] (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 + //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 and #$3f sta orientation - //SEG280 [134] 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] + //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] b4_from_b1: b4_from_b2: - //SEG281 [134] 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 + //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 jmp b4 - //SEG282 play_move_rotate::@4 + //SEG340 play_move_rotate::@4 b4: - //SEG283 [135] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 -- vbuz1=vbuz2 + //SEG341 [154] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG284 [136] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 -- vbuyy=vbuz1 + //SEG342 [155] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos - //SEG285 [137] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 + //SEG343 [156] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 ldx orientation - //SEG286 [138] (byte*~) current_piece#79 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG344 [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 - //SEG287 [139] call play_collision - //SEG288 [147] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] + //SEG345 [158] call play_collision + //SEG346 [166] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] play_collision_from_b4: - //SEG289 [147] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy - //SEG290 [147] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy - //SEG291 [147] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy - //SEG292 [147] phi (byte*) current_piece#12 = (byte*~) current_piece#79 [phi:play_move_rotate::@4->play_collision#3] -- register_copy + //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 jsr play_collision - //SEG293 [140] (byte) play_collision::return#13 ← (byte) play_collision::return#14 + //SEG351 [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 - //SEG294 play_move_rotate::@14 + //SEG352 play_move_rotate::@14 b14: - //SEG295 [141] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 + //SEG353 [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 - //SEG296 [142] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG354 [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 - //SEG297 play_move_rotate::@11 + //SEG355 play_move_rotate::@11 b11: - //SEG298 [143] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG356 [162] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG299 [144] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 + //SEG357 [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 @@ -14568,38 +15715,38 @@ play_move_rotate: { lda #0 adc current_piece+1 sta current_piece_gfx+1 - //SEG300 [130] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG358 [149] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] breturn_from_b11: - //SEG301 [130] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#3 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG302 [130] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG303 [130] 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 + //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 lda #1 jmp breturn - //SEG304 play_move_rotate::@1 + //SEG362 play_move_rotate::@1 b1: - //SEG305 [145] (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 + //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 lda current_orientation sec sbc #$10 - //SEG306 [146] (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 + //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 and #$3f sta orientation jmp b4_from_b1 } -//SEG307 play_collision +//SEG365 play_collision play_collision: { - .label xpos = 8 + .label xpos = $a .label piece_gfx = 5 - .label ypos2 = 9 - .label playfield_line = $1b - .label i = $23 - .label col = $c - .label l = $a - .label i_2 = $b - .label i_3 = $b - .label i_11 = $b - .label i_13 = $b - //SEG308 [148] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx + .label ypos2 = $b + .label playfield_line = 7 + .label i = $26 + .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 txa clc adc piece_gfx @@ -14607,563 +15754,573 @@ play_collision: { lda #0 adc piece_gfx+1 sta piece_gfx+1 - //SEG309 [149] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_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 tya asl sta ypos2 - //SEG310 [150] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] + //SEG368 [169] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] b1_from_play_collision: - //SEG311 [150] 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 + //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 lda #0 sta l - //SEG312 [150] 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 + //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 lda #0 sta i_3 - //SEG313 [150] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy + //SEG371 [169] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy jmp b1 - //SEG314 play_collision::@1 + //SEG372 play_collision::@1 b1: - //SEG315 [151] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //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 ldy ypos2 lda playfield_lines,y sta playfield_line lda playfield_lines+1,y sta playfield_line+1 - //SEG316 [152] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 + //SEG374 [171] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 lda xpos sta col - //SEG317 [153] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] + //SEG375 [172] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] b2_from_b1: - //SEG318 [153] 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 + //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 ldx #0 - //SEG319 [153] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy - //SEG320 [153] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy + //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 jmp b2 - //SEG321 play_collision::@2 + //SEG379 play_collision::@2 b2: - //SEG322 [154] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG380 [173] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG323 [155] 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 + //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 ldy i_2 lda (piece_gfx),y cmp #0 beq b3 jmp b8 - //SEG324 play_collision::@8 + //SEG382 play_collision::@8 b8: - //SEG325 [156] 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 + //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 lda ypos2 cmp #2*PLAYFIELD_LINES bcc b4 - //SEG326 [157] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] + //SEG384 [176] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] breturn_from_b8: - //SEG327 [157] phi (byte) play_collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG385 [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 - //SEG328 play_collision::@return + //SEG386 play_collision::@return breturn: - //SEG329 [158] return + //SEG387 [177] return rts - //SEG330 play_collision::@4 + //SEG388 play_collision::@4 b4: - //SEG331 [159] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG389 [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 - //SEG332 [160] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuaa_eq_0_then_la1 + //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 cmp #0 beq b5 - //SEG333 [157] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] + //SEG391 [176] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] breturn_from_b4: - //SEG334 [157] phi (byte) play_collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG392 [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 - //SEG335 play_collision::@5 + //SEG393 play_collision::@5 b5: - //SEG336 [161] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG394 [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 - //SEG337 [157] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] + //SEG395 [176] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] breturn_from_b5: - //SEG338 [157] phi (byte) play_collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG396 [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 - //SEG339 play_collision::@6 + //SEG397 play_collision::@6 b6: - //SEG340 [162] 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 + //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 ldy col lda (playfield_line),y cmp #0 beq b3 - //SEG341 [157] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] + //SEG399 [176] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] breturn_from_b6: - //SEG342 [157] phi (byte) play_collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG400 [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 - //SEG343 play_collision::@3 + //SEG401 play_collision::@3 b3: - //SEG344 [163] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG402 [182] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG345 [164] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx + //SEG403 [183] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx inx - //SEG346 [165] 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 + //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 cpx #4 bne b21 jmp b17 - //SEG347 play_collision::@17 + //SEG405 play_collision::@17 b17: - //SEG348 [166] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //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 lda ypos2 clc adc #2 sta ypos2 - //SEG349 [167] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG407 [186] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG350 [168] 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 + //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 lda l cmp #4 bne b20 - //SEG351 [157] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] + //SEG409 [176] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] breturn_from_b17: - //SEG352 [157] phi (byte) play_collision::return#14 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG410 [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 - //SEG353 play_collision::@20 + //SEG411 play_collision::@20 b20: - //SEG354 [169] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG412 [188] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG355 [150] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] + //SEG413 [169] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] b1_from_b20: - //SEG356 [150] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy - //SEG357 [150] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy - //SEG358 [150] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy + //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 jmp b1 - //SEG359 play_collision::@21 + //SEG417 play_collision::@21 b21: - //SEG360 [170] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG418 [189] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG361 [153] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] + //SEG419 [172] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] b2_from_b21: - //SEG362 [153] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy - //SEG363 [153] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy - //SEG364 [153] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy + //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 jmp b2 } -//SEG365 play_move_leftright +//SEG423 play_move_leftright play_move_leftright: { - //SEG366 [171] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 + //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 cmp #KEY_COMMA beq b1 jmp b6 - //SEG367 play_move_leftright::@6 + //SEG425 play_move_leftright::@6 b6: - //SEG368 [172] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //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 cmp #KEY_DOT bne breturn_from_b6 jmp b7 - //SEG369 play_move_leftright::@7 + //SEG427 play_move_leftright::@7 b7: - //SEG370 [173] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //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 ldy current_xpos iny sty play_collision.xpos - //SEG371 [174] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 -- vbuyy=vbuz1 + //SEG429 [193] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos - //SEG372 [175] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuxx=vbuz1 + //SEG430 [194] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuxx=vbuz1 ldx current_orientation - //SEG373 [176] (byte*~) current_piece#78 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG431 [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 - //SEG374 [177] call play_collision - //SEG375 [147] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] + //SEG432 [196] call play_collision + //SEG433 [166] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] play_collision_from_b7: - //SEG376 [147] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy - //SEG377 [147] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy - //SEG378 [147] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy - //SEG379 [147] phi (byte*) current_piece#12 = (byte*~) current_piece#78 [phi:play_move_leftright::@7->play_collision#3] -- register_copy + //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 jsr play_collision - //SEG380 [178] (byte) play_collision::return#12 ← (byte) play_collision::return#14 + //SEG438 [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 - //SEG381 play_move_leftright::@15 + //SEG439 play_move_leftright::@15 b15: - //SEG382 [179] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 + //SEG440 [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 - //SEG383 [180] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG441 [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 - //SEG384 play_move_leftright::@8 + //SEG442 play_move_leftright::@8 b8: - //SEG385 [181] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 -- vbuz1=_inc_vbuz1 + //SEG443 [200] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 -- vbuz1=_inc_vbuz1 inc current_xpos - //SEG386 [182] 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] + //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] breturn_from_b11: breturn_from_b8: - //SEG387 [182] 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 - //SEG388 [182] 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 + //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 lda #1 jmp breturn - //SEG389 [182] 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] + //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] breturn_from_b14: breturn_from_b15: breturn_from_b6: - //SEG390 [182] 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 - //SEG391 [182] 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 + //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 lda #0 jmp breturn - //SEG392 play_move_leftright::@return + //SEG450 play_move_leftright::@return breturn: - //SEG393 [183] return + //SEG451 [202] return rts - //SEG394 play_move_leftright::@1 + //SEG452 play_move_leftright::@1 b1: - //SEG395 [184] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //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 ldx current_xpos dex stx play_collision.xpos - //SEG396 [185] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 -- vbuyy=vbuz1 + //SEG454 [204] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos - //SEG397 [186] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuxx=vbuz1 + //SEG455 [205] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuxx=vbuz1 ldx current_orientation - //SEG398 [187] (byte*~) current_piece#77 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG456 [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 - //SEG399 [188] call play_collision - //SEG400 [147] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] + //SEG457 [207] call play_collision + //SEG458 [166] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] play_collision_from_b1: - //SEG401 [147] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy - //SEG402 [147] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy - //SEG403 [147] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy - //SEG404 [147] phi (byte*) current_piece#12 = (byte*~) current_piece#77 [phi:play_move_leftright::@1->play_collision#3] -- register_copy + //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 jsr play_collision - //SEG405 [189] (byte) play_collision::return#1 ← (byte) play_collision::return#14 + //SEG463 [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 - //SEG406 play_move_leftright::@14 + //SEG464 play_move_leftright::@14 b14: - //SEG407 [190] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + //SEG465 [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 - //SEG408 [191] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG466 [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 - //SEG409 play_move_leftright::@11 + //SEG467 play_move_leftright::@11 b11: - //SEG410 [192] (byte) current_xpos#4 ← -- (byte) current_xpos#1 -- vbuz1=_dec_vbuz1 + //SEG468 [211] (byte) current_xpos#4 ← -- (byte) current_xpos#1 -- vbuz1=_dec_vbuz1 dec current_xpos jmp breturn_from_b11 } -//SEG411 play_move_down +//SEG469 play_move_down play_move_down: { - //SEG412 [193] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 + //SEG470 [212] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG413 [194] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 + //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 cmp #KEY_SPACE bne b1_from_play_move_down - //SEG414 [195] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG472 [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 - //SEG415 play_move_down::@8 + //SEG473 play_move_down::@8 b8: - //SEG416 [196] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG474 [215] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] b1_from_b8: - //SEG417 [196] 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 + //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 ldx #1 jmp b1 - //SEG418 [196] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG476 [215] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b1_from_play_move_down: - //SEG419 [196] 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 + //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 ldx #0 jmp b1 - //SEG420 play_move_down::@1 + //SEG478 play_move_down::@1 b1: - //SEG421 [197] call keyboard_event_pressed - //SEG422 [295] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG479 [216] call keyboard_event_pressed + //SEG480 [322] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] keyboard_event_pressed_from_b1: - //SEG423 [295] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG481 [322] 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 - //SEG424 [198] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + //SEG482 [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 - //SEG425 play_move_down::@17 + //SEG483 play_move_down::@17 b17: - //SEG426 [199] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + //SEG484 [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 - //SEG427 [200] 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 + //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 cmp #0 beq b2_from_b17 jmp b9 - //SEG428 play_move_down::@9 + //SEG486 play_move_down::@9 b9: - //SEG429 [201] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG487 [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 - //SEG430 play_move_down::@10 + //SEG488 play_move_down::@10 b10: - //SEG431 [202] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx + //SEG489 [221] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx inx - //SEG432 [203] 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] + //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] b2_from_b10: b2_from_b17: b2_from_b9: - //SEG433 [203] 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 + //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 jmp b2 - //SEG434 play_move_down::@2 + //SEG492 play_move_down::@2 b2: - //SEG435 [204] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG493 [223] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 lda current_movedown_counter cmp #current_movedown_slow bcc b4_from_b2 jmp b11 - //SEG436 play_move_down::@11 + //SEG494 play_move_down::@11 b11: - //SEG437 [205] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx + //SEG495 [224] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx inx - //SEG438 [206] 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] + //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] b4_from_b11: b4_from_b2: - //SEG439 [206] 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 + //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 jmp b4 - //SEG440 play_move_down::@4 + //SEG498 play_move_down::@4 b4: - //SEG441 [207] 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 + //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 cpx #0 beq breturn_from_b4 jmp b12 - //SEG442 play_move_down::@12 + //SEG500 play_move_down::@12 b12: - //SEG443 [208] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 + //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 ldy current_ypos iny - //SEG444 [209] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 + //SEG502 [228] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG445 [210] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuxx=vbuz1 + //SEG503 [229] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuxx=vbuz1 ldx current_orientation - //SEG446 [211] (byte*~) current_piece#76 ← (byte*) current_piece#16 -- pbuz1=pbuz2 + //SEG504 [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 - //SEG447 [212] call play_collision - //SEG448 [147] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] + //SEG505 [231] call play_collision + //SEG506 [166] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] play_collision_from_b12: - //SEG449 [147] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy - //SEG450 [147] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy - //SEG451 [147] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy - //SEG452 [147] phi (byte*) current_piece#12 = (byte*~) current_piece#76 [phi:play_move_down::@12->play_collision#3] -- register_copy + //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 jsr play_collision - //SEG453 [213] (byte) play_collision::return#0 ← (byte) play_collision::return#14 + //SEG511 [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 - //SEG454 play_move_down::@18 + //SEG512 play_move_down::@18 b18: - //SEG455 [214] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + //SEG513 [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 - //SEG456 [215] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuaa_eq_vbuc1_then_la1 + //SEG514 [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 - //SEG457 [216] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG515 [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 - //SEG458 play_move_down::@13 + //SEG516 play_move_down::@13 b13: - //SEG459 [217] call play_lock_current + //SEG517 [236] call play_lock_current jsr play_lock_current - //SEG460 [218] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG518 [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 - //SEG461 play_move_down::@19 + //SEG519 play_move_down::@19 b19: - //SEG462 [219] call play_remove_lines - //SEG463 [255] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] + //SEG520 [238] call play_remove_lines + //SEG521 [282] 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 - //SEG464 [220] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 -- vbuaa=vbuz1 + //SEG522 [239] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 -- vbuaa=vbuz1 lda play_remove_lines.removed jmp b20 - //SEG465 play_move_down::@20 + //SEG523 play_move_down::@20 b20: - //SEG466 [221] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 + //SEG524 [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 - //SEG467 [222] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 - // (byte) play_update_score::removed#0 = (byte) play_move_down::removed#0 // register copy reg byte a - //SEG468 [223] call play_update_score + //SEG525 [241] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuxx=vbuaa + tax + //SEG526 [242] call play_update_score jsr play_update_score - //SEG469 [224] phi from play_move_down::@20 to play_move_down::@21 [phi:play_move_down::@20->play_move_down::@21] + //SEG527 [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 - //SEG470 play_move_down::@21 + //SEG528 play_move_down::@21 b21: - //SEG471 [225] call play_spawn_current - //SEG472 [231] phi from play_move_down::@21 to play_spawn_current [phi:play_move_down::@21->play_spawn_current] + //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] play_spawn_current_from_b21: jsr play_spawn_current - //SEG473 [226] (byte*~) current_piece#80 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG531 [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 - //SEG474 [227] phi from play_move_down::@21 to play_move_down::@7 [phi:play_move_down::@21->play_move_down::@7] + //SEG532 [246] phi from play_move_down::@21 to play_move_down::@7 [phi:play_move_down::@21->play_move_down::@7] b7_from_b21: - //SEG475 [227] phi (byte) current_piece_char#20 = (byte) current_piece_char#12 [phi:play_move_down::@21->play_move_down::@7#0] -- register_copy - //SEG476 [227] phi (byte) current_xpos#33 = (byte) current_xpos#23 [phi:play_move_down::@21->play_move_down::@7#1] -- register_copy - //SEG477 [227] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#16 [phi:play_move_down::@21->play_move_down::@7#2] -- register_copy - //SEG478 [227] 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 + //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 lda #0 sta current_orientation - //SEG479 [227] phi (byte*) current_piece#20 = (byte*~) current_piece#80 [phi:play_move_down::@21->play_move_down::@7#4] -- register_copy - //SEG480 [227] phi (dword) score_bcd#20 = (dword) score_bcd#12 [phi:play_move_down::@21->play_move_down::@7#5] -- register_copy - //SEG481 [227] phi (byte) current_ypos#29 = (byte) current_ypos#18 [phi:play_move_down::@21->play_move_down::@7#6] -- register_copy + //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#19 = (byte) level_bcd#12 [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 jmp b7 - //SEG482 play_move_down::@7 + //SEG542 play_move_down::@7 b7: - //SEG483 [228] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG543 [247] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] breturn_from_b7: - //SEG484 [228] phi (byte) current_piece_char#1 = (byte) current_piece_char#20 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG485 [228] phi (byte) current_xpos#1 = (byte) current_xpos#33 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG486 [228] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#26 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG487 [228] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG488 [228] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG489 [228] phi (dword) score_bcd#10 = (dword) score_bcd#20 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG490 [228] phi (byte) current_ypos#13 = (byte) current_ypos#29 [phi:play_move_down::@7->play_move_down::@return#6] -- register_copy - //SEG491 [228] 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#7] -- vbuz1=vbuc1 + //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#10 = (byte) level_bcd#19 [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 lda #0 sta current_movedown_counter - //SEG492 [228] 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#8] -- vbuxx=vbuc1 + //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 ldx #1 jmp breturn - //SEG493 [228] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG555 [247] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] breturn_from_b4: - //SEG494 [228] phi (byte) current_piece_char#1 = (byte) current_piece_char#15 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG495 [228] phi (byte) current_xpos#1 = (byte) current_xpos#10 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG496 [228] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#20 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG497 [228] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG498 [228] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG499 [228] phi (dword) score_bcd#10 = (dword) score_bcd#14 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG500 [228] phi (byte) current_ypos#13 = (byte) current_ypos#21 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG501 [228] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#7] -- register_copy - //SEG502 [228] 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#8] -- vbuxx=vbuc1 + //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#10 = (byte) level_bcd#14 [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 ldx #0 jmp breturn - //SEG503 play_move_down::@return + //SEG567 play_move_down::@return breturn: - //SEG504 [229] return + //SEG568 [248] return rts - //SEG505 play_move_down::@6 + //SEG569 play_move_down::@6 b6: - //SEG506 [230] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 -- vbuz1=_inc_vbuz1 + //SEG570 [249] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG507 [227] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG571 [246] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] b7_from_b6: - //SEG508 [227] phi (byte) current_piece_char#20 = (byte) current_piece_char#15 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG509 [227] phi (byte) current_xpos#33 = (byte) current_xpos#10 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG510 [227] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#20 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG511 [227] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG512 [227] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG513 [227] phi (dword) score_bcd#20 = (dword) score_bcd#14 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy - //SEG514 [227] phi (byte) current_ypos#29 = (byte) current_ypos#0 [phi:play_move_down::@6->play_move_down::@7#6] -- register_copy + //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#19 = (byte) level_bcd#14 [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 jmp b7 } -//SEG515 play_spawn_current +//SEG581 play_spawn_current play_spawn_current: { .label _3 = 4 - //SEG516 [232] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] + //SEG582 [251] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] b1_from_play_spawn_current: - //SEG517 [232] 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 + //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 ldx #7 jmp b1 - //SEG518 play_spawn_current::@1 + //SEG584 play_spawn_current::@1 b1: - //SEG519 [233] 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 + //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 cpx #7 beq b2_from_b1 jmp b3 - //SEG520 play_spawn_current::@3 + //SEG586 play_spawn_current::@3 b3: - //SEG521 [234] (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 + //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 txa asl sta _3 - //SEG522 [235] (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 + //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 ldy _3 lda PIECES,y sta current_piece_gfx lda PIECES+1,y sta current_piece_gfx+1 - //SEG523 [236] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG589 [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 - //SEG524 [237] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG590 [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 - //SEG525 [238] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG591 [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 - //SEG526 play_spawn_current::@return + //SEG592 play_spawn_current::@return breturn: - //SEG527 [239] return + //SEG593 [258] return rts - //SEG528 [240] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] + //SEG594 [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 - //SEG529 play_spawn_current::@2 + //SEG595 play_spawn_current::@2 b2: - //SEG530 [241] call sid_rnd + //SEG596 [260] call sid_rnd jsr sid_rnd - //SEG531 [242] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + //SEG597 [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 - //SEG532 play_spawn_current::@7 + //SEG598 play_spawn_current::@7 b7: - //SEG533 [243] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 + //SEG599 [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 - //SEG534 [244] (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 + //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 and #7 tax - //SEG535 [232] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] + //SEG601 [251] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] b1_from_b7: - //SEG536 [232] 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 + //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 jmp b1 } -//SEG537 sid_rnd +//SEG603 sid_rnd sid_rnd: { - //SEG538 [245] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 + //SEG604 [264] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 lda SID_VOICE3_OSC jmp breturn - //SEG539 sid_rnd::@return + //SEG605 sid_rnd::@return breturn: - //SEG540 [246] return + //SEG606 [265] return rts } -//SEG541 play_update_score +//SEG607 play_update_score play_update_score: { - .label add_bcd = $24 - //SEG542 [247] if((byte) play_update_score::removed#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_update_score::@return -- vbuaa_eq_0_then_la1 - cmp #0 + .label add_bcd = $27 + .label lines_before = 4 + //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 + cpx #0 beq breturn_from_play_update_score - jmp b2 - //SEG543 play_update_score::@2 - b2: - //SEG544 [248] (byte~) play_update_score::$2 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuaa_rol_2 + jmp b3 + //SEG609 play_update_score::@3 + b3: + //SEG610 [267] (byte~) play_update_score::$2 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 + txa asl asl - //SEG545 [249] (dword) play_update_score::add_bcd#0 ← *((const dword[]) score_add_bcd#0 + (byte~) play_update_score::$2) -- vduz1=pduc1_derefidx_vbuaa + //SEG611 [268] (dword) play_update_score::add_bcd#0 ← *((const dword[]) score_add_bcd#0 + (byte~) play_update_score::$2) -- vduz1=pduc1_derefidx_vbuaa tay lda score_add_bcd,y sta add_bcd @@ -15173,9 +16330,22 @@ play_update_score: { sta add_bcd+2 lda score_add_bcd+3,y sta add_bcd+3 - //SEG546 asm { sed } + //SEG612 [269] (byte~) play_update_score::$3 ← < (word) lines_bcd#15 -- vbuaa=_lo_vwuz1 + lda lines_bcd + //SEG613 [270] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$3 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuaa_band_vbuc1 + and #$f0 + sta lines_before + //SEG614 asm { sed } sed - //SEG547 [251] (dword) score_bcd#3 ← (dword) score_bcd#14 + (dword) play_update_score::add_bcd#0 -- vduz1=vduz1_plus_vduz2 + //SEG615 [272] (word) lines_bcd#23 ← (word) lines_bcd#15 + (byte) play_update_score::removed#0 -- vwuz1=vwuz1_plus_vbuxx + txa + clc + adc lines_bcd + sta lines_bcd + 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 lda score_bcd clc adc add_bcd @@ -15189,694 +16359,715 @@ play_update_score: { lda score_bcd+3 adc add_bcd+3 sta score_bcd+3 - //SEG548 asm { cld } + //SEG617 [274] (byte~) play_update_score::$5 ← < (word) lines_bcd#23 -- vbuaa=_lo_vwuz1 + lda lines_bcd + //SEG618 [275] (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 + //SEG619 [276] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@2 -- vbuz1_eq_vbuaa_then_la1 + cmp lines_before + beq b2_from_b3 + jmp b4 + //SEG620 play_update_score::@4 + b4: + //SEG621 [277] (byte) level_bcd#3 ← (byte) level_bcd#14 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_plus_1 + inc level_bcd + //SEG622 [278] phi from play_update_score::@3 play_update_score::@4 to play_update_score::@2 [phi:play_update_score::@3/play_update_score::@4->play_update_score::@2] + b2_from_b3: + b2_from_b4: + //SEG623 [278] phi (byte) level_bcd#22 = (byte) level_bcd#14 [phi:play_update_score::@3/play_update_score::@4->play_update_score::@2#0] -- register_copy + jmp b2 + //SEG624 play_update_score::@2 + b2: + //SEG625 asm { cld } cld - //SEG549 [253] phi from play_update_score play_update_score::@2 to play_update_score::@return [phi:play_update_score/play_update_score::@2->play_update_score::@return] + //SEG626 [280] phi from play_update_score play_update_score::@2 to play_update_score::@return [phi:play_update_score/play_update_score::@2->play_update_score::@return] breturn_from_play_update_score: breturn_from_b2: - //SEG550 [253] phi (dword) score_bcd#12 = (dword) score_bcd#14 [phi:play_update_score/play_update_score::@2->play_update_score::@return#0] -- register_copy + //SEG627 [280] phi (byte) level_bcd#12 = (byte) level_bcd#14 [phi:play_update_score/play_update_score::@2->play_update_score::@return#0] -- register_copy + //SEG628 [280] phi (dword) score_bcd#12 = (dword) score_bcd#14 [phi:play_update_score/play_update_score::@2->play_update_score::@return#1] -- register_copy + //SEG629 [280] phi (word) lines_bcd#13 = (word) lines_bcd#15 [phi:play_update_score/play_update_score::@2->play_update_score::@return#2] -- register_copy jmp breturn - //SEG551 play_update_score::@return + //SEG630 play_update_score::@return breturn: - //SEG552 [254] return + //SEG631 [281] return rts } -//SEG553 play_remove_lines +//SEG632 play_remove_lines play_remove_lines: { - .label c = $a - .label x = 8 + .label c = $c + .label x = $a .label y = 4 - .label removed = 7 - .label full = 9 - //SEG554 [256] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] + .label removed = 9 + .label full = $b + //SEG633 [283] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] b1_from_play_remove_lines: - //SEG555 [256] 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 + //SEG634 [283] 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 - //SEG556 [256] 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 + //SEG635 [283] 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 - //SEG557 [256] 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 + //SEG636 [283] 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 - //SEG558 [256] 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 + //SEG637 [283] 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 - //SEG559 [256] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] + //SEG638 [283] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] b1_from_b4: - //SEG560 [256] 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 - //SEG561 [256] 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 - //SEG562 [256] 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 - //SEG563 [256] 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 + //SEG639 [283] 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 + //SEG640 [283] 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 + //SEG641 [283] 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 + //SEG642 [283] 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 - //SEG564 play_remove_lines::@1 + //SEG643 play_remove_lines::@1 b1: - //SEG565 [257] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] + //SEG644 [284] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] b2_from_b1: - //SEG566 [257] 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 + //SEG645 [284] 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 - //SEG567 [257] 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 + //SEG646 [284] 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 - //SEG568 [257] 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 - //SEG569 [257] 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 + //SEG647 [284] 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 + //SEG648 [284] 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 - //SEG570 [257] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] + //SEG649 [284] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] b2_from_b3: - //SEG571 [257] 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 - //SEG572 [257] 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 - //SEG573 [257] 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 - //SEG574 [257] 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 + //SEG650 [284] 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 + //SEG651 [284] 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 + //SEG652 [284] 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 + //SEG653 [284] 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 - //SEG575 play_remove_lines::@2 + //SEG654 play_remove_lines::@2 b2: - //SEG576 [258] (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 + //SEG655 [285] (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 - //SEG577 [259] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy + //SEG656 [286] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy dey - //SEG578 [260] 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 + //SEG657 [287] 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 - //SEG579 [261] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] + //SEG658 [288] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] b3_from_b2: - //SEG580 [261] 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 + //SEG659 [288] 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 - //SEG581 play_remove_lines::@3 + //SEG660 play_remove_lines::@3 b3: - //SEG582 [262] *((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 + //SEG661 [289] *((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 - //SEG583 [263] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx + //SEG662 [290] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx dex - //SEG584 [264] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 + //SEG663 [291] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG585 [265] 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 + //SEG664 [292] 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 - //SEG586 play_remove_lines::@9 + //SEG665 play_remove_lines::@9 b9: - //SEG587 [266] 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 + //SEG666 [293] 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 - //SEG588 play_remove_lines::@10 + //SEG667 play_remove_lines::@10 b10: - //SEG589 [267] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuxx=vbuxx_plus_vbuc1 + //SEG668 [294] (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 - //SEG590 [268] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 + //SEG669 [295] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 inc removed - //SEG591 [269] 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] + //SEG670 [296] 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: - //SEG592 [269] 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 - //SEG593 [269] 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 + //SEG671 [296] 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 + //SEG672 [296] 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 - //SEG594 play_remove_lines::@4 + //SEG673 play_remove_lines::@4 b4: - //SEG595 [270] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 + //SEG674 [297] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG596 [271] 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 + //SEG675 [298] 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 - //SEG597 [272] 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] + //SEG676 [299] 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: - //SEG598 [272] 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 + //SEG677 [299] 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 - //SEG599 play_remove_lines::@5 + //SEG678 play_remove_lines::@5 b5: - //SEG600 [273] 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 + //SEG679 [300] 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 - //SEG601 play_remove_lines::@return + //SEG680 play_remove_lines::@return breturn: - //SEG602 [274] return + //SEG681 [301] return rts - //SEG603 play_remove_lines::@6 + //SEG682 play_remove_lines::@6 b6: - //SEG604 [275] *((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 + //SEG683 [302] *((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 - //SEG605 [276] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx + //SEG684 [303] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx dex jmp b5_from_b6 - //SEG606 [277] phi from play_remove_lines::@2 to play_remove_lines::@18 [phi:play_remove_lines::@2->play_remove_lines::@18] + //SEG685 [304] 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 - //SEG607 play_remove_lines::@18 + //SEG686 play_remove_lines::@18 b18: - //SEG608 [261] phi from play_remove_lines::@18 to play_remove_lines::@3 [phi:play_remove_lines::@18->play_remove_lines::@3] + //SEG687 [288] phi from play_remove_lines::@18 to play_remove_lines::@3 [phi:play_remove_lines::@18->play_remove_lines::@3] b3_from_b18: - //SEG609 [261] 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 + //SEG688 [288] 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 } -//SEG610 play_lock_current +//SEG689 play_lock_current play_lock_current: { - .label ypos2 = $e + .label ypos2 = $10 .label playfield_line = 5 - .label col = 8 - .label i = 9 + .label col = $a + .label i = $b .label l = 4 - .label i_2 = 7 - .label i_3 = 7 - .label i_7 = 7 - .label i_9 = 7 - //SEG611 [278] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 + .label i_2 = 9 + .label i_3 = 9 + .label i_7 = 9 + .label i_9 = 9 + //SEG690 [305] (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 - //SEG612 [279] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] + //SEG691 [306] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] b1_from_play_lock_current: - //SEG613 [279] 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 + //SEG692 [306] 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 - //SEG614 [279] 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 + //SEG693 [306] 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 - //SEG615 [279] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy + //SEG694 [306] 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 - //SEG616 play_lock_current::@1 + //SEG695 play_lock_current::@1 b1: - //SEG617 [280] (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 + //SEG696 [307] (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 - //SEG618 [281] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 + //SEG697 [308] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG619 [282] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] + //SEG698 [309] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] b2_from_b1: - //SEG620 [282] 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 + //SEG699 [309] 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 - //SEG621 [282] 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 - //SEG622 [282] 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 + //SEG700 [309] 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 + //SEG701 [309] 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 - //SEG623 play_lock_current::@2 + //SEG702 play_lock_current::@2 b2: - //SEG624 [283] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG703 [310] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG625 [284] 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 + //SEG704 [311] 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 - //SEG626 play_lock_current::@4 + //SEG705 play_lock_current::@4 b4: - //SEG627 [285] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG706 [312] *((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 - //SEG628 play_lock_current::@3 + //SEG707 play_lock_current::@3 b3: - //SEG629 [286] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG708 [313] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG630 [287] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx + //SEG709 [314] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG631 [288] 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 + //SEG710 [315] 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 - //SEG632 play_lock_current::@5 + //SEG711 play_lock_current::@5 b5: - //SEG633 [289] (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 + //SEG712 [316] (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 - //SEG634 [290] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG713 [317] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG635 [291] 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 + //SEG714 [318] 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 - //SEG636 play_lock_current::@return + //SEG715 play_lock_current::@return breturn: - //SEG637 [292] return + //SEG716 [319] return rts - //SEG638 play_lock_current::@7 + //SEG717 play_lock_current::@7 b7: - //SEG639 [293] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG718 [320] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG640 [279] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] + //SEG719 [306] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] b1_from_b7: - //SEG641 [279] 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 - //SEG642 [279] 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 - //SEG643 [279] 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 + //SEG720 [306] 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 + //SEG721 [306] 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 + //SEG722 [306] 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 - //SEG644 play_lock_current::@8 + //SEG723 play_lock_current::@8 b8: - //SEG645 [294] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG724 [321] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG646 [282] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] + //SEG725 [309] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] b2_from_b8: - //SEG647 [282] 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 - //SEG648 [282] 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 - //SEG649 [282] 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 + //SEG726 [309] 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 + //SEG727 [309] 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 + //SEG728 [309] 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 } -//SEG650 keyboard_event_pressed +//SEG729 keyboard_event_pressed keyboard_event_pressed: { - .label row_bits = 8 - .label keycode = 7 - //SEG651 [296] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuz1_ror_3 + .label row_bits = $a + .label keycode = 9 + //SEG730 [323] (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 - //SEG652 [297] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa + //SEG731 [324] (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 - //SEG653 [298] (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 + //SEG732 [325] (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 - //SEG654 [299] (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 + //SEG733 [326] (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 - //SEG655 keyboard_event_pressed::@return + //SEG734 keyboard_event_pressed::@return breturn: - //SEG656 [300] return + //SEG735 [327] return rts } -//SEG657 keyboard_event_get +//SEG736 keyboard_event_get keyboard_event_get: { - //SEG658 [301] 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 + //SEG737 [328] 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 - //SEG659 keyboard_event_get::@3 + //SEG738 keyboard_event_get::@3 b3: - //SEG660 [302] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG739 [329] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG661 [303] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuaa=pbuc1_derefidx_vbuz1 + //SEG740 [330] (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 - //SEG662 [304] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG741 [331] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] breturn_from_b3: - //SEG663 [304] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG664 [304] 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 + //SEG742 [331] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG743 [331] 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 - //SEG665 [304] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG744 [331] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] breturn_from_keyboard_event_get: - //SEG666 [304] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG667 [304] 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 + //SEG745 [331] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG746 [331] 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 - //SEG668 keyboard_event_get::@return + //SEG747 keyboard_event_get::@return breturn: - //SEG669 [305] return + //SEG748 [332] return rts } -//SEG670 keyboard_event_scan +//SEG749 keyboard_event_scan keyboard_event_scan: { - .label row_scan = 9 - .label keycode = 8 - .label row = 7 - //SEG671 [307] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + .label row_scan = $b + .label keycode = $a + .label row = 9 + //SEG750 [334] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] b1_from_keyboard_event_scan: - //SEG672 [307] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG673 [307] 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 + //SEG751 [334] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG752 [334] 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 - //SEG674 [307] 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 + //SEG753 [334] 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 - //SEG675 [307] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG754 [334] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] b1_from_b3: - //SEG676 [307] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG677 [307] 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 - //SEG678 [307] 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 + //SEG755 [334] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG756 [334] 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 + //SEG757 [334] 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 - //SEG679 keyboard_event_scan::@1 + //SEG758 keyboard_event_scan::@1 b1: - //SEG680 [308] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 + //SEG759 [335] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 ldx row - //SEG681 [309] call keyboard_matrix_read + //SEG760 [336] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG682 [310] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + //SEG761 [337] (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 - //SEG683 keyboard_event_scan::@25 + //SEG762 keyboard_event_scan::@25 b25: - //SEG684 [311] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa + //SEG763 [338] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa sta row_scan - //SEG685 [312] 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 + //SEG764 [339] 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 - //SEG686 keyboard_event_scan::@13 + //SEG765 keyboard_event_scan::@13 b13: - //SEG687 [313] (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 + //SEG766 [340] (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 - //SEG688 [314] 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] + //SEG767 [341] 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: - //SEG689 [314] 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 - //SEG690 [314] 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 + //SEG768 [341] 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 + //SEG769 [341] 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 - //SEG691 keyboard_event_scan::@3 + //SEG770 keyboard_event_scan::@3 b3: - //SEG692 [315] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG771 [342] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG693 [316] 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 + //SEG772 [343] 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 - //SEG694 [317] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG773 [344] 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 - //SEG695 keyboard_event_scan::@20 + //SEG774 keyboard_event_scan::@20 b20: - //SEG696 [318] call keyboard_event_pressed - //SEG697 [295] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG775 [345] call keyboard_event_pressed + //SEG776 [322] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] keyboard_event_pressed_from_b20: - //SEG698 [295] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG777 [322] 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 - //SEG699 [319] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + //SEG778 [346] (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 - //SEG700 keyboard_event_scan::@26 + //SEG779 keyboard_event_scan::@26 b26: - //SEG701 [320] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + //SEG780 [347] (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 - //SEG702 [321] 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 + //SEG781 [348] 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 - //SEG703 [322] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG782 [349] 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 - //SEG704 keyboard_event_scan::@21 + //SEG783 keyboard_event_scan::@21 b21: - //SEG705 [323] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] + //SEG784 [350] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] b9_from_b21: - //SEG706 [323] 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 + //SEG785 [350] 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 - //SEG707 [323] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG786 [350] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] b9_from_b26: - //SEG708 [323] 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 + //SEG787 [350] 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 - //SEG709 keyboard_event_scan::@9 + //SEG788 keyboard_event_scan::@9 b9: - //SEG710 [324] call keyboard_event_pressed - //SEG711 [295] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG789 [351] call keyboard_event_pressed + //SEG790 [322] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] keyboard_event_pressed_from_b9: - //SEG712 [295] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG791 [322] 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 - //SEG713 [325] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + //SEG792 [352] (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 - //SEG714 keyboard_event_scan::@27 + //SEG793 keyboard_event_scan::@27 b27: - //SEG715 [326] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + //SEG794 [353] (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 - //SEG716 [327] 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 + //SEG795 [354] 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 - //SEG717 keyboard_event_scan::@22 + //SEG796 keyboard_event_scan::@22 b22: - //SEG718 [328] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG797 [355] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_RSHIFT tax - //SEG719 [329] 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] + //SEG798 [356] 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: - //SEG720 [329] 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 + //SEG799 [356] 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 - //SEG721 keyboard_event_scan::@10 + //SEG800 keyboard_event_scan::@10 b10: - //SEG722 [330] call keyboard_event_pressed - //SEG723 [295] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG801 [357] call keyboard_event_pressed + //SEG802 [322] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] keyboard_event_pressed_from_b10: - //SEG724 [295] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG803 [322] 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 - //SEG725 [331] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + //SEG804 [358] (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 - //SEG726 keyboard_event_scan::@28 + //SEG805 keyboard_event_scan::@28 b28: - //SEG727 [332] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + //SEG806 [359] (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 - //SEG728 [333] 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 + //SEG807 [360] 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 - //SEG729 keyboard_event_scan::@23 + //SEG808 keyboard_event_scan::@23 b23: - //SEG730 [334] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG809 [361] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_CTRL tax - //SEG731 [335] 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] + //SEG810 [362] 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: - //SEG732 [335] 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 + //SEG811 [362] 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 - //SEG733 keyboard_event_scan::@11 + //SEG812 keyboard_event_scan::@11 b11: - //SEG734 [336] call keyboard_event_pressed - //SEG735 [295] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG813 [363] call keyboard_event_pressed + //SEG814 [322] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] keyboard_event_pressed_from_b11: - //SEG736 [295] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG815 [322] 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 - //SEG737 [337] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + //SEG816 [364] (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 - //SEG738 keyboard_event_scan::@29 + //SEG817 keyboard_event_scan::@29 b29: - //SEG739 [338] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + //SEG818 [365] (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 - //SEG740 [339] 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 + //SEG819 [366] 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 - //SEG741 keyboard_event_scan::@24 + //SEG820 keyboard_event_scan::@24 b24: - //SEG742 [340] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuaa=vbuxx_bor_vbuc1 + //SEG821 [367] (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 - //SEG743 keyboard_event_scan::@return + //SEG822 keyboard_event_scan::@return breturn: - //SEG744 [341] return + //SEG823 [368] return rts - //SEG745 [342] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG824 [369] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b4_from_b25: - //SEG746 [342] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG747 [342] 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 - //SEG748 [342] 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 + //SEG825 [369] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG826 [369] 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 + //SEG827 [369] 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 - //SEG749 [342] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG828 [369] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] b4_from_b5: - //SEG750 [342] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG751 [342] 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 - //SEG752 [342] 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 + //SEG829 [369] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG830 [369] 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 + //SEG831 [369] 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 - //SEG753 keyboard_event_scan::@4 + //SEG832 keyboard_event_scan::@4 b4: - //SEG754 [343] (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 + //SEG833 [370] (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 - //SEG755 [344] (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 + //SEG834 [371] (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 - //SEG756 [345] 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 + //SEG835 [372] 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 - //SEG757 keyboard_event_scan::@15 + //SEG836 keyboard_event_scan::@15 b15: - //SEG758 [346] 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 + //SEG837 [373] 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 - //SEG759 keyboard_event_scan::@16 + //SEG838 keyboard_event_scan::@16 b16: - //SEG760 [347] (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 + //SEG839 [374] (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 - //SEG761 [348] 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 + //SEG840 [375] 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 - //SEG762 keyboard_event_scan::@17 + //SEG841 keyboard_event_scan::@17 b17: - //SEG763 [349] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG842 [376] *((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 - //SEG764 [350] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG843 [377] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG765 [351] 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] + //SEG844 [378] 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: - //SEG766 [351] 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 + //SEG845 [378] 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 - //SEG767 keyboard_event_scan::@5 + //SEG846 keyboard_event_scan::@5 b5: - //SEG768 [352] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG847 [379] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG769 [353] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx + //SEG848 [380] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx inx - //SEG770 [354] 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 + //SEG849 [381] 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 - //SEG771 keyboard_event_scan::@19 + //SEG850 keyboard_event_scan::@19 b19: - //SEG772 [355] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG851 [382] *((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 - //SEG773 keyboard_event_scan::@7 + //SEG852 keyboard_event_scan::@7 b7: - //SEG774 [356] (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 + //SEG853 [383] (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 - //SEG775 [357] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa + //SEG854 [384] *((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 - //SEG776 [358] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG855 [385] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5_from_b7 } -//SEG777 keyboard_matrix_read +//SEG856 keyboard_matrix_read keyboard_matrix_read: { - //SEG778 [359] *((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 + //SEG857 [386] *((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 - //SEG779 [360] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 + //SEG858 [387] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff jmp breturn - //SEG780 keyboard_matrix_read::@return + //SEG859 keyboard_matrix_read::@return breturn: - //SEG781 [361] return + //SEG860 [388] return rts } -//SEG782 render_show +//SEG861 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 - //SEG783 [362] 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 + //SEG862 [389] 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 - //SEG784 [363] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] + //SEG863 [390] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] toD0182_from_render_show: jmp toD0182 - //SEG785 render_show::toD0182 + //SEG864 render_show::toD0182 toD0182: - //SEG786 [364] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] + //SEG865 [391] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] b2_from_toD0182: - //SEG787 [364] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@2#0] -- vbuaa=vbuc1 + //SEG866 [391] 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 - //SEG788 render_show::@2 + //SEG867 render_show::@2 b2: - //SEG789 [365] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuaa + //SEG868 [392] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuaa sta D018 - //SEG790 [366] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 + //SEG869 [393] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 lda render_screen_show sta render_screen_showing jmp breturn - //SEG791 render_show::@return + //SEG870 render_show::@return breturn: - //SEG792 [367] return + //SEG871 [394] return rts - //SEG793 [368] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] + //SEG872 [395] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] toD0181_from_render_show: jmp toD0181 - //SEG794 render_show::toD0181 + //SEG873 render_show::toD0181 toD0181: - //SEG795 [364] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] + //SEG874 [391] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] b2_from_toD0181: - //SEG796 [364] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@2#0] -- vbuaa=vbuc1 + //SEG875 [391] 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 } -//SEG797 play_init +//SEG876 play_init play_init: { .label pli = 5 .label idx = 2 - //SEG798 [370] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] + //SEG877 [397] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] b1_from_play_init: - //SEG799 [370] 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 + //SEG878 [397] 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 - //SEG800 [370] 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 + //SEG879 [397] 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 - //SEG801 [370] 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 + //SEG880 [397] 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 - //SEG802 [370] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] + //SEG881 [397] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] b1_from_b1: - //SEG803 [370] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy - //SEG804 [370] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy - //SEG805 [370] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy + //SEG882 [397] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy + //SEG883 [397] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy + //SEG884 [397] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy jmp b1 - //SEG806 play_init::@1 + //SEG885 play_init::@1 b1: - //SEG807 [371] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG886 [398] (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 - //SEG808 [372] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG887 [399] *((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 - //SEG809 [373] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG888 [400] *((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 - //SEG810 [374] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG889 [401] (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 @@ -15884,233 +17075,233 @@ play_init: { bcc !+ inc pli+1 !: - //SEG811 [375] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG890 [402] (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 - //SEG812 [376] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx + //SEG891 [403] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx inx - //SEG813 [377] 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 + //SEG892 [404] 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 - //SEG814 play_init::@2 + //SEG893 play_init::@2 b2: - //SEG815 [378] *((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 + //SEG894 [405] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 lda #PLAYFIELD_COLS*PLAYFIELD_LINES sta playfield_lines_idx+PLAYFIELD_LINES jmp breturn - //SEG816 play_init::@return + //SEG895 play_init::@return breturn: - //SEG817 [379] return + //SEG896 [406] return rts } -//SEG818 sprites_irq_init +//SEG897 sprites_irq_init sprites_irq_init: { - //SEG819 asm { sei } + //SEG898 asm { sei } sei - //SEG820 [381] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG899 [408] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG821 asm { ldaCIA1_INTERRUPT } + //SEG900 asm { ldaCIA1_INTERRUPT } lda CIA1_INTERRUPT - //SEG822 [383] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 + //SEG901 [410] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_DDR_MEMORY_MASK sta PROCPORT_DDR - //SEG823 [384] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 + //SEG902 [411] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - //SEG824 [385] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 + //SEG903 [412] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG825 [386] *((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 + //SEG904 [413] *((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 - //SEG826 [387] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 + //SEG905 [414] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER_FIRST sta RASTER - //SEG827 [388] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG906 [415] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_ENABLE - //SEG828 [389] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 + //SEG907 [416] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 lda #sprites_irq sta HARDWARE_IRQ+1 - //SEG829 asm { cli } + //SEG908 asm { cli } cli jmp breturn - //SEG830 sprites_irq_init::@return + //SEG909 sprites_irq_init::@return breturn: - //SEG831 [391] return + //SEG910 [418] return rts } -//SEG832 sprites_init +//SEG911 sprites_init sprites_init: { .label xpos = 2 - //SEG833 [392] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + //SEG912 [419] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 lda #$f sta SPRITES_ENABLE - //SEG834 [393] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG913 [420] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SPRITES_MC - //SEG835 [394] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG914 [421] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 lda SPRITES_MC sta SPRITES_EXPAND_Y - //SEG836 [395] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG915 [422] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 lda SPRITES_EXPAND_Y sta SPRITES_EXPAND_X - //SEG837 [396] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] + //SEG916 [423] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] b1_from_sprites_init: - //SEG838 [396] 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 + //SEG917 [423] 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 - //SEG839 [396] 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 + //SEG918 [423] 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 - //SEG840 [396] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] + //SEG919 [423] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] b1_from_b1: - //SEG841 [396] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy - //SEG842 [396] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy + //SEG920 [423] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy + //SEG921 [423] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy jmp b1 - //SEG843 sprites_init::@1 + //SEG922 sprites_init::@1 b1: - //SEG844 [397] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG923 [424] (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 - //SEG845 [398] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG924 [425] *((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 - //SEG846 [399] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG925 [426] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #BLACK sta SPRITES_COLS,x - //SEG847 [400] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG926 [427] (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 - //SEG848 [401] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuxx=_inc_vbuxx + //SEG927 [428] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuxx=_inc_vbuxx inx - //SEG849 [402] 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 + //SEG928 [429] 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 - //SEG850 sprites_init::@return + //SEG929 sprites_init::@return breturn: - //SEG851 [403] return + //SEG930 [430] return rts } -//SEG852 render_init +//SEG931 render_init render_init: { .const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_CHARSET)>>6 .label li_1 = 5 - .label li_2 = $13 + .label li_2 = 7 jmp vicSelectGfxBank1 - //SEG853 render_init::vicSelectGfxBank1 + //SEG932 render_init::vicSelectGfxBank1 vicSelectGfxBank1: - //SEG854 [405] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG933 [432] *((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 - //SEG855 [406] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] + //SEG934 [433] 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 - //SEG856 render_init::vicSelectGfxBank1_toDd001 + //SEG935 render_init::vicSelectGfxBank1_toDd001 vicSelectGfxBank1_toDd001: jmp vicSelectGfxBank1_b1 - //SEG857 render_init::vicSelectGfxBank1_@1 + //SEG936 render_init::vicSelectGfxBank1_@1 vicSelectGfxBank1_b1: - //SEG858 [407] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 + //SEG937 [434] *((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 - //SEG859 render_init::@3 + //SEG938 render_init::@3 b3: - //SEG860 [408] *((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 + //SEG939 [435] *((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 - //SEG861 [409] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG940 [436] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BORDERCOL - //SEG862 [410] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG941 [437] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BGCOL1 - //SEG863 [411] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 + //SEG942 [438] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 lda #BLUE sta BGCOL2 - //SEG864 [412] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 + //SEG943 [439] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 lda #CYAN sta BGCOL3 - //SEG865 [413] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 + //SEG944 [440] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 lda #GREY sta BGCOL4 - //SEG866 [414] call render_screen_original - //SEG867 [427] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] + //SEG945 [441] call render_screen_original + //SEG946 [454] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] render_screen_original_from_b3: - //SEG868 [427] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 + //SEG947 [454] 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 - //SEG869 [415] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] + //SEG948 [442] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] b4_from_b3: jmp b4 - //SEG870 render_init::@4 + //SEG949 render_init::@4 b4: - //SEG871 [416] call render_screen_original - //SEG872 [427] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] + //SEG950 [443] call render_screen_original + //SEG951 [454] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] render_screen_original_from_b4: - //SEG873 [427] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_init::@4->render_screen_original#0] -- pbuz1=pbuc1 + //SEG952 [454] 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 - //SEG874 [417] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] + //SEG953 [444] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] b1_from_b4: - //SEG875 [417] 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 + //SEG954 [444] 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 - //SEG876 [417] 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 + //SEG955 [444] 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 - //SEG877 [417] 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 + //SEG956 [444] 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 - //SEG878 [417] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + //SEG957 [444] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] b1_from_b1: - //SEG879 [417] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - //SEG880 [417] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy - //SEG881 [417] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy + //SEG958 [444] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG959 [444] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + //SEG960 [444] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy jmp b1 - //SEG882 render_init::@1 + //SEG961 render_init::@1 b1: - //SEG883 [418] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG962 [445] (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 - //SEG884 [419] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG963 [446] *((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 - //SEG885 [420] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG964 [447] (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 - //SEG886 [421] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG965 [448] *((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 - //SEG887 [422] (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 + //SEG966 [449] (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 @@ -16118,7 +17309,7 @@ render_init: { bcc !+ inc li_1+1 !: - //SEG888 [423] (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 + //SEG967 [450] (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 @@ -16126,360 +17317,360 @@ render_init: { bcc !+ inc li_2+1 !: - //SEG889 [424] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx + //SEG968 [451] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx inx - //SEG890 [425] 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 + //SEG969 [452] 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 - //SEG891 render_init::@return + //SEG970 render_init::@return breturn: - //SEG892 [426] return + //SEG971 [453] return rts } -//SEG893 render_screen_original +//SEG972 render_screen_original render_screen_original: { .const SPACE = 0 - .label screen = $16 - .label cols = $1b + .label screen = $11 + .label cols = $17 .label oscr = 5 - .label ocols = $13 + .label ocols = 7 .label y = 2 - //SEG894 [428] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] + //SEG973 [455] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] b1_from_render_screen_original: - //SEG895 [428] 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 + //SEG974 [455] 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 - //SEG896 [428] 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 + //SEG975 [455] 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 - //SEG897 [428] 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 + //SEG976 [455] 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 - //SEG898 [428] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS#0 [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 + //SEG977 [455] 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 - //SEG899 [428] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#4] -- register_copy + //SEG978 [455] 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 - //SEG900 [428] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] + //SEG979 [455] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] b1_from_b7: - //SEG901 [428] 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 - //SEG902 [428] 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 - //SEG903 [428] 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 - //SEG904 [428] 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 - //SEG905 [428] 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 + //SEG980 [455] 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 + //SEG981 [455] 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 + //SEG982 [455] 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 + //SEG983 [455] 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 + //SEG984 [455] 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 - //SEG906 render_screen_original::@1 + //SEG985 render_screen_original::@1 b1: - //SEG907 [429] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] + //SEG986 [456] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] b2_from_b1: - //SEG908 [429] 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 + //SEG987 [456] 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 - //SEG909 [429] 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 - //SEG910 [429] 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 + //SEG988 [456] 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 + //SEG989 [456] 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 - //SEG911 [429] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] + //SEG990 [456] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] b2_from_b2: - //SEG912 [429] 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 - //SEG913 [429] 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 - //SEG914 [429] 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 + //SEG991 [456] 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 + //SEG992 [456] 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 + //SEG993 [456] 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 - //SEG915 render_screen_original::@2 + //SEG994 render_screen_original::@2 b2: - //SEG916 [430] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG995 [457] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG917 [431] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 + //SEG996 [458] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG918 [432] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG997 [459] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG919 [433] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 + //SEG998 [460] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG920 [434] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx + //SEG999 [461] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx inx - //SEG921 [435] 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 + //SEG1000 [462] 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 - //SEG922 [436] 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] + //SEG1001 [463] 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: - //SEG923 [436] 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 - //SEG924 [436] 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 - //SEG925 [436] 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 - //SEG926 [436] 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 - //SEG927 [436] 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 + //SEG1002 [463] 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 + //SEG1003 [463] 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 + //SEG1004 [463] 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 + //SEG1005 [463] 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 + //SEG1006 [463] 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 - //SEG928 render_screen_original::@3 + //SEG1007 render_screen_original::@3 b3: - //SEG929 [437] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG1008 [464] *((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 - //SEG930 [438] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 + //SEG1009 [465] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG931 [439] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 + //SEG1010 [466] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 inc oscr bne !+ inc oscr+1 !: - //SEG932 [440] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG1011 [467] *((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 - //SEG933 [441] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 + //SEG1012 [468] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG934 [442] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 + //SEG1013 [469] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 inc ocols bne !+ inc ocols+1 !: - //SEG935 [443] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx + //SEG1014 [470] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx inx - //SEG936 [444] 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 + //SEG1015 [471] 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 - //SEG937 [445] 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] + //SEG1016 [472] 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: - //SEG938 [445] 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 - //SEG939 [445] 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 - //SEG940 [445] 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 + //SEG1017 [472] 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 + //SEG1018 [472] 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 + //SEG1019 [472] 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 - //SEG941 render_screen_original::@4 + //SEG1020 render_screen_original::@4 b4: - //SEG942 [446] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG1021 [473] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG943 [447] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 + //SEG1022 [474] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG944 [448] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG1023 [475] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG945 [449] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 + //SEG1024 [476] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG946 [450] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx + //SEG1025 [477] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx inx - //SEG947 [451] 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 + //SEG1026 [478] 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 - //SEG948 render_screen_original::@7 + //SEG1027 render_screen_original::@7 b7: - //SEG949 [452] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 + //SEG1028 [479] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG950 [453] 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 + //SEG1029 [480] 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 - //SEG951 render_screen_original::@return + //SEG1030 render_screen_original::@return breturn: - //SEG952 [454] return + //SEG1031 [481] return rts } -//SEG953 sid_rnd_init +//SEG1032 sid_rnd_init sid_rnd_init: { - //SEG954 [455] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 + //SEG1033 [482] *((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 - //SEG955 [456] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG1034 [483] *((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 - //SEG956 sid_rnd_init::@return + //SEG1035 sid_rnd_init::@return breturn: - //SEG957 [457] return + //SEG1036 [484] return rts } -//SEG958 sprites_irq +//SEG1037 sprites_irq sprites_irq: { .const toSpritePtr2_return = PLAYFIELD_SPRITES>>6 - //SEG959 entry interrupt(HARDWARE_CLOBBER) + //SEG1038 entry interrupt(HARDWARE_CLOBBER) sta rega+1 stx regx+1 - //SEG960 asm { cld } + //SEG1039 asm { cld } cld - //SEG961 [459] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuaa=vbuz1 + //SEG1040 [486] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuaa=vbuz1 lda irq_sprite_ypos - //SEG962 [460] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1041 [487] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS - //SEG963 [461] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1042 [488] *((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 - //SEG964 [462] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1043 [489] *((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 - //SEG965 [463] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1044 [490] *((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 - //SEG966 sprites_irq::@1 + //SEG1045 sprites_irq::@1 b1: - //SEG967 [464] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 + //SEG1046 [491] 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 - //SEG968 sprites_irq::@7 + //SEG1047 sprites_irq::@7 b7: - //SEG969 [465] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuxx=vbuz1 + //SEG1048 [492] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuxx=vbuz1 ldx irq_sprite_ptr - //SEG970 [466] 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 + //SEG1049 [493] 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 - //SEG971 sprites_irq::@8 + //SEG1050 sprites_irq::@8 b8: - //SEG972 [467] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx + //SEG1051 [494] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_2 - //SEG973 [468] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuxx=_inc_vbuxx + //SEG1052 [495] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuxx=_inc_vbuxx inx - //SEG974 [469] *((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 + //SEG1053 [496] *((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 - //SEG975 [470] *((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 + //SEG1054 [497] *((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 - //SEG976 [471] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuxx=_inc_vbuxx + //SEG1055 [498] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuxx=_inc_vbuxx inx - //SEG977 [472] *((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 + //SEG1056 [499] *((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 - //SEG978 sprites_irq::@3 + //SEG1057 sprites_irq::@3 b3: - //SEG979 [473] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz1 + //SEG1058 [500] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz1 inc irq_cnt - //SEG980 [474] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 + //SEG1059 [501] 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 - //SEG981 sprites_irq::@10 + //SEG1060 sprites_irq::@10 b10: - //SEG982 [475] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1061 [502] (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 - //SEG983 [476] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1062 [503] (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 - //SEG984 [477] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1063 [504] (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 - //SEG985 [478] phi from sprites_irq::@10 sprites_irq::@13 to sprites_irq::@5 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5] + //SEG1064 [505] 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: - //SEG986 [478] phi (byte) irq_raster_next#13 = (byte) irq_raster_next#2 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5#0] -- register_copy + //SEG1065 [505] 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 - //SEG987 sprites_irq::@5 + //SEG1066 sprites_irq::@5 b5: - //SEG988 [479] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 -- vbuxx=vbuz1 + //SEG1067 [506] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 -- vbuxx=vbuz1 ldx irq_raster_next - //SEG989 [480] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 + //SEG1068 [507] (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 - //SEG990 [481] if((byte~) sprites_irq::$4!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto sprites_irq::@6 -- vbuaa_neq_vbuc1_then_la1 + //SEG1069 [508] 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 - //SEG991 sprites_irq::@12 + //SEG1070 sprites_irq::@12 b12: - //SEG992 [482] (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 + //SEG1071 [509] (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 - //SEG993 [483] phi from sprites_irq::@12 sprites_irq::@5 to sprites_irq::@6 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6] + //SEG1072 [510] 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: - //SEG994 [483] 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 + //SEG1073 [510] 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 - //SEG995 sprites_irq::@6 + //SEG1074 sprites_irq::@6 b6: - //SEG996 [484] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 -- _deref_pbuc1=vbuxx + //SEG1075 [511] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 -- _deref_pbuc1=vbuxx stx RASTER - //SEG997 [485] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG1076 [512] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS jmp breturn - //SEG998 sprites_irq::@return + //SEG1077 sprites_irq::@return breturn: - //SEG999 [486] return - exit interrupt(HARDWARE_CLOBBER) + //SEG1078 [513] return - exit interrupt(HARDWARE_CLOBBER) rega: lda #00 regx: ldx #00 rti - //SEG1000 sprites_irq::@4 + //SEG1079 sprites_irq::@4 b4: - //SEG1001 [487] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 + //SEG1080 [514] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 lda #0 sta irq_cnt - //SEG1002 [488] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 + //SEG1081 [515] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next - //SEG1003 [489] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 + //SEG1082 [516] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 lda #$32 sta irq_sprite_ypos - //SEG1004 [490] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] + //SEG1083 [517] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] toSpritePtr2_from_b4: jmp toSpritePtr2 - //SEG1005 sprites_irq::toSpritePtr2 + //SEG1084 sprites_irq::toSpritePtr2 toSpritePtr2: jmp b13 - //SEG1006 sprites_irq::@13 + //SEG1085 sprites_irq::@13 b13: - //SEG1007 [491] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 + //SEG1086 [518] (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 - //SEG1008 sprites_irq::@2 + //SEG1087 sprites_irq::@2 b2: - //SEG1009 [492] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx + //SEG1088 [519] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_1 - //SEG1010 [493] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx + //SEG1089 [520] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx txa clc adc #1 - //SEG1011 [494] *((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 + //SEG1090 [521] *((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 - //SEG1012 [495] *((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 + //SEG1091 [522] *((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 - //SEG1013 [496] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuaa=_inc_vbuaa + //SEG1092 [523] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuaa=_inc_vbuaa clc adc #1 - //SEG1014 [497] *((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 + //SEG1093 [524] *((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 } @@ -16546,11 +17737,11 @@ sprites_irq: { ASSEMBLER OPTIMIZATIONS Removing instruction jmp b14 -Removing instruction jmp b21 Removing instruction jmp b22 +Removing instruction jmp b23 Removing instruction jmp toSpritePtr1 +Removing instruction jmp b36 Removing instruction jmp b35 -Removing instruction jmp b34 Removing instruction jmp bend Removing instruction jmp b15 Removing instruction jmp b16 @@ -16573,9 +17764,16 @@ Removing instruction jmp b29 Removing instruction jmp b30 Removing instruction jmp b31 Removing instruction jmp breturn -Removing instruction jmp b4 -Removing instruction jmp b2 Removing instruction jmp b3 +Removing instruction jmp b2 +Removing instruction jmp b5 +Removing instruction jmp b6 +Removing instruction jmp b7 +Removing instruction jmp b8 +Removing instruction jmp b9 +Removing instruction jmp breturn +Removing instruction jmp b2 +Removing instruction jmp b1 Removing instruction jmp breturn Removing instruction jmp b1 Removing instruction jmp b7 @@ -16628,6 +17826,8 @@ 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 b2 Removing instruction jmp breturn Removing instruction jmp b1 @@ -16709,6 +17909,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 @@ -16731,7 +17933,7 @@ Succesful ASM optimization Pass5UnnecesaryLoadElimination Replacing label b1 with b4 Replacing label b1_from_b28 with b4 Replacing label b1 with b4 -Replacing label b3_from_b3 with b3 +Replacing label b1_from_render_bcd with b1 Replacing label b1_from_b3 with b1 Replacing label b4_from_b5 with b4 Replacing label b3_from_b5 with b3 @@ -16747,6 +17949,7 @@ 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 b2_from_b3 with b2 Replacing label b18_from_b2 with b18 Replacing label b2_from_b3 with b2 Replacing label b4_from_b9 with b4 @@ -16771,12 +17974,12 @@ Replacing label b1_from_b7 with b1 Replacing label b6_from_b5 with b6 Replacing label b5_from_b13 with b5 Removing instruction b14: -Removing instruction b21: -Removing instruction toSpritePtr1_from_b22: +Removing instruction b22: +Removing instruction toSpritePtr1_from_b23: Removing instruction toSpritePtr1: -Removing instruction b34_from_b35: -Removing instruction main_from_b34: -Removing instruction bend_from_b34: +Removing instruction b35_from_b36: +Removing instruction main_from_b35: +Removing instruction bend_from_b35: Removing instruction b16_from_b15: Removing instruction b17_from_b16: Removing instruction b18_from_b17: @@ -16793,10 +17996,10 @@ Removing instruction keyboard_event_scan_from_b23: Removing instruction b24_from_b23: Removing instruction b30_from_b29: Removing instruction b31_from_b30: -Removing instruction b4_from_render_score: -Removing instruction b2_from_b4: -Removing instruction b3_from_b2: -Removing instruction b3_from_b3: +Removing instruction b3_from_render_score: +Removing instruction b2_from_b3: +Removing instruction b1_from_render_bcd: +Removing instruction b1_from_b2: Removing instruction b1_from_b3: Removing instruction b3_from_b5: Removing instruction b3_from_b7: @@ -16824,6 +18027,8 @@ Removing instruction b21_from_b20: Removing instruction play_spawn_current_from_b21: Removing instruction breturn_from_b7: Removing instruction b2_from_b1: +Removing instruction b2_from_b3: +Removing instruction b2_from_b4: Removing instruction breturn_from_play_update_score: Removing instruction breturn_from_b2: Removing instruction b1_from_b4: @@ -16880,9 +18085,9 @@ Removing instruction breturn: Removing instruction toSpritePtr2_from_b4: Removing instruction toSpritePtr2: Succesful ASM optimization Pass5RedundantLabelElimination -Removing instruction b22: +Removing instruction b23: +Removing instruction b36: Removing instruction b35: -Removing instruction b34: Removing instruction bend: Removing instruction b15: Removing instruction render_init_from_b15: @@ -16909,7 +18114,20 @@ Removing instruction b30: Removing instruction b31: Removing instruction b1_from_b31: Removing instruction breturn: -Removing instruction b4: +Removing instruction b3: +Removing instruction render_bcd_from_b2: +Removing instruction b5: +Removing instruction render_bcd_from_b5: +Removing instruction b6: +Removing instruction render_bcd_from_b6: +Removing instruction b7: +Removing instruction render_bcd_from_b7: +Removing instruction b8: +Removing instruction render_bcd_from_b8: +Removing instruction b9: +Removing instruction render_bcd_from_b9: +Removing instruction breturn: +Removing instruction b2: Removing instruction breturn: Removing instruction b1_from_render_current: Removing instruction breturn: @@ -16964,7 +18182,8 @@ Removing instruction breturn: Removing instruction b7: Removing instruction b1_from_b7: Removing instruction breturn: -Removing instruction b2: +Removing instruction b3: +Removing instruction b4: Removing instruction b1_from_play_remove_lines: Removing instruction b3_from_b2: Removing instruction b9: @@ -17035,7 +18254,6 @@ Relabelling long label b9_from_b26 to b2 Relabelling long label b4_from_b25 to b6 Succesful ASM optimization Pass5RelabelLongLabels Removing instruction jmp b4 -Removing instruction jmp b3 Removing instruction jmp b1 Removing instruction jmp b4 Removing instruction jmp b1 @@ -17058,10 +18276,10 @@ Succesful ASM optimization Pass5UnreachableCodeElimination FINAL SYMBOL TABLE (label) @14 -(label) @21 (label) @22 -(label) @34 +(label) @23 (label) @35 +(label) @36 (label) @begin (label) @end (byte*) BGCOL @@ -17345,77 +18563,77 @@ FINAL SYMBOL TABLE (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_orientation -(byte) current_orientation#10 current_orientation zp ZP_BYTE:21 3.371428571428571 -(byte) current_orientation#14 current_orientation zp ZP_BYTE:21 0.32653061224489793 -(byte) current_orientation#19 current_orientation zp ZP_BYTE:21 6.210526315789475 -(byte) current_orientation#29 current_orientation zp ZP_BYTE:21 4.0 -(byte) current_orientation#4 current_orientation zp ZP_BYTE:21 3.0 +(byte) current_orientation#10 current_orientation zp ZP_BYTE:25 3.371428571428571 +(byte) current_orientation#14 current_orientation zp ZP_BYTE:25 0.32653061224489793 +(byte) current_orientation#19 current_orientation zp ZP_BYTE:25 6.210526315789475 +(byte) current_orientation#29 current_orientation zp ZP_BYTE:25 4.0 +(byte) current_orientation#4 current_orientation zp ZP_BYTE:25 3.0 (byte*) current_piece -(byte*) current_piece#10 current_piece zp ZP_WORD:19 1.771428571428571 +(byte*) current_piece#10 current_piece zp ZP_WORD:23 1.771428571428571 (byte*) current_piece#12 current_piece#12 zp ZP_WORD:5 10.0 -(byte*) current_piece#16 current_piece zp ZP_WORD:19 3.428571428571428 -(byte*) current_piece#20 current_piece zp ZP_WORD:19 6.0 -(byte*~) current_piece#73 current_piece zp ZP_WORD:19 4.0 +(byte*) current_piece#16 current_piece zp ZP_WORD:23 3.428571428571428 +(byte*) current_piece#20 current_piece zp ZP_WORD:23 6.0 +(byte*~) current_piece#73 current_piece zp ZP_WORD:23 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:19 4.0 +(byte*~) current_piece#80 current_piece zp ZP_WORD:23 4.0 (byte) current_piece_char -(byte) current_piece_char#1 current_piece_char zp ZP_BYTE:25 4.379310344827585 -(byte) current_piece_char#12 current_piece_char zp ZP_BYTE:25 0.6153846153846154 -(byte) current_piece_char#15 current_piece_char zp ZP_BYTE:25 194.59615384615384 -(byte) current_piece_char#20 current_piece_char zp ZP_BYTE:25 6.0 +(byte) current_piece_char#1 current_piece_char zp ZP_BYTE:29 4.379310344827585 +(byte) current_piece_char#12 current_piece_char zp ZP_BYTE:29 0.6153846153846154 +(byte) current_piece_char#15 current_piece_char zp ZP_BYTE:29 194.59615384615384 +(byte) current_piece_char#20 current_piece_char zp ZP_BYTE:29 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:22 0.2962962962962963 +(byte*) current_piece_gfx#1 current_piece_gfx zp ZP_WORD:26 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:22 6.789473684210528 -(byte*) current_piece_gfx#16 current_piece_gfx zp ZP_WORD:22 0.5 -(byte*) current_piece_gfx#20 current_piece_gfx zp ZP_WORD:22 194.59615384615384 -(byte*) current_piece_gfx#26 current_piece_gfx zp ZP_WORD:22 6.0 -(byte*) current_piece_gfx#3 current_piece_gfx zp ZP_WORD:22 4.0 +(byte*) current_piece_gfx#14 current_piece_gfx zp ZP_WORD:26 6.789473684210528 +(byte*) current_piece_gfx#16 current_piece_gfx zp ZP_WORD:26 0.5 +(byte*) current_piece_gfx#20 current_piece_gfx zp ZP_WORD:26 194.59615384615384 +(byte*) current_piece_gfx#26 current_piece_gfx zp ZP_WORD:26 6.0 +(byte*) current_piece_gfx#3 current_piece_gfx zp ZP_WORD:26 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:24 0.72 -(byte) current_xpos#10 current_xpos zp ZP_BYTE:24 21.557692307692307 -(byte~) current_xpos#112 current_xpos#112 zp ZP_BYTE:8 1.3333333333333333 -(byte~) current_xpos#113 current_xpos#113 zp ZP_BYTE:8 7.333333333333333 -(byte) current_xpos#19 current_xpos zp ZP_BYTE:24 3.139534883720931 -(byte) current_xpos#2 current_xpos zp ZP_BYTE:24 4.0 -(byte) current_xpos#23 current_xpos zp ZP_BYTE:24 0.5333333333333333 -(byte) current_xpos#33 current_xpos zp ZP_BYTE:24 6.0 -(byte) current_xpos#4 current_xpos zp ZP_BYTE:24 4.0 -(byte) current_xpos#47 current_xpos#47 zp ZP_BYTE:8 5.181818181818182 +(byte) current_xpos#1 current_xpos zp ZP_BYTE:28 0.72 +(byte) current_xpos#10 current_xpos zp ZP_BYTE:28 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:28 3.139534883720931 +(byte) current_xpos#2 current_xpos zp ZP_BYTE:28 4.0 +(byte) current_xpos#23 current_xpos zp ZP_BYTE:28 0.5333333333333333 +(byte) current_xpos#33 current_xpos zp ZP_BYTE:28 6.0 +(byte) current_xpos#4 current_xpos zp ZP_BYTE:28 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:14 4.0 -(byte) current_ypos#13 current_ypos zp ZP_BYTE:14 1.8999999999999995 -(byte) current_ypos#18 current_ypos zp ZP_BYTE:14 0.5714285714285714 -(byte) current_ypos#21 current_ypos zp ZP_BYTE:14 3.485714285714285 -(byte) current_ypos#29 current_ypos zp ZP_BYTE:14 6.0 +(byte) current_ypos#0 current_ypos zp ZP_BYTE:16 4.0 +(byte) current_ypos#13 current_ypos zp ZP_BYTE:16 1.8999999999999995 +(byte) current_ypos#18 current_ypos zp ZP_BYTE:16 0.5714285714285714 +(byte) current_ypos#21 current_ypos zp ZP_BYTE:16 3.485714285714285 +(byte) current_ypos#29 current_ypos zp ZP_BYTE:16 6.0 (byte~) current_ypos#86 reg byte y 1.0 (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:33 0.19047619047619047 -(byte) irq_cnt#1 irq_cnt zp ZP_BYTE:33 4.0 -(byte) irq_cnt#14 irq_cnt zp ZP_BYTE:33 20.0 +(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_raster_next -(byte) irq_raster_next#0 irq_raster_next zp ZP_BYTE:29 0.17391304347826086 -(byte) irq_raster_next#1 irq_raster_next zp ZP_BYTE:29 1.0 -(byte) irq_raster_next#13 irq_raster_next zp ZP_BYTE:29 6.0 -(byte) irq_raster_next#2 irq_raster_next zp ZP_BYTE:29 1.3333333333333333 +(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_sprite_ptr -(byte) irq_sprite_ptr#0 irq_sprite_ptr zp ZP_BYTE:32 0.24 -(byte) irq_sprite_ptr#1 irq_sprite_ptr zp ZP_BYTE:32 20.0 -(byte) irq_sprite_ptr#2 irq_sprite_ptr zp ZP_BYTE:32 20.0 +(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_ypos -(byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:31 0.7083333333333334 -(byte) irq_sprite_ypos#1 irq_sprite_ypos zp ZP_BYTE:31 20.0 -(byte) irq_sprite_ypos#2 irq_sprite_ypos zp ZP_BYTE:31 20.0 +(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[]) keyboard_char_keycodes (byte()) keyboard_event_get() (label) keyboard_event_get::@3 @@ -17429,7 +18647,7 @@ FINAL SYMBOL TABLE (byte~) keyboard_event_pressed::$1 reg byte a 4.0 (label) keyboard_event_pressed::@return (byte) keyboard_event_pressed::keycode -(byte) keyboard_event_pressed::keycode#5 keycode zp ZP_BYTE:7 1.3333333333333333 +(byte) keyboard_event_pressed::keycode#5 keycode zp ZP_BYTE:9 1.3333333333333333 (byte) keyboard_event_pressed::return (byte) keyboard_event_pressed::return#0 reg byte a 4.0 (byte) keyboard_event_pressed::return#1 reg byte a 4.0 @@ -17438,7 +18656,7 @@ FINAL SYMBOL TABLE (byte) keyboard_event_pressed::return#12 reg byte a 4.0 (byte) keyboard_event_pressed::return#2 reg byte a 4.0 (byte) keyboard_event_pressed::row_bits -(byte) keyboard_event_pressed::row_bits#0 row_bits zp ZP_BYTE:8 2.0 +(byte) keyboard_event_pressed::row_bits#0 row_bits zp ZP_BYTE:10 2.0 (void()) keyboard_event_scan() (byte/word/dword~) keyboard_event_scan::$11 reg byte a 20002.0 (byte~) keyboard_event_scan::$14 reg byte a 4.0 @@ -17477,28 +18695,28 @@ FINAL SYMBOL TABLE (byte) keyboard_event_scan::event_type (byte) keyboard_event_scan::event_type#0 reg byte a 20002.0 (byte) keyboard_event_scan::keycode -(byte) keyboard_event_scan::keycode#1 keycode zp ZP_BYTE:8 2002.0 -(byte) keyboard_event_scan::keycode#10 keycode zp ZP_BYTE:8 3154.230769230769 -(byte) keyboard_event_scan::keycode#11 keycode zp ZP_BYTE:8 500.5 -(byte) keyboard_event_scan::keycode#14 keycode zp ZP_BYTE:8 1001.0 -(byte) keyboard_event_scan::keycode#15 keycode zp ZP_BYTE:8 5250.75 +(byte) keyboard_event_scan::keycode#1 keycode zp ZP_BYTE:10 2002.0 +(byte) keyboard_event_scan::keycode#10 keycode zp ZP_BYTE:10 3154.230769230769 +(byte) keyboard_event_scan::keycode#11 keycode zp ZP_BYTE:10 500.5 +(byte) keyboard_event_scan::keycode#14 keycode zp ZP_BYTE:10 1001.0 +(byte) keyboard_event_scan::keycode#15 keycode zp ZP_BYTE:10 5250.75 (byte) keyboard_event_scan::row -(byte) keyboard_event_scan::row#1 row zp ZP_BYTE:7 1501.5 -(byte) keyboard_event_scan::row#2 row zp ZP_BYTE:7 600.24 +(byte) keyboard_event_scan::row#1 row zp ZP_BYTE:9 1501.5 +(byte) keyboard_event_scan::row#2 row zp ZP_BYTE:9 600.24 (byte) keyboard_event_scan::row_scan -(byte) keyboard_event_scan::row_scan#0 row_scan zp ZP_BYTE:9 1278.0555555555554 +(byte) keyboard_event_scan::row_scan#0 row_scan zp ZP_BYTE:11 1278.0555555555554 (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:26 20002.0 -(byte) keyboard_events_size#10 keyboard_events_size zp ZP_BYTE:26 8100.9000000000015 -(byte) keyboard_events_size#13 keyboard_events_size zp ZP_BYTE:26 97.06451612903226 -(byte) keyboard_events_size#16 keyboard_events_size zp ZP_BYTE:26 3.515151515151515 -(byte) keyboard_events_size#19 keyboard_events_size zp ZP_BYTE:26 18.999999999999996 -(byte) keyboard_events_size#2 keyboard_events_size zp ZP_BYTE:26 20002.0 -(byte) keyboard_events_size#29 keyboard_events_size zp ZP_BYTE:26 429.2857142857143 -(byte) keyboard_events_size#30 keyboard_events_size zp ZP_BYTE:26 10201.2 -(byte) keyboard_events_size#4 keyboard_events_size zp ZP_BYTE:26 3.0 +(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[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) @@ -17520,6 +18738,19 @@ 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_bcd +(byte) level_bcd#10 level_bcd zp ZP_BYTE:30 2.313725490196078 +(byte) level_bcd#12 level_bcd zp ZP_BYTE:30 1.0 +(byte) level_bcd#14 level_bcd zp ZP_BYTE:30 2.30188679245283 +(byte) level_bcd#19 level_bcd zp ZP_BYTE:30 6.0 +(byte) level_bcd#22 level_bcd zp ZP_BYTE:30 3.0 +(byte) level_bcd#3 level_bcd zp ZP_BYTE:30 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.0 +(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 0.75 (void()) main() (byte~) main::$12 reg byte a 202.0 (byte~) main::$13 reg byte a 202.0 @@ -17545,10 +18776,10 @@ FINAL SYMBOL TABLE (label) main::@4 (label) main::@6 (byte) main::key_event -(byte) main::key_event#0 key_event zp ZP_BYTE:13 36.72727272727273 +(byte) main::key_event#0 key_event zp ZP_BYTE:15 36.72727272727273 (byte) main::render -(byte) main::render#1 render zp ZP_BYTE:34 40.4 -(byte) main::render#2 render zp ZP_BYTE:34 40.4 +(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#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 @@ -17567,18 +18798,18 @@ FINAL SYMBOL TABLE (byte) play_collision::c#1 reg byte x 10001.0 (byte) play_collision::c#2 reg byte x 2222.4444444444443 (byte) play_collision::col -(byte) play_collision::col#1 col zp ZP_BYTE:12 5000.5 -(byte) play_collision::col#2 col zp ZP_BYTE:12 6375.75 -(byte~) play_collision::col#9 col zp ZP_BYTE:12 2002.0 +(byte) play_collision::col#1 col zp ZP_BYTE:14 5000.5 +(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:35 1615.6153846153845 -(byte~) play_collision::i#11 i#11 zp ZP_BYTE:11 2002.0 -(byte~) play_collision::i#13 i#13 zp ZP_BYTE:11 20002.0 -(byte) play_collision::i#2 i#2 zp ZP_BYTE:11 15502.0 -(byte) play_collision::i#3 i#3 zp ZP_BYTE:11 667.3333333333334 +(byte) play_collision::i#1 i zp ZP_BYTE:38 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 +(byte) play_collision::i#3 i#3 zp ZP_BYTE:13 667.3333333333334 (byte) play_collision::l -(byte) play_collision::l#1 l zp ZP_BYTE:10 1001.0 -(byte) play_collision::l#6 l zp ZP_BYTE:10 125.125 +(byte) play_collision::l#1 l zp ZP_BYTE:12 1001.0 +(byte) play_collision::l#6 l zp ZP_BYTE:12 125.125 (byte) play_collision::orientation (byte) play_collision::orientation#0 reg byte x 2.0 (byte) play_collision::orientation#1 reg byte x 2.0 @@ -17588,7 +18819,7 @@ FINAL SYMBOL TABLE (byte*) play_collision::piece_gfx (byte*) play_collision::piece_gfx#0 piece_gfx zp ZP_WORD:5 476.3333333333333 (byte*) play_collision::playfield_line -(byte*) play_collision::playfield_line#0 playfield_line zp ZP_WORD:27 785.8571428571429 +(byte*) play_collision::playfield_line#0 playfield_line zp ZP_WORD:7 785.8571428571429 (byte) play_collision::return (byte) play_collision::return#0 reg byte a 4.0 (byte) play_collision::return#1 reg byte a 4.0 @@ -17596,11 +18827,11 @@ FINAL SYMBOL TABLE (byte) play_collision::return#13 reg byte a 4.0 (byte) play_collision::return#14 reg byte a 1.3333333333333333 (byte) play_collision::xpos -(byte) play_collision::xpos#0 xpos zp ZP_BYTE:8 1.3333333333333333 -(byte) play_collision::xpos#1 xpos zp ZP_BYTE:8 1.0 -(byte) play_collision::xpos#2 xpos zp ZP_BYTE:8 1.0 -(byte) play_collision::xpos#3 xpos zp ZP_BYTE:8 1.0 -(byte) play_collision::xpos#5 xpos zp ZP_BYTE:8 45.86363636363637 +(byte) play_collision::xpos#0 xpos zp ZP_BYTE:10 1.3333333333333333 +(byte) play_collision::xpos#1 xpos zp ZP_BYTE:10 1.0 +(byte) play_collision::xpos#2 xpos zp ZP_BYTE:10 1.0 +(byte) play_collision::xpos#3 xpos zp ZP_BYTE:10 1.0 +(byte) play_collision::xpos#5 xpos zp ZP_BYTE:10 45.86363636363637 (byte) play_collision::ypos (byte) play_collision::ypos#0 reg byte y 1.0 (byte) play_collision::ypos#1 reg byte y 1.3333333333333333 @@ -17608,9 +18839,9 @@ FINAL SYMBOL TABLE (byte) play_collision::ypos#3 reg byte y 1.3333333333333333 (byte) play_collision::ypos#4 reg byte y 5.0 (byte) play_collision::ypos2 -(byte) play_collision::ypos2#0 ypos2 zp ZP_BYTE:9 4.0 -(byte) play_collision::ypos2#1 ypos2 zp ZP_BYTE:9 500.5 -(byte) play_collision::ypos2#2 ypos2 zp ZP_BYTE:9 867.0666666666667 +(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_init() (byte~) play_init::$1 reg byte a 22.0 (label) play_init::@1 @@ -17638,24 +18869,24 @@ FINAL SYMBOL TABLE (byte) play_lock_current::c#1 reg byte x 10001.0 (byte) play_lock_current::c#2 reg byte x 4000.4 (byte) play_lock_current::col -(byte) play_lock_current::col#0 col zp ZP_BYTE:8 2002.0 -(byte) play_lock_current::col#1 col zp ZP_BYTE:8 5000.5 -(byte) play_lock_current::col#2 col zp ZP_BYTE:8 7751.0 +(byte) play_lock_current::col#0 col zp ZP_BYTE:10 2002.0 +(byte) play_lock_current::col#1 col zp ZP_BYTE:10 5000.5 +(byte) play_lock_current::col#2 col zp ZP_BYTE:10 7751.0 (byte) play_lock_current::i -(byte) play_lock_current::i#1 i zp ZP_BYTE:9 2333.6666666666665 -(byte) play_lock_current::i#2 i#2 zp ZP_BYTE:7 15502.0 -(byte) play_lock_current::i#3 i#3 zp ZP_BYTE:7 667.3333333333334 -(byte~) play_lock_current::i#7 i#7 zp ZP_BYTE:7 2002.0 -(byte~) play_lock_current::i#9 i#9 zp ZP_BYTE:7 20002.0 +(byte) play_lock_current::i#1 i zp ZP_BYTE:11 2333.6666666666665 +(byte) play_lock_current::i#2 i#2 zp ZP_BYTE:9 15502.0 +(byte) play_lock_current::i#3 i#3 zp ZP_BYTE:9 667.3333333333334 +(byte~) play_lock_current::i#7 i#7 zp ZP_BYTE:9 2002.0 +(byte~) play_lock_current::i#9 i#9 zp ZP_BYTE:9 20002.0 (byte) play_lock_current::l (byte) play_lock_current::l#1 l zp ZP_BYTE:4 1001.0 (byte) play_lock_current::l#6 l zp ZP_BYTE:4 166.83333333333334 (byte*) play_lock_current::playfield_line (byte*) play_lock_current::playfield_line#0 playfield_line zp ZP_WORD:5 1100.2 (byte) play_lock_current::ypos2 -(byte) play_lock_current::ypos2#0 ypos2 zp ZP_BYTE:14 4.0 -(byte) play_lock_current::ypos2#1 ypos2 zp ZP_BYTE:14 500.5 -(byte) play_lock_current::ypos2#2 ypos2 zp ZP_BYTE:14 273.1818181818182 +(byte) play_lock_current::ypos2#0 ypos2 zp ZP_BYTE:16 4.0 +(byte) play_lock_current::ypos2#1 ypos2 zp ZP_BYTE:16 500.5 +(byte) play_lock_current::ypos2#2 ypos2 zp ZP_BYTE:16 273.1818181818182 (byte()) play_move_down((byte) play_move_down::key_event) (byte~) play_move_down::$12 reg byte a 4.0 (byte~) play_move_down::$2 reg byte a 4.0 @@ -17719,9 +18950,9 @@ FINAL SYMBOL TABLE (byte) play_move_rotate::key_event (byte) play_move_rotate::key_event#0 reg byte a 52.5 (byte) play_move_rotate::orientation -(byte) play_move_rotate::orientation#1 orientation zp ZP_BYTE:7 4.0 -(byte) play_move_rotate::orientation#2 orientation zp ZP_BYTE:7 4.0 -(byte) play_move_rotate::orientation#3 orientation zp ZP_BYTE:7 0.8888888888888888 +(byte) play_move_rotate::orientation#1 orientation zp ZP_BYTE:9 4.0 +(byte) play_move_rotate::orientation#2 orientation zp ZP_BYTE:9 4.0 +(byte) play_move_rotate::orientation#3 orientation zp ZP_BYTE:9 0.8888888888888888 (byte) play_move_rotate::return (byte) play_move_rotate::return#1 reg byte a 33.666666666666664 (byte) play_move_rotate::return#4 reg byte a 202.0 @@ -17737,18 +18968,18 @@ FINAL SYMBOL TABLE (label) play_remove_lines::@9 (label) play_remove_lines::@return (byte) play_remove_lines::c -(byte) play_remove_lines::c#0 c zp ZP_BYTE:10 6000.6 +(byte) play_remove_lines::c#0 c zp ZP_BYTE:12 6000.6 (byte) play_remove_lines::full -(byte) play_remove_lines::full#2 full zp ZP_BYTE:9 4200.6 -(byte) play_remove_lines::full#4 full zp ZP_BYTE:9 4000.4 +(byte) play_remove_lines::full#2 full zp ZP_BYTE:11 4200.6 +(byte) play_remove_lines::full#4 full zp ZP_BYTE:11 4000.4 (byte) play_remove_lines::r (byte) play_remove_lines::r#1 reg byte y 1500.2142857142858 (byte) play_remove_lines::r#2 reg byte y 15502.0 (byte) play_remove_lines::r#3 reg byte y 2002.0 (byte) play_remove_lines::removed -(byte) play_remove_lines::removed#1 removed zp ZP_BYTE:7 2002.0 -(byte) play_remove_lines::removed#11 removed zp ZP_BYTE:7 231.0 -(byte) play_remove_lines::removed#7 removed zp ZP_BYTE:7 333.8888888888889 +(byte) play_remove_lines::removed#1 removed zp ZP_BYTE:9 2002.0 +(byte) play_remove_lines::removed#11 removed zp ZP_BYTE:9 231.0 +(byte) play_remove_lines::removed#7 removed zp ZP_BYTE:9 333.8888888888889 (byte) play_remove_lines::return (byte) play_remove_lines::return#0 reg byte a 4.0 (byte) play_remove_lines::w @@ -17760,8 +18991,8 @@ FINAL SYMBOL TABLE (byte) play_remove_lines::w#4 reg byte x 4429.142857142857 (byte) play_remove_lines::w#6 reg byte x 1668.3333333333335 (byte) play_remove_lines::x -(byte) play_remove_lines::x#1 x zp ZP_BYTE:8 15001.5 -(byte) play_remove_lines::x#2 x zp ZP_BYTE:8 2500.25 +(byte) play_remove_lines::x#1 x zp ZP_BYTE:10 15001.5 +(byte) play_remove_lines::x#2 x zp ZP_BYTE:10 2500.25 (byte) play_remove_lines::y (byte) play_remove_lines::y#1 y zp ZP_BYTE:4 1501.5 (byte) play_remove_lines::y#8 y zp ZP_BYTE:4 133.46666666666667 @@ -17778,18 +19009,61 @@ FINAL SYMBOL TABLE (byte) play_spawn_current::piece_idx#2 reg byte x 334.99999999999994 (void()) play_update_score((byte) play_update_score::removed) (byte~) play_update_score::$2 reg byte a 4.0 +(byte~) play_update_score::$3 reg byte a 4.0 +(byte~) play_update_score::$5 reg byte a 4.0 (label) play_update_score::@2 +(label) play_update_score::@3 +(label) play_update_score::@4 (label) play_update_score::@return (dword) play_update_score::add_bcd -(dword) play_update_score::add_bcd#0 add_bcd zp ZP_DWORD:36 2.0 +(dword) play_update_score::add_bcd#0 add_bcd zp ZP_DWORD:39 0.8 +(byte) play_update_score::lines_after +(byte) play_update_score::lines_after#0 reg byte a 4.0 +(byte) play_update_score::lines_before +(byte) play_update_score::lines_before#0 lines_before zp ZP_BYTE:4 0.6666666666666666 (byte) play_update_score::removed -(byte) play_update_score::removed#0 reg byte a 3.0 +(byte) play_update_score::removed#0 reg byte x 1.1428571428571428 (byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 playfield = { fill( PLAYFIELD_LINES#0*PLAYFIELD_COLS#0, 0) } (byte*[PLAYFIELD_LINES#0]) playfield_lines (const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 playfield_lines = { fill( PLAYFIELD_LINES#0, 0) } (byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx (const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 playfield_lines_idx = { fill( PLAYFIELD_LINES#0+1, 0) } +(void()) render_bcd((byte*) render_bcd::screen , (word) render_bcd::offset , (byte) render_bcd::bcd , (byte) render_bcd::only_low) +(byte~) render_bcd::$3 reg byte a 4.0 +(byte~) render_bcd::$4 reg byte a 4.0 +(byte~) render_bcd::$5 reg byte a 4.0 +(byte~) render_bcd::$6 reg byte a 4.0 +(label) render_bcd::@1 +(label) render_bcd::@2 +(label) render_bcd::@return +(byte) render_bcd::ZERO_CHAR +(const byte) render_bcd::ZERO_CHAR#0 ZERO_CHAR = (byte/signed byte/word/signed word/dword/signed dword) 51 +(byte) render_bcd::bcd +(byte) render_bcd::bcd#0 reg byte x 4.0 +(byte) render_bcd::bcd#1 reg byte x 4.0 +(byte) render_bcd::bcd#2 reg byte x 4.0 +(byte) render_bcd::bcd#3 reg byte x 2.0 +(byte) render_bcd::bcd#4 reg byte x 2.0 +(byte) render_bcd::bcd#5 reg byte x 4.0 +(byte) render_bcd::bcd#6 reg byte x 2.0 +(word) render_bcd::offset +(word) render_bcd::offset#6 offset zp ZP_WORD:7 2.0 +(byte) render_bcd::only_low +(byte) render_bcd::only_low#6 reg byte y 1.0 +(byte*) render_bcd::screen +(byte*) render_bcd::screen#0 screen zp ZP_WORD:5 2.0 +(byte*) render_bcd::screen#1 screen zp ZP_WORD:5 2.0 +(byte*) render_bcd::screen#2 screen zp ZP_WORD:5 2.0 +(byte*) render_bcd::screen#3 screen zp ZP_WORD:5 4.0 +(byte*) render_bcd::screen#4 screen zp ZP_WORD:5 4.0 +(byte*) render_bcd::screen#5 screen zp ZP_WORD:5 2.0 +(byte*) render_bcd::screen#6 screen zp ZP_WORD:5 14.0 +(byte*) render_bcd::screen_pos +(byte*) render_bcd::screen_pos#0 screen_pos zp ZP_WORD:7 1.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 @@ -17803,29 +19077,29 @@ FINAL SYMBOL TABLE (label) render_current::@9 (label) render_current::@return (byte) render_current::c -(byte) render_current::c#1 c zp ZP_BYTE:13 1501.5 -(byte) render_current::c#2 c zp ZP_BYTE:13 286.0 +(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:11 202.0 -(byte) render_current::i#10 i zp ZP_BYTE:11 429.0 -(byte) render_current::i#3 i zp ZP_BYTE:11 50.5 -(byte) render_current::i#4 i zp ZP_BYTE:11 1552.0 -(byte) render_current::i#8 i zp ZP_BYTE:11 300.75 +(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:10 151.5 -(byte) render_current::l#4 l zp ZP_BYTE:10 11.222222222222221 +(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:27 100.18181818181819 +(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:12 202.0 -(byte) render_current::xpos#1 xpos zp ZP_BYTE:12 667.3333333333334 -(byte) render_current::xpos#2 xpos zp ZP_BYTE:12 684.1666666666667 +(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:9 4.0 -(byte) render_current::ypos2#1 ypos2 zp ZP_BYTE:9 67.33333333333333 -(byte) render_current::ypos2#2 ypos2 zp ZP_BYTE:9 29.823529411764707 +(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 @@ -17840,8 +19114,8 @@ FINAL SYMBOL TABLE (byte*) render_init::li_1#1 li_1 zp ZP_WORD:5 5.5 (byte*) render_init::li_1#2 li_1 zp ZP_WORD:5 6.6000000000000005 (byte*) render_init::li_2 -(byte*) render_init::li_2#1 li_2 zp ZP_WORD:19 7.333333333333333 -(byte*) render_init::li_2#2 li_2 zp ZP_WORD:19 5.5 +(byte*) render_init::li_2#1 li_2 zp ZP_WORD:7 7.333333333333333 +(byte*) render_init::li_2#2 li_2 zp ZP_WORD:7 5.5 (label) render_init::vicSelectGfxBank1 (byte~) render_init::vicSelectGfxBank1_$0 (label) render_init::vicSelectGfxBank1_@1 @@ -17862,46 +19136,38 @@ FINAL SYMBOL TABLE (label) render_playfield::@3 (label) render_playfield::@return (byte) render_playfield::c -(byte) render_playfield::c#1 c zp ZP_BYTE:9 1501.5 -(byte) render_playfield::c#2 c zp ZP_BYTE:9 500.5 +(byte) render_playfield::c#1 c zp ZP_BYTE:11 1501.5 +(byte) render_playfield::c#2 c zp ZP_BYTE:11 500.5 (byte) render_playfield::i -(byte) render_playfield::i#1 i zp ZP_BYTE:8 420.59999999999997 -(byte) render_playfield::i#2 i zp ZP_BYTE:8 1034.6666666666667 -(byte) render_playfield::i#3 i zp ZP_BYTE:8 50.5 +(byte) render_playfield::i#1 i zp ZP_BYTE:10 420.59999999999997 +(byte) render_playfield::i#2 i zp ZP_BYTE:10 1034.6666666666667 +(byte) render_playfield::i#3 i zp ZP_BYTE:10 50.5 (byte) render_playfield::l -(byte) render_playfield::l#1 l zp ZP_BYTE:7 151.5 -(byte) render_playfield::l#2 l zp ZP_BYTE:7 30.299999999999997 +(byte) render_playfield::l#1 l zp ZP_BYTE:9 151.5 +(byte) render_playfield::l#2 l zp ZP_BYTE:9 30.299999999999997 (byte*) render_playfield::screen_line (byte*) render_playfield::screen_line#0 screen_line zp ZP_WORD:5 202.0 (byte*) render_playfield::screen_line#1 screen_line zp ZP_WORD:5 500.5 (byte*) render_playfield::screen_line#2 screen_line zp ZP_WORD:5 1552.0 (void()) render_score() -(byte~) render_score::$10 reg byte a 202.0 -(byte~) render_score::$11 reg byte a 202.0 -(byte~) render_score::$12 reg byte a 202.0 -(byte~) render_score::$9 reg byte a 202.0 (label) render_score::@2 (label) render_score::@3 -(label) render_score::@4 +(label) render_score::@5 +(label) render_score::@6 +(label) render_score::@7 +(label) render_score::@8 +(label) render_score::@9 (label) render_score::@return -(byte) render_score::SCREEN_SCORE_COL -(const byte) render_score::SCREEN_SCORE_COL#0 SCREEN_SCORE_COL = (byte/signed byte/word/signed word/dword/signed dword) 33 -(byte) render_score::SCREEN_SCORE_ROW -(const byte) render_score::SCREEN_SCORE_ROW#0 SCREEN_SCORE_ROW = (byte/signed byte/word/signed word/dword/signed dword) 5 -(byte) render_score::ZERO_CHAR -(const byte) render_score::ZERO_CHAR#0 ZERO_CHAR = (byte/signed byte/word/signed word/dword/signed dword) 51 -(byte) render_score::b -(byte) render_score::b#1 reg byte x 151.5 -(byte) render_score::b#2 reg byte x 30.299999999999997 -(byte) render_score::score_byte -(byte) render_score::score_byte#0 score_byte zp ZP_BYTE:7 60.599999999999994 +(word) render_score::level_offset +(const word) render_score::level_offset#0 level_offset = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 19+(byte/signed byte/word/signed word/dword/signed dword) 31 +(word) render_score::lines_offset +(const word) render_score::lines_offset#0 lines_offset = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 22 (byte*) render_score::score_bytes (const byte*) render_score::score_bytes#0 score_bytes = ((byte*))&(dword) score_bcd#10 -(byte*) render_score::screen_score_pos -(byte*) render_score::screen_score_pos#2 screen_score_pos zp ZP_WORD:5 75.75 -(byte*) render_score::screen_score_pos#3 screen_score_pos zp ZP_WORD:5 67.33333333333333 -(byte*) render_score::screen_score_pos#4 screen_score_pos zp ZP_WORD:5 61.0 -(byte*) render_score::screen_score_pos#5 screen_score_pos zp ZP_WORD:5 2.0 +(word) render_score::score_offset +(const word) render_score::score_offset#0 score_offset = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5+(byte/signed byte/word/signed word/dword/signed dword) 28 +(byte*) render_score::screen +(byte*) render_score::screen#2 screen zp ZP_WORD:5 0.75 (void()) render_screen_original((byte*) render_screen_original::screen) (label) render_screen_original::@1 (label) render_screen_original::@2 @@ -17912,30 +19178,30 @@ 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:27 101.0 -(byte*) render_screen_original::cols#2 cols zp ZP_WORD:27 75.75 -(byte*) render_screen_original::cols#3 cols zp ZP_WORD:27 42.599999999999994 -(byte*) render_screen_original::cols#4 cols zp ZP_WORD:27 78.5 -(byte*) render_screen_original::cols#5 cols zp ZP_WORD:27 80.8 -(byte*) render_screen_original::cols#6 cols zp ZP_WORD:27 101.0 -(byte*) render_screen_original::cols#7 cols zp ZP_WORD:27 22.0 +(byte*) render_screen_original::cols#1 cols zp ZP_WORD:23 101.0 +(byte*) render_screen_original::cols#2 cols zp ZP_WORD:23 75.75 +(byte*) render_screen_original::cols#3 cols zp ZP_WORD:23 42.599999999999994 +(byte*) render_screen_original::cols#4 cols zp ZP_WORD:23 78.5 +(byte*) render_screen_original::cols#5 cols zp ZP_WORD:23 80.8 +(byte*) render_screen_original::cols#6 cols zp ZP_WORD:23 101.0 +(byte*) render_screen_original::cols#7 cols zp ZP_WORD:23 22.0 (byte*) render_screen_original::ocols -(byte*) render_screen_original::ocols#1 ocols zp ZP_WORD:19 17.75 -(byte*) render_screen_original::ocols#2 ocols zp ZP_WORD:19 67.33333333333333 -(byte*) render_screen_original::ocols#4 ocols zp ZP_WORD:19 14.0 +(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 +(byte*) render_screen_original::ocols#4 ocols zp ZP_WORD:7 14.0 (byte*) render_screen_original::oscr (byte*) render_screen_original::oscr#1 oscr zp ZP_WORD:5 14.2 (byte*) render_screen_original::oscr#2 oscr zp ZP_WORD:5 134.66666666666666 (byte*) render_screen_original::oscr#4 oscr zp ZP_WORD:5 14.0 (byte*) render_screen_original::screen -(byte*) render_screen_original::screen#10 screen zp ZP_WORD:22 30.42857142857143 -(byte*) render_screen_original::screen#2 screen zp ZP_WORD:22 60.599999999999994 -(byte*) render_screen_original::screen#3 screen zp ZP_WORD:22 43.285714285714285 -(byte*) render_screen_original::screen#5 screen zp ZP_WORD:22 157.0 -(byte*) render_screen_original::screen#6 screen zp ZP_WORD:22 202.0 -(byte*) render_screen_original::screen#7 screen zp ZP_WORD:22 202.0 -(byte*) render_screen_original::screen#8 screen zp ZP_WORD:22 24.0 -(byte*) render_screen_original::screen#9 screen zp ZP_WORD:22 2.0 +(byte*) render_screen_original::screen#10 screen zp ZP_WORD:17 30.42857142857143 +(byte*) render_screen_original::screen#2 screen zp ZP_WORD:17 60.599999999999994 +(byte*) render_screen_original::screen#3 screen zp ZP_WORD:17 43.285714285714285 +(byte*) render_screen_original::screen#5 screen zp ZP_WORD:17 157.0 +(byte*) render_screen_original::screen#6 screen zp ZP_WORD:17 202.0 +(byte*) render_screen_original::screen#7 screen zp ZP_WORD:17 202.0 +(byte*) render_screen_original::screen#8 screen zp ZP_WORD:17 24.0 +(byte*) render_screen_original::screen#9 screen zp ZP_WORD:17 2.0 (byte) render_screen_original::x (byte) render_screen_original::x#1 reg byte x 202.0 (byte) render_screen_original::x#2 reg byte x 202.0 @@ -17948,17 +19214,17 @@ FINAL SYMBOL TABLE (byte) render_screen_original::y#6 y zp ZP_BYTE:2 0.9166666666666666 (byte) render_screen_render (byte) render_screen_render#11 render_screen_render zp ZP_BYTE:3 3.25 -(byte) render_screen_render#17 render_screen_render zp ZP_BYTE:3 0.6981132075471699 +(byte) render_screen_render#17 render_screen_render zp ZP_BYTE:3 0.6271186440677967 (byte) render_screen_render#21 reg byte x 8.615384615384615 -(byte) render_screen_render#30 render_screen_render#30 zp ZP_BYTE:7 5.090909090909091 -(byte~) render_screen_render#64 render_screen_render#64 zp ZP_BYTE:7 5.5 +(byte) render_screen_render#30 render_screen_render#30 zp ZP_BYTE:9 5.090909090909091 +(byte~) render_screen_render#64 render_screen_render#64 zp ZP_BYTE:9 5.5 (byte~) render_screen_render#65 reg byte x 22.0 (byte) render_screen_show (byte) render_screen_show#13 render_screen_show zp ZP_BYTE:2 4.333333333333333 (byte) render_screen_show#16 render_screen_show zp ZP_BYTE:2 0.37777777777777777 (byte) render_screen_showing -(byte) render_screen_showing#0 render_screen_showing zp ZP_BYTE:30 0.5 -(byte) render_screen_showing#1 render_screen_showing zp ZP_BYTE:30 20.0 +(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 (void()) render_screen_swap() (label) render_screen_swap::@return (void()) render_show() @@ -17997,11 +19263,11 @@ FINAL SYMBOL TABLE (dword[]) score_add_bcd (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:15 4.0 -(dword) score_bcd#12 score_bcd zp ZP_DWORD:15 1.0 -(dword) score_bcd#14 score_bcd zp ZP_DWORD:15 2.608695652173914 -(dword) score_bcd#20 score_bcd zp ZP_DWORD:15 6.0 -(dword) score_bcd#3 score_bcd zp ZP_DWORD:15 2.0 +(dword) score_bcd#10 score_bcd zp ZP_DWORD:19 4.0 +(dword) score_bcd#12 score_bcd zp ZP_DWORD:19 1.0 +(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.5714285714285714 (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 @@ -18069,18 +19335,20 @@ interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 render_screen_original::y#6 render_screen_original::y#1 ] zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] -zp ZP_BYTE:4 [ current_movedown_counter#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 ] -reg byte x [ render_score::b#2 render_score::b#1 ] -zp ZP_WORD:5 [ render_score::screen_score_pos#4 render_score::screen_score_pos#5 render_score::screen_score_pos#3 render_score::screen_score_pos#2 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_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 ] +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:7 [ 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 render_score::score_byte#0 ] -zp ZP_BYTE:8 [ 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 ] +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:9 [ 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:10 [ render_current::l#4 render_current::l#1 play_collision::l#6 play_collision::l#1 play_remove_lines::c#0 ] -zp ZP_BYTE:11 [ 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:12 [ 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:13 [ render_current::c#2 render_current::c#1 main::key_event#0 ] +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 ] 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 ] @@ -18089,39 +19357,40 @@ reg byte x [ play_collision::c#2 play_collision::c#1 ] reg byte a [ play_collision::return#14 ] reg byte a [ play_move_leftright::return#1 ] reg byte x [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] -zp ZP_BYTE:14 [ 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_DWORD:15 [ score_bcd#20 score_bcd#12 score_bcd#14 score_bcd#10 score_bcd#3 ] -zp ZP_WORD:19 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 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 ] -zp ZP_BYTE:21 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -zp ZP_WORD:22 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 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_BYTE:24 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] -zp ZP_BYTE:25 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] +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_WORD:23 [ 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:25 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] +zp ZP_WORD:26 [ 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:28 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] +zp ZP_BYTE:29 [ 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 ] +zp ZP_BYTE:30 [ level_bcd#22 level_bcd#19 level_bcd#12 level_bcd#14 level_bcd#10 level_bcd#3 ] 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 ] 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:26 [ 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: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 ] 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 ] -zp ZP_WORD:27 [ 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 render_current::screen_line#0 play_collision::playfield_line#0 ] 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:29 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 irq_raster_next#0 ] +zp ZP_BYTE:32 [ 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:30 [ render_screen_showing#0 render_screen_showing#1 ] -zp ZP_BYTE:31 [ irq_sprite_ypos#0 irq_sprite_ypos#2 irq_sprite_ypos#1 ] -zp ZP_BYTE:32 [ irq_sprite_ptr#0 irq_sprite_ptr#2 irq_sprite_ptr#1 ] -zp ZP_BYTE:33 [ irq_cnt#0 irq_cnt#1 irq_cnt#14 ] +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 ] 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:34 [ main::render#1 main::render#2 ] +zp ZP_BYTE:37 [ 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 ] @@ -18129,10 +19398,10 @@ reg byte a [ play_move_rotate::key_event#0 ] reg byte a [ play_move_rotate::return#4 ] reg byte a [ main::$14 ] reg byte a [ main::render#3 ] -reg byte a [ render_score::$9 ] -reg byte a [ render_score::$10 ] -reg byte a [ render_score::$11 ] -reg byte a [ render_score::$12 ] +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_playfield::$2 ] @@ -18141,7 +19410,7 @@ 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:35 [ play_collision::i#1 ] +zp ZP_BYTE:38 [ play_collision::i#1 ] reg byte a [ play_collision::$7 ] reg byte a [ play_collision::return#12 ] reg byte a [ play_move_leftright::$4 ] @@ -18153,12 +19422,15 @@ reg byte a [ play_collision::return#0 ] reg byte a [ play_move_down::$12 ] reg byte a [ play_remove_lines::return#0 ] reg byte a [ play_move_down::removed#0 ] -reg byte a [ play_update_score::removed#0 ] +reg byte x [ play_update_score::removed#0 ] reg byte a [ sid_rnd::return#2 ] reg byte a [ play_spawn_current::$1 ] reg byte a [ sid_rnd::return#0 ] reg byte a [ play_update_score::$2 ] -zp ZP_DWORD:36 [ play_update_score::add_bcd#0 ] +zp ZP_DWORD:39 [ play_update_score::add_bcd#0 ] +reg byte a [ play_update_score::$3 ] +reg byte a [ play_update_score::$5 ] +reg byte a [ play_update_score::lines_after#0 ] reg byte a [ keyboard_event_pressed::$0 ] reg byte a [ keyboard_event_pressed::$1 ] reg byte a [ keyboard_event_pressed::return#11 ] @@ -18192,7 +19464,7 @@ reg byte a [ sprites_irq::ptr#2 ] FINAL ASSEMBLER -Score: 3227532 +Score: 3220202 //SEG0 Basic Upstart .pc = $801 "Basic" @@ -18274,29 +19546,31 @@ Score: 3227532 .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 = $1a - .label render_screen_showing = $1e - .label irq_raster_next = $1d - .label irq_sprite_ypos = $1f - .label irq_sprite_ptr = $20 - .label irq_cnt = $21 + .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 current_movedown_counter = 4 - .label current_ypos = $e - .label current_piece_gfx = $16 - .label current_xpos = $18 - .label current_piece_char = $19 - .label current_orientation = $15 - .label score_bcd = $f + .label current_ypos = $10 + .label current_piece_gfx = $1a + .label current_xpos = $1c + .label current_piece_char = $1d + .label current_orientation = $19 + .label level_bcd = $1e .label render_screen_render = 3 .label render_screen_show = 2 - .label current_piece = $13 + .label lines_bcd = $11 + .label score_bcd = $13 + .label current_piece = $17 .label current_piece_12 = 5 - .label render_screen_render_30 = 7 - .label current_xpos_47 = 8 + .label render_screen_render_30 = 9 + .label current_xpos_47 = $a .label current_piece_gfx_53 = 5 - .label render_screen_render_64 = 7 - .label current_xpos_112 = 8 - .label current_xpos_113 = 8 + .label render_screen_render_64 = 9 + .label current_xpos_112 = $a + .label current_xpos_113 = $a .label current_piece_gfx_102 = 5 .label current_piece_gfx_103 = 5 .label current_piece_76 = 5 @@ -18312,42 +19586,42 @@ bbegin: //SEG5 kickasm(location (const byte*) PLAYFIELD_CHARSET#0) {{ .fill 8,$00 // Place a filled char at the start of the charset .import binary "playfield-screen.imap" }} //SEG6 kickasm(location (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0) {{ // Load chars for the screen .var screen = LoadBinary("playfield-screen.iscr") // Load extended colors for the screen .var extended = LoadBinary("playfield-extended.col") // screen.get(i)+1 because the charset is loaded into PLAYFIELD_CHARSET+8 // extended.get(i)-1 because the extended colors are 1-based (1/2/3/4) // <<6 to move extended colors to the upper 2 bits .fill screen.getSize(), ( (screen.get(i)+1) | (extended.get(i)-1)<<6 ) }} //SEG7 kickasm(location (const byte*) PLAYFIELD_COLORS_ORIGINAL#0) {{ .import binary "playfield-screen.col" }} -//SEG8 @21 +//SEG8 @22 //SEG9 kickasm(location (const 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++) { .for (var y=0;y<21; y++) { .for (var c=0; c<3; c++) { .byte sprites.getSinglecolorByte(sx*3+c,sy*21+y) } } .byte 0 } } }} -//SEG10 @22 +//SEG10 @23 //SEG11 [6] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next //SEG12 [7] (byte) irq_sprite_ypos#0 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 lda #$32 sta irq_sprite_ypos -//SEG13 [8] phi from @22 to toSpritePtr1 [phi:@22->toSpritePtr1] +//SEG13 [8] phi from @23 to toSpritePtr1 [phi:@23->toSpritePtr1] //SEG14 toSpritePtr1 -//SEG15 @35 +//SEG15 @36 //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 @35 to @34 [phi:@35->@34] -//SEG19 @34 +//SEG18 [11] phi from @36 to @35 [phi:@36->@35] +//SEG19 @35 //SEG20 [12] call main -//SEG21 [14] phi from @34 to main [phi:@34->main] +//SEG21 [14] phi from @35 to main [phi:@35->main] jsr main -//SEG22 [13] phi from @34 to @end [phi:@34->@end] +//SEG22 [13] phi from @35 to @end [phi:@35->@end] //SEG23 @end //SEG24 main main: { - .label key_event = $d - .label render = $22 + .label key_event = $f + .label render = $25 //SEG25 [15] call sid_rnd_init jsr sid_rnd_init //SEG26 main::@15 //SEG27 asm { sei } sei //SEG28 [17] call render_init - //SEG29 [404] phi from main::@15 to render_init [phi:main::@15->render_init] + //SEG29 [431] 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 @@ -18360,18 +19634,18 @@ main: { //SEG36 [22] phi from main::@17 to main::@18 [phi:main::@17->main::@18] //SEG37 main::@18 //SEG38 [23] call play_init - //SEG39 [369] phi from main::@18 to play_init [phi:main::@18->play_init] + //SEG39 [396] 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 //SEG42 [25] call play_spawn_current - //SEG43 [231] phi from main::@19 to play_spawn_current [phi:main::@19->play_spawn_current] + //SEG43 [250] phi from main::@19 to play_spawn_current [phi:main::@19->play_spawn_current] jsr play_spawn_current //SEG44 [26] phi from main::@19 to main::@20 [phi:main::@19->main::@20] //SEG45 main::@20 //SEG46 [27] call render_playfield - //SEG47 [114] phi from main::@20 to render_playfield [phi:main::@20->render_playfield] - //SEG48 [114] phi (byte) render_screen_render#21 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@20->render_playfield#0] -- vbuxx=vbuc1 + //SEG47 [133] phi from main::@20 to render_playfield [phi:main::@20->render_playfield] + //SEG48 [133] phi (byte) render_screen_render#21 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@20->render_playfield#0] -- vbuxx=vbuc1 ldx #$40 jsr render_playfield //SEG49 main::@21 @@ -18388,14 +19662,14 @@ main: { //SEG53 [31] (byte~) current_piece_char#90 ← (byte) current_piece_char#12 -- vbuxx=vbuz1 ldx current_piece_char //SEG54 [32] call render_current - //SEG55 [91] phi from main::@21 to render_current [phi:main::@21->render_current] - //SEG56 [91] phi (byte) current_piece_char#64 = (byte~) current_piece_char#90 [phi:main::@21->render_current#0] -- register_copy - //SEG57 [91] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#102 [phi:main::@21->render_current#1] -- register_copy - //SEG58 [91] phi (byte) current_xpos#47 = (byte~) current_xpos#112 [phi:main::@21->render_current#2] -- register_copy - //SEG59 [91] phi (byte) render_screen_render#30 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->render_current#3] -- vbuz1=vbuc1 + //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 lda #$40 sta render_screen_render_30 - //SEG60 [91] phi (byte) current_ypos#9 = (byte~) current_ypos#86 [phi:main::@21->render_current#4] -- register_copy + //SEG60 [110] phi (byte) current_ypos#9 = (byte~) current_ypos#86 [phi:main::@21->render_current#4] -- register_copy jsr render_current //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 @@ -18404,549 +19678,668 @@ 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 (dword) score_bcd#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#0] -- vduz1=vbuc1 + //SEG63 [34] phi (byte) level_bcd#14 = (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 lda #0 sta score_bcd sta score_bcd+1 sta score_bcd+2 sta score_bcd+3 - //SEG64 [34] phi (byte) current_movedown_counter#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#1] -- vbuz1=vbuc1 + //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 + 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 sta current_movedown_counter - //SEG65 [34] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#2] -- vbuz1=vbuc1 + //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 sta keyboard_events_size - //SEG66 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#12 [phi:main::@21->main::@1#3] -- register_copy - //SEG67 [34] phi (byte) current_ypos#21 = (byte) current_ypos#18 [phi:main::@21->main::@1#4] -- register_copy - //SEG68 [34] phi (byte) current_xpos#10 = (byte) current_xpos#23 [phi:main::@21->main::@1#5] -- register_copy - //SEG69 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#16 [phi:main::@21->main::@1#6] -- register_copy - //SEG70 [34] phi (byte) current_orientation#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#7] -- vbuz1=vbuc1 + //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 sta current_orientation - //SEG71 [34] phi (byte*) current_piece#16 = (byte*~) current_piece#73 [phi:main::@21->main::@1#8] -- register_copy - //SEG72 [34] phi (byte) render_screen_render#17 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@21->main::@1#9] -- vbuz1=vbuc1 + //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 lda #$40 sta render_screen_render - //SEG73 [34] phi (byte) render_screen_show#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@21->main::@1#10] -- vbuz1=vbuc1 + //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 lda #0 sta render_screen_show - //SEG74 [34] phi from main::@28 to main::@1 [phi:main::@28->main::@1] - //SEG75 [34] phi (dword) score_bcd#14 = (dword) score_bcd#10 [phi:main::@28->main::@1#0] -- register_copy - //SEG76 [34] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@28->main::@1#1] -- register_copy - //SEG77 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@28->main::@1#2] -- register_copy - //SEG78 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@28->main::@1#3] -- register_copy - //SEG79 [34] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@28->main::@1#4] -- register_copy - //SEG80 [34] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@28->main::@1#5] -- register_copy - //SEG81 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@28->main::@1#6] -- register_copy - //SEG82 [34] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@28->main::@1#7] -- register_copy - //SEG83 [34] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@28->main::@1#8] -- register_copy - //SEG84 main::@1 - //SEG85 main::@4 + //SEG76 [34] phi from main::@28 to main::@1 [phi:main::@28->main::@1] + //SEG77 [34] phi (byte) level_bcd#14 = (byte) level_bcd#10 [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 b4: - //SEG86 [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG90 [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 - //SEG87 [36] phi from main::@4 to main::@6 [phi:main::@4->main::@6] - //SEG88 main::@6 - //SEG89 [37] call render_show + //SEG91 [36] phi from main::@4 to main::@6 [phi:main::@4->main::@6] + //SEG92 main::@6 + //SEG93 [37] call render_show jsr render_show - //SEG90 [38] phi from main::@6 to main::@23 [phi:main::@6->main::@23] - //SEG91 main::@23 - //SEG92 [39] call keyboard_event_scan - //SEG93 [306] phi from main::@23 to keyboard_event_scan [phi:main::@23->keyboard_event_scan] + //SEG94 [38] phi from main::@6 to main::@23 [phi:main::@6->main::@23] + //SEG95 main::@23 + //SEG96 [39] call keyboard_event_scan + //SEG97 [333] phi from main::@23 to keyboard_event_scan [phi:main::@23->keyboard_event_scan] jsr keyboard_event_scan - //SEG94 [40] phi from main::@23 to main::@24 [phi:main::@23->main::@24] - //SEG95 main::@24 - //SEG96 [41] call keyboard_event_get + //SEG98 [40] phi from main::@23 to main::@24 [phi:main::@23->main::@24] + //SEG99 main::@24 + //SEG100 [41] call keyboard_event_get jsr keyboard_event_get - //SEG97 [42] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + //SEG101 [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 - //SEG98 main::@25 - //SEG99 [43] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa + //SEG102 main::@25 + //SEG103 [43] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuaa sta key_event - //SEG100 [44] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 - //SEG101 [45] call play_move_down + //SEG104 [44] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG105 [45] call play_move_down jsr play_move_down - //SEG102 [46] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuaa=vbuxx + //SEG106 [46] (byte) play_move_down::return#3 ← (byte) play_move_down::return#2 -- vbuaa=vbuxx txa - //SEG103 main::@26 - //SEG104 [47] (byte~) main::$12 ← (byte) play_move_down::return#3 + //SEG107 main::@26 + //SEG108 [47] (byte~) main::$12 ← (byte) play_move_down::return#3 // (byte~) main::$12 = (byte) play_move_down::return#3 // register copy reg byte a - //SEG105 [48] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$12 -- vbuz1=vbuc1_plus_vbuaa + //SEG109 [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 - //SEG106 [49] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG110 [49] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG107 [50] call play_move_leftright + //SEG111 [50] call play_move_leftright jsr play_move_leftright - //SEG108 [51] (byte) play_move_leftright::return#4 ← (byte) play_move_leftright::return#1 + //SEG112 [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 - //SEG109 main::@27 - //SEG110 [52] (byte~) main::$13 ← (byte) play_move_leftright::return#4 + //SEG113 main::@27 + //SEG114 [52] (byte~) main::$13 ← (byte) play_move_leftright::return#4 // (byte~) main::$13 = (byte) play_move_leftright::return#4 // register copy reg byte a - //SEG111 [53] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 -- vbuz1=vbuz1_plus_vbuaa + //SEG115 [53] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$13 -- vbuz1=vbuz1_plus_vbuaa clc adc render sta render - //SEG112 [54] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 + //SEG116 [54] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG113 [55] call play_move_rotate + //SEG117 [55] call play_move_rotate jsr play_move_rotate - //SEG114 [56] (byte) play_move_rotate::return#4 ← (byte) play_move_rotate::return#1 + //SEG118 [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 - //SEG115 main::@28 - //SEG116 [57] (byte~) main::$14 ← (byte) play_move_rotate::return#4 + //SEG119 main::@28 + //SEG120 [57] (byte~) main::$14 ← (byte) play_move_rotate::return#4 // (byte~) main::$14 = (byte) play_move_rotate::return#4 // register copy reg byte a - //SEG117 [58] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 -- vbuaa=vbuz1_plus_vbuaa + //SEG121 [58] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$14 -- vbuaa=vbuz1_plus_vbuaa clc adc render - //SEG118 [59] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 -- vbuaa_eq_0_then_la1 + //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 cmp #0 beq b4 - //SEG119 main::@13 - //SEG120 [60] (byte~) render_screen_render#65 ← (byte) render_screen_render#17 -- vbuxx=vbuz1 + //SEG123 main::@13 + //SEG124 [60] (byte~) render_screen_render#65 ← (byte) render_screen_render#17 -- vbuxx=vbuz1 ldx render_screen_render - //SEG121 [61] call render_playfield - //SEG122 [114] phi from main::@13 to render_playfield [phi:main::@13->render_playfield] - //SEG123 [114] phi (byte) render_screen_render#21 = (byte~) render_screen_render#65 [phi:main::@13->render_playfield#0] -- register_copy + //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 jsr render_playfield - //SEG124 main::@29 - //SEG125 [62] (byte~) current_ypos#87 ← (byte) current_ypos#13 -- vbuyy=vbuz1 + //SEG128 main::@29 + //SEG129 [62] (byte~) current_ypos#87 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos - //SEG126 [63] (byte~) render_screen_render#64 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 + //SEG130 [63] (byte~) render_screen_render#64 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 lda render_screen_render sta render_screen_render_64 - //SEG127 [64] (byte~) current_xpos#113 ← (byte) current_xpos#19 -- vbuz1=vbuz2 + //SEG131 [64] (byte~) current_xpos#113 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda current_xpos sta current_xpos_113 - //SEG128 [65] (byte*~) current_piece_gfx#103 ← (byte*) current_piece_gfx#14 -- pbuz1=pbuz2 + //SEG132 [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 - //SEG129 [66] (byte~) current_piece_char#91 ← (byte) current_piece_char#1 -- vbuxx=vbuz1 + //SEG133 [66] (byte~) current_piece_char#91 ← (byte) current_piece_char#1 -- vbuxx=vbuz1 ldx current_piece_char - //SEG130 [67] call render_current - //SEG131 [91] phi from main::@29 to render_current [phi:main::@29->render_current] - //SEG132 [91] phi (byte) current_piece_char#64 = (byte~) current_piece_char#91 [phi:main::@29->render_current#0] -- register_copy - //SEG133 [91] phi (byte*) current_piece_gfx#53 = (byte*~) current_piece_gfx#103 [phi:main::@29->render_current#1] -- register_copy - //SEG134 [91] phi (byte) current_xpos#47 = (byte~) current_xpos#113 [phi:main::@29->render_current#2] -- register_copy - //SEG135 [91] phi (byte) render_screen_render#30 = (byte~) render_screen_render#64 [phi:main::@29->render_current#3] -- register_copy - //SEG136 [91] phi (byte) current_ypos#9 = (byte~) current_ypos#87 [phi:main::@29->render_current#4] -- register_copy + //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 - //SEG137 [68] phi from main::@29 to main::@30 [phi:main::@29->main::@30] - //SEG138 main::@30 - //SEG139 [69] call render_score + //SEG141 [68] phi from main::@29 to main::@30 [phi:main::@29->main::@30] + //SEG142 main::@30 + //SEG143 [69] call render_score jsr render_score - //SEG140 [70] phi from main::@30 to main::@31 [phi:main::@30->main::@31] - //SEG141 main::@31 - //SEG142 [71] call render_screen_swap + //SEG144 [70] phi from main::@30 to main::@31 [phi:main::@30->main::@31] + //SEG145 main::@31 + //SEG146 [71] call render_screen_swap jsr render_screen_swap - //SEG143 [34] phi from main::@31 to main::@1 [phi:main::@31->main::@1] - //SEG144 [34] phi (dword) score_bcd#14 = (dword) score_bcd#10 [phi:main::@31->main::@1#0] -- register_copy - //SEG145 [34] phi (byte) current_movedown_counter#12 = (byte) current_movedown_counter#10 [phi:main::@31->main::@1#1] -- register_copy - //SEG146 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@31->main::@1#2] -- register_copy - //SEG147 [34] phi (byte) current_piece_char#15 = (byte) current_piece_char#1 [phi:main::@31->main::@1#3] -- register_copy - //SEG148 [34] phi (byte) current_ypos#21 = (byte) current_ypos#13 [phi:main::@31->main::@1#4] -- register_copy - //SEG149 [34] phi (byte) current_xpos#10 = (byte) current_xpos#19 [phi:main::@31->main::@1#5] -- register_copy - //SEG150 [34] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#14 [phi:main::@31->main::@1#6] -- register_copy - //SEG151 [34] phi (byte) current_orientation#10 = (byte) current_orientation#19 [phi:main::@31->main::@1#7] -- register_copy - //SEG152 [34] phi (byte*) current_piece#16 = (byte*) current_piece#10 [phi:main::@31->main::@1#8] -- register_copy - //SEG153 [34] phi (byte) render_screen_render#17 = (byte) render_screen_render#11 [phi:main::@31->main::@1#9] -- register_copy - //SEG154 [34] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@31->main::@1#10] -- register_copy + //SEG147 [34] phi from main::@31 to main::@1 [phi:main::@31->main::@1] + //SEG148 [34] phi (byte) level_bcd#14 = (byte) level_bcd#10 [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 jmp b4 } -//SEG155 render_screen_swap +//SEG161 render_screen_swap render_screen_swap: { - //SEG156 [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 + //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 lda render_screen_render eor #$40 sta render_screen_render - //SEG157 [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 + //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 lda render_screen_show eor #$40 sta render_screen_show - //SEG158 render_screen_swap::@return - //SEG159 [74] return + //SEG164 render_screen_swap::@return + //SEG165 [74] return rts } -//SEG160 render_score +//SEG166 render_score render_score: { - .const ZERO_CHAR = $33 - .const SCREEN_SCORE_ROW = 5 - .const SCREEN_SCORE_COL = $21 .label score_bytes = score_bcd - .label score_byte = 7 - .label screen_score_pos = 5 - //SEG161 [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 + .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 lda render_screen_render cmp #0 beq b1 - //SEG162 [76] phi from render_score to render_score::@4 [phi:render_score->render_score::@4] - //SEG163 render_score::@4 - //SEG164 [77] phi from render_score::@4 to render_score::@2 [phi:render_score::@4->render_score::@2] - //SEG165 [77] phi (byte*) render_score::screen_score_pos#5 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(const byte) render_score::SCREEN_SCORE_ROW#0+(const byte) render_score::SCREEN_SCORE_COL#0 [phi:render_score::@4->render_score::@2#0] -- pbuz1=pbuc1 - lda #PLAYFIELD_SCREEN_2+$28*SCREEN_SCORE_ROW+SCREEN_SCORE_COL - sta screen_score_pos+1 + //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 + lda #PLAYFIELD_SCREEN_2 + sta screen+1 jmp b2 - //SEG166 [77] phi from render_score to render_score::@2 [phi:render_score->render_score::@2] + //SEG172 [77] phi from render_score to render_score::@2 [phi:render_score->render_score::@2] b1: - //SEG167 [77] phi (byte*) render_score::screen_score_pos#5 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 40*(const byte) render_score::SCREEN_SCORE_ROW#0+(const byte) render_score::SCREEN_SCORE_COL#0 [phi:render_score->render_score::@2#0] -- pbuz1=pbuc1 - lda #PLAYFIELD_SCREEN_1+$28*SCREEN_SCORE_ROW+SCREEN_SCORE_COL - sta screen_score_pos+1 - //SEG168 render_score::@2 + //SEG173 [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 b2: - //SEG169 [78] phi from render_score::@2 to render_score::@3 [phi:render_score::@2->render_score::@3] - //SEG170 [78] phi (byte*) render_score::screen_score_pos#4 = (byte*) render_score::screen_score_pos#5 [phi:render_score::@2->render_score::@3#0] -- register_copy - //SEG171 [78] phi (byte) render_score::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_score::@2->render_score::@3#1] -- vbuxx=vbuc1 - ldx #0 - //SEG172 [78] phi from render_score::@3 to render_score::@3 [phi:render_score::@3->render_score::@3] - //SEG173 [78] phi (byte*) render_score::screen_score_pos#4 = (byte*) render_score::screen_score_pos#3 [phi:render_score::@3->render_score::@3#0] -- register_copy - //SEG174 [78] phi (byte) render_score::b#2 = (byte) render_score::b#1 [phi:render_score::@3->render_score::@3#1] -- register_copy - //SEG175 render_score::@3 - b3: - //SEG176 [79] (byte) render_score::score_byte#0 ← *((const byte*) render_score::score_bytes#0 + (byte) render_score::b#2) -- vbuz1=pbuc1_derefidx_vbuxx - lda score_bytes,x - sta score_byte - //SEG177 [80] (byte~) render_score::$9 ← (byte) render_score::score_byte#0 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 - lda #$f - and score_byte - //SEG178 [81] (byte~) render_score::$10 ← (const byte) render_score::ZERO_CHAR#0 + (byte~) render_score::$9 -- vbuaa=vbuc1_plus_vbuaa - clc - adc #ZERO_CHAR - //SEG179 [82] *((byte*) render_score::screen_score_pos#4) ← (byte~) render_score::$10 -- _deref_pbuz1=vbuaa + //SEG175 [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 + 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 ldy #0 - sta (screen_score_pos),y - //SEG180 [83] (byte*) render_score::screen_score_pos#2 ← -- (byte*) render_score::screen_score_pos#4 -- pbuz1=_dec_pbuz1 - lda screen_score_pos - bne !+ - dec screen_score_pos+1 - !: - dec screen_score_pos - //SEG181 [84] (byte~) render_score::$11 ← (byte) render_score::score_byte#0 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuaa=vbuz1_ror_4 - lda score_byte - lsr - lsr - lsr - lsr - //SEG182 [85] (byte~) render_score::$12 ← (const byte) render_score::ZERO_CHAR#0 + (byte~) render_score::$11 -- vbuaa=vbuc1_plus_vbuaa - clc - adc #ZERO_CHAR - //SEG183 [86] *((byte*) render_score::screen_score_pos#2) ← (byte~) render_score::$12 -- _deref_pbuz1=vbuaa + //SEG181 [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 + jsr render_bcd + //SEG183 render_score::@5 + //SEG184 [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 + 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 ldy #0 - sta (screen_score_pos),y - //SEG184 [87] (byte*) render_score::screen_score_pos#3 ← -- (byte*) render_score::screen_score_pos#2 -- pbuz1=_dec_pbuz1 - lda screen_score_pos - bne !+ - dec screen_score_pos+1 - !: - dec screen_score_pos - //SEG185 [88] (byte) render_score::b#1 ← ++ (byte) render_score::b#2 -- vbuxx=_inc_vbuxx - inx - //SEG186 [89] if((byte) render_score::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto render_score::@3 -- vbuxx_neq_vbuc1_then_la1 - cpx #3 - bne b3 - //SEG187 render_score::@return - //SEG188 [90] return + //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 + 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 + jsr render_bcd + //SEG192 render_score::@6 + //SEG193 [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 + 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 + 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 + 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 + jsr render_bcd + //SEG201 render_score::@7 + //SEG202 [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 + // (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 + 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 + 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 + jsr render_bcd + //SEG210 render_score::@8 + //SEG211 [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 + // (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 + 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 + 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 + jsr render_bcd + //SEG219 render_score::@9 + //SEG220 [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#10 -- 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 + 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 + 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 + jsr render_bcd + //SEG228 render_score::@return + //SEG229 [96] return rts } -//SEG189 render_current +//SEG230 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 + lda screen_pos + clc + adc screen + sta screen_pos + 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 + 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 + 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 + clc + adc #ZERO_CHAR + //SEG236 [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 + 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 + 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 + txa + and #$f + //SEG242 [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 + ldy #0 + sta (screen_pos),y + //SEG244 [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 + rts +} +//SEG247 render_current render_current: { - .label ypos2 = 9 - .label screen_line = $1b - .label xpos = $c - .label i = $b - .label l = $a - .label c = $d - //SEG190 [92] (byte) render_current::ypos2#0 ← (byte) current_ypos#9 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 + .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 tya asl sta ypos2 - //SEG191 [93] phi from render_current to render_current::@1 [phi:render_current->render_current::@1] - //SEG192 [93] 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 + //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 lda #0 sta l - //SEG193 [93] 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 + //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 sta i - //SEG194 [93] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#0 [phi:render_current->render_current::@1#2] -- register_copy - //SEG195 [93] phi from render_current::@3 to render_current::@1 [phi:render_current::@3->render_current::@1] - //SEG196 [93] phi (byte) render_current::l#4 = (byte) render_current::l#1 [phi:render_current::@3->render_current::@1#0] -- register_copy - //SEG197 [93] phi (byte) render_current::i#3 = (byte) render_current::i#8 [phi:render_current::@3->render_current::@1#1] -- register_copy - //SEG198 [93] phi (byte) render_current::ypos2#2 = (byte) render_current::ypos2#1 [phi:render_current::@3->render_current::@1#2] -- register_copy - //SEG199 render_current::@1 + //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 b1: - //SEG200 [94] 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 + //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 lda ypos2 cmp #2 beq !+ bcs b13 !: - //SEG201 render_current::@7 + //SEG259 render_current::@7 b7: - //SEG202 [95] (byte) render_current::i#1 ← (byte) render_current::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz1_plus_vbuc1 + //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 lda #4 clc adc i sta i - //SEG203 [96] phi from render_current::@5 render_current::@7 to render_current::@3 [phi:render_current::@5/render_current::@7->render_current::@3] - //SEG204 [96] phi (byte) render_current::i#8 = (byte) render_current::i#10 [phi:render_current::@5/render_current::@7->render_current::@3#0] -- register_copy - //SEG205 render_current::@3 + //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 b3: - //SEG206 [97] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //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 lda ypos2 clc adc #2 sta ypos2 - //SEG207 [98] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 -- vbuz1=_inc_vbuz1 + //SEG265 [117] (byte) render_current::l#1 ← ++ (byte) render_current::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG208 [99] 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 + //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 lda l cmp #4 bne b1 - //SEG209 render_current::@return - //SEG210 [100] return + //SEG267 render_current::@return + //SEG268 [119] return rts - //SEG211 render_current::@13 + //SEG269 render_current::@13 b13: - //SEG212 [101] 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 + //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 lda ypos2 cmp #2*PLAYFIELD_LINES bcc b2 jmp b7 - //SEG213 render_current::@2 + //SEG271 render_current::@2 b2: - //SEG214 [102] (byte~) render_current::$5 ← (byte) render_screen_render#30 + (byte) render_current::ypos2#2 -- vbuaa=vbuz1_plus_vbuz2 + //SEG272 [121] (byte~) render_current::$5 ← (byte) render_screen_render#30 + (byte) render_current::ypos2#2 -- vbuaa=vbuz1_plus_vbuz2 lda render_screen_render_30 clc adc ypos2 - //SEG215 [103] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_current::$5) -- pbuz1=pptc1_derefidx_vbuaa + //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 tay lda screen_lines_1,y sta screen_line lda screen_lines_1+1,y sta screen_line+1 - //SEG216 [104] (byte) render_current::xpos#0 ← (byte) current_xpos#47 -- vbuz1=vbuz2 + //SEG274 [123] (byte) render_current::xpos#0 ← (byte) current_xpos#47 -- vbuz1=vbuz2 lda current_xpos_47 sta xpos - //SEG217 [105] phi from render_current::@2 to render_current::@4 [phi:render_current::@2->render_current::@4] - //SEG218 [105] 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 + //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 lda #0 sta c - //SEG219 [105] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#0 [phi:render_current::@2->render_current::@4#1] -- register_copy - //SEG220 [105] phi (byte) render_current::i#4 = (byte) render_current::i#3 [phi:render_current::@2->render_current::@4#2] -- register_copy - //SEG221 [105] phi from render_current::@5 to render_current::@4 [phi:render_current::@5->render_current::@4] - //SEG222 [105] phi (byte) render_current::c#2 = (byte) render_current::c#1 [phi:render_current::@5->render_current::@4#0] -- register_copy - //SEG223 [105] phi (byte) render_current::xpos#2 = (byte) render_current::xpos#1 [phi:render_current::@5->render_current::@4#1] -- register_copy - //SEG224 [105] phi (byte) render_current::i#4 = (byte) render_current::i#10 [phi:render_current::@5->render_current::@4#2] -- register_copy - //SEG225 render_current::@4 + //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 b4: - //SEG226 [106] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 + //SEG284 [125] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#53 + (byte) render_current::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 ldy i lda (current_piece_gfx_53),y - //SEG227 [107] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 -- vbuz1=_inc_vbuz1 + //SEG285 [126] (byte) render_current::i#10 ← ++ (byte) render_current::i#4 -- vbuz1=_inc_vbuz1 inc i - //SEG228 [108] 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 + //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 cmp #0 beq b5 - //SEG229 render_current::@9 - //SEG230 [109] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@5 -- vbuz1_ge_vbuc1_then_la1 + //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 lda xpos cmp #PLAYFIELD_COLS bcs b5 - //SEG231 render_current::@10 - //SEG232 [110] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_char#64 -- pbuz1_derefidx_vbuz2=vbuxx + //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 tay txa sta (screen_line),y - //SEG233 render_current::@5 + //SEG291 render_current::@5 b5: - //SEG234 [111] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG292 [130] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG235 [112] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuz1=_inc_vbuz1 + //SEG293 [131] (byte) render_current::c#1 ← ++ (byte) render_current::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG236 [113] 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 + //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 lda c cmp #4 bne b4 jmp b3 } -//SEG237 render_playfield +//SEG295 render_playfield render_playfield: { .label screen_line = 5 - .label i = 8 - .label c = 9 - .label l = 7 - //SEG238 [115] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] - //SEG239 [115] phi (byte) render_playfield::i#3 = (const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 + .label 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 lda #PLAYFIELD_COLS*2 sta i - //SEG240 [115] 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 + //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 lda #2 sta l - //SEG241 [115] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] - //SEG242 [115] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG243 [115] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy - //SEG244 render_playfield::@1 + //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 b1: - //SEG245 [116] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 + //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 lda l asl - //SEG246 [117] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 -- vbuaa=vbuxx_plus_vbuaa + //SEG304 [136] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 -- vbuaa=vbuxx_plus_vbuaa stx $ff clc adc $ff - //SEG247 [118] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuaa + //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 tay lda screen_lines_1,y sta screen_line lda screen_lines_1+1,y sta screen_line+1 - //SEG248 [119] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] - //SEG249 [119] 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 + //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 lda #0 sta c - //SEG250 [119] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG251 [119] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy - //SEG252 [119] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] - //SEG253 [119] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG254 [119] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG255 [119] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy - //SEG256 render_playfield::@2 + //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 b2: - //SEG257 [120] *((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 + //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 ldy i lda playfield,y ldy #0 sta (screen_line),y - //SEG258 [121] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 + //SEG316 [140] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 inc screen_line bne !+ inc screen_line+1 !: - //SEG259 [122] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG317 [141] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG260 [123] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 + //SEG318 [142] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG261 [124] 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 + //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 lda c cmp #PLAYFIELD_COLS-1+1 bne b2 - //SEG262 render_playfield::@3 - //SEG263 [125] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG320 render_playfield::@3 + //SEG321 [144] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG264 [126] 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 + //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 lda l cmp #PLAYFIELD_LINES-1+1 bne b1 - //SEG265 render_playfield::@return - //SEG266 [127] return + //SEG323 render_playfield::@return + //SEG324 [146] return rts } -//SEG267 play_move_rotate +//SEG325 play_move_rotate play_move_rotate: { - .label orientation = 7 - //SEG268 [128] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 + .label orientation = 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 cmp #KEY_Z beq b1 - //SEG269 play_move_rotate::@6 - //SEG270 [129] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 + //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 cmp #KEY_X beq b2 - //SEG271 [130] 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] + //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] b3: - //SEG272 [130] 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 - //SEG273 [130] 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 - //SEG274 [130] 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 + //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 lda #0 - //SEG275 play_move_rotate::@return + //SEG333 play_move_rotate::@return breturn: - //SEG276 [131] return + //SEG334 [150] return rts - //SEG277 play_move_rotate::@2 + //SEG335 play_move_rotate::@2 b2: - //SEG278 [132] (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 + //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 lda #$10 clc adc current_orientation - //SEG279 [133] (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 + //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 and #$3f sta orientation - //SEG280 [134] 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] - //SEG281 [134] 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 - //SEG282 play_move_rotate::@4 + //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 b4: - //SEG283 [135] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 -- vbuz1=vbuz2 + //SEG341 [154] (byte) play_collision::xpos#3 ← (byte) current_xpos#19 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG284 [136] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 -- vbuyy=vbuz1 + //SEG342 [155] (byte) play_collision::ypos#3 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos - //SEG285 [137] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 + //SEG343 [156] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 ldx orientation - //SEG286 [138] (byte*~) current_piece#79 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG344 [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 - //SEG287 [139] call play_collision - //SEG288 [147] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] - //SEG289 [147] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy - //SEG290 [147] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy - //SEG291 [147] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy - //SEG292 [147] phi (byte*) current_piece#12 = (byte*~) current_piece#79 [phi:play_move_rotate::@4->play_collision#3] -- register_copy + //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 jsr play_collision - //SEG293 [140] (byte) play_collision::return#13 ← (byte) play_collision::return#14 + //SEG351 [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 - //SEG294 play_move_rotate::@14 - //SEG295 [141] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#13 + //SEG352 play_move_rotate::@14 + //SEG353 [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 - //SEG296 [142] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG354 [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 - //SEG297 play_move_rotate::@11 - //SEG298 [143] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG355 play_move_rotate::@11 + //SEG356 [162] (byte) current_orientation#4 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG299 [144] (byte*) current_piece_gfx#3 ← (byte*) current_piece#10 + (byte) current_orientation#4 -- pbuz1=pbuz2_plus_vbuz3 + //SEG357 [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 - //SEG300 [130] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] - //SEG301 [130] phi (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#3 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG302 [130] phi (byte) current_orientation#19 = (byte) current_orientation#4 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG303 [130] 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 + //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 lda #1 jmp breturn - //SEG304 play_move_rotate::@1 + //SEG362 play_move_rotate::@1 b1: - //SEG305 [145] (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 + //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 lda current_orientation sec sbc #$10 - //SEG306 [146] (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 + //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 and #$3f sta orientation jmp b4 } -//SEG307 play_collision +//SEG365 play_collision play_collision: { - .label xpos = 8 + .label xpos = $a .label piece_gfx = 5 - .label ypos2 = 9 - .label playfield_line = $1b - .label i = $23 - .label col = $c - .label l = $a - .label i_2 = $b - .label i_3 = $b - .label i_11 = $b - .label i_13 = $b - //SEG308 [148] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#12 + (byte) play_collision::orientation#4 -- pbuz1=pbuz1_plus_vbuxx + .label ypos2 = $b + .label playfield_line = 7 + .label i = $26 + .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 txa clc adc piece_gfx @@ -18954,469 +20347,479 @@ play_collision: { lda #0 adc piece_gfx+1 sta piece_gfx+1 - //SEG309 [149] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_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 tya asl sta ypos2 - //SEG310 [150] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] - //SEG311 [150] 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 + //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 lda #0 sta l - //SEG312 [150] 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 + //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 sta i_3 - //SEG313 [150] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy - //SEG314 play_collision::@1 + //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 b1: - //SEG315 [151] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //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 ldy ypos2 lda playfield_lines,y sta playfield_line lda playfield_lines+1,y sta playfield_line+1 - //SEG316 [152] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 + //SEG374 [171] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#5 -- vbuz1=vbuz2 lda xpos sta col - //SEG317 [153] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] - //SEG318 [153] 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 + //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 ldx #0 - //SEG319 [153] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy - //SEG320 [153] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy - //SEG321 play_collision::@2 + //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 b2: - //SEG322 [154] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG380 [173] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG323 [155] 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 + //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 ldy i_2 lda (piece_gfx),y cmp #0 beq b3 - //SEG324 play_collision::@8 - //SEG325 [156] 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 + //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 lda ypos2 cmp #2*PLAYFIELD_LINES bcc b4 - //SEG326 [157] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] - //SEG327 [157] phi (byte) play_collision::return#14 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 + //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 lda #COLLISION_BOTTOM - //SEG328 play_collision::@return + //SEG386 play_collision::@return breturn: - //SEG329 [158] return + //SEG387 [177] return rts - //SEG330 play_collision::@4 + //SEG388 play_collision::@4 b4: - //SEG331 [159] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG389 [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 - //SEG332 [160] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuaa_eq_0_then_la1 + //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 cmp #0 beq b5 - //SEG333 [157] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] - //SEG334 [157] phi (byte) play_collision::return#14 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 + //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 lda #COLLISION_LEFT jmp breturn - //SEG335 play_collision::@5 + //SEG393 play_collision::@5 b5: - //SEG336 [161] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG394 [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 - //SEG337 [157] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] - //SEG338 [157] phi (byte) play_collision::return#14 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 + //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 lda #COLLISION_RIGHT jmp breturn - //SEG339 play_collision::@6 + //SEG397 play_collision::@6 b6: - //SEG340 [162] 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 + //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 ldy col lda (playfield_line),y cmp #0 beq b3 - //SEG341 [157] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] - //SEG342 [157] phi (byte) play_collision::return#14 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 + //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 lda #COLLISION_PLAYFIELD jmp breturn - //SEG343 play_collision::@3 + //SEG401 play_collision::@3 b3: - //SEG344 [163] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG402 [182] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG345 [164] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx + //SEG403 [183] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx inx - //SEG346 [165] 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 + //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 cpx #4 bne b21 - //SEG347 play_collision::@17 - //SEG348 [166] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //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 lda ypos2 clc adc #2 sta ypos2 - //SEG349 [167] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG407 [186] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG350 [168] 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 + //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 lda l cmp #4 bne b20 - //SEG351 [157] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] - //SEG352 [157] phi (byte) play_collision::return#14 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuaa=vbuc1 + //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 lda #COLLISION_NONE jmp breturn - //SEG353 play_collision::@20 + //SEG411 play_collision::@20 b20: - //SEG354 [169] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG412 [188] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG355 [150] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] - //SEG356 [150] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy - //SEG357 [150] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy - //SEG358 [150] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy + //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 jmp b1 - //SEG359 play_collision::@21 + //SEG417 play_collision::@21 b21: - //SEG360 [170] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG418 [189] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG361 [153] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] - //SEG362 [153] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy - //SEG363 [153] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy - //SEG364 [153] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy + //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 jmp b2 } -//SEG365 play_move_leftright +//SEG423 play_move_leftright play_move_leftright: { - //SEG366 [171] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 + //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 cmp #KEY_COMMA beq b1 - //SEG367 play_move_leftright::@6 - //SEG368 [172] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //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 cmp #KEY_DOT bne b3 - //SEG369 play_move_leftright::@7 - //SEG370 [173] (byte) play_collision::xpos#2 ← (byte) current_xpos#1 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //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 ldy current_xpos iny sty play_collision.xpos - //SEG371 [174] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 -- vbuyy=vbuz1 + //SEG429 [193] (byte) play_collision::ypos#2 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos - //SEG372 [175] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuxx=vbuz1 + //SEG430 [194] (byte) play_collision::orientation#2 ← (byte) current_orientation#14 -- vbuxx=vbuz1 ldx current_orientation - //SEG373 [176] (byte*~) current_piece#78 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG431 [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 - //SEG374 [177] call play_collision - //SEG375 [147] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] - //SEG376 [147] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy - //SEG377 [147] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy - //SEG378 [147] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy - //SEG379 [147] phi (byte*) current_piece#12 = (byte*~) current_piece#78 [phi:play_move_leftright::@7->play_collision#3] -- register_copy + //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 jsr play_collision - //SEG380 [178] (byte) play_collision::return#12 ← (byte) play_collision::return#14 + //SEG438 [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 - //SEG381 play_move_leftright::@15 - //SEG382 [179] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#12 + //SEG439 play_move_leftright::@15 + //SEG440 [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 - //SEG383 [180] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG441 [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 - //SEG384 play_move_leftright::@8 - //SEG385 [181] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 -- vbuz1=_inc_vbuz1 + //SEG442 play_move_leftright::@8 + //SEG443 [200] (byte) current_xpos#2 ← ++ (byte) current_xpos#1 -- vbuz1=_inc_vbuz1 inc current_xpos - //SEG386 [182] 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] + //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] b2: - //SEG387 [182] 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 - //SEG388 [182] 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 + //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 lda #1 jmp breturn - //SEG389 [182] 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] + //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] b3: - //SEG390 [182] 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 - //SEG391 [182] 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 + //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 lda #0 - //SEG392 play_move_leftright::@return + //SEG450 play_move_leftright::@return breturn: - //SEG393 [183] return + //SEG451 [202] return rts - //SEG394 play_move_leftright::@1 + //SEG452 play_move_leftright::@1 b1: - //SEG395 [184] (byte) play_collision::xpos#1 ← (byte) current_xpos#1 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //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 ldx current_xpos dex stx play_collision.xpos - //SEG396 [185] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 -- vbuyy=vbuz1 + //SEG454 [204] (byte) play_collision::ypos#1 ← (byte) current_ypos#13 -- vbuyy=vbuz1 ldy current_ypos - //SEG397 [186] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuxx=vbuz1 + //SEG455 [205] (byte) play_collision::orientation#1 ← (byte) current_orientation#14 -- vbuxx=vbuz1 ldx current_orientation - //SEG398 [187] (byte*~) current_piece#77 ← (byte*) current_piece#10 -- pbuz1=pbuz2 + //SEG456 [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 - //SEG399 [188] call play_collision - //SEG400 [147] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] - //SEG401 [147] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy - //SEG402 [147] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy - //SEG403 [147] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy - //SEG404 [147] phi (byte*) current_piece#12 = (byte*~) current_piece#77 [phi:play_move_leftright::@1->play_collision#3] -- register_copy + //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 jsr play_collision - //SEG405 [189] (byte) play_collision::return#1 ← (byte) play_collision::return#14 + //SEG463 [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 - //SEG406 play_move_leftright::@14 - //SEG407 [190] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + //SEG464 play_move_leftright::@14 + //SEG465 [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 - //SEG408 [191] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG466 [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 - //SEG409 play_move_leftright::@11 - //SEG410 [192] (byte) current_xpos#4 ← -- (byte) current_xpos#1 -- vbuz1=_dec_vbuz1 + //SEG467 play_move_leftright::@11 + //SEG468 [211] (byte) current_xpos#4 ← -- (byte) current_xpos#1 -- vbuz1=_dec_vbuz1 dec current_xpos jmp b2 } -//SEG411 play_move_down +//SEG469 play_move_down play_move_down: { - //SEG412 [193] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 + //SEG470 [212] (byte) current_movedown_counter#1 ← ++ (byte) current_movedown_counter#12 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG413 [194] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 + //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 cmp #KEY_SPACE bne b3 - //SEG414 [195] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] - //SEG415 play_move_down::@8 - //SEG416 [196] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] - //SEG417 [196] 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 + //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 ldx #1 jmp b1 - //SEG418 [196] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG476 [215] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b3: - //SEG419 [196] 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 + //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 ldx #0 - //SEG420 play_move_down::@1 + //SEG478 play_move_down::@1 b1: - //SEG421 [197] call keyboard_event_pressed - //SEG422 [295] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] - //SEG423 [295] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG479 [216] call keyboard_event_pressed + //SEG480 [322] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG481 [322] 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 - //SEG424 [198] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + //SEG482 [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 - //SEG425 play_move_down::@17 - //SEG426 [199] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + //SEG483 play_move_down::@17 + //SEG484 [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 - //SEG427 [200] 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 + //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 cmp #0 beq b2 - //SEG428 play_move_down::@9 - //SEG429 [201] if((byte) current_movedown_counter#1<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //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 lda current_movedown_counter cmp #current_movedown_fast bcc b2 - //SEG430 play_move_down::@10 - //SEG431 [202] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx + //SEG488 play_move_down::@10 + //SEG489 [221] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx inx - //SEG432 [203] 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] - //SEG433 [203] 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 - //SEG434 play_move_down::@2 + //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 b2: - //SEG435 [204] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG493 [223] if((byte) current_movedown_counter#1<(const byte) current_movedown_slow#0) goto play_move_down::@4 -- vbuz1_lt_vbuc1_then_la1 lda current_movedown_counter cmp #current_movedown_slow bcc b4 - //SEG436 play_move_down::@11 - //SEG437 [205] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx + //SEG494 play_move_down::@11 + //SEG495 [224] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx inx - //SEG438 [206] 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] - //SEG439 [206] 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 - //SEG440 play_move_down::@4 + //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 b4: - //SEG441 [207] 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 + //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 cpx #0 beq b5 - //SEG442 play_move_down::@12 - //SEG443 [208] (byte) play_collision::ypos#0 ← (byte) current_ypos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuyy=vbuz1_plus_1 + //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 ldy current_ypos iny - //SEG444 [209] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 + //SEG502 [228] (byte) play_collision::xpos#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG445 [210] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuxx=vbuz1 + //SEG503 [229] (byte) play_collision::orientation#0 ← (byte) current_orientation#10 -- vbuxx=vbuz1 ldx current_orientation - //SEG446 [211] (byte*~) current_piece#76 ← (byte*) current_piece#16 -- pbuz1=pbuz2 + //SEG504 [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 - //SEG447 [212] call play_collision - //SEG448 [147] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] - //SEG449 [147] phi (byte) play_collision::xpos#5 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy - //SEG450 [147] phi (byte) play_collision::ypos#4 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy - //SEG451 [147] phi (byte) play_collision::orientation#4 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy - //SEG452 [147] phi (byte*) current_piece#12 = (byte*~) current_piece#76 [phi:play_move_down::@12->play_collision#3] -- register_copy + //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 jsr play_collision - //SEG453 [213] (byte) play_collision::return#0 ← (byte) play_collision::return#14 + //SEG511 [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 - //SEG454 play_move_down::@18 - //SEG455 [214] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + //SEG512 play_move_down::@18 + //SEG513 [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 - //SEG456 [215] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuaa_eq_vbuc1_then_la1 + //SEG514 [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 - //SEG457 [216] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] - //SEG458 play_move_down::@13 - //SEG459 [217] call play_lock_current + //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 jsr play_lock_current - //SEG460 [218] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] - //SEG461 play_move_down::@19 - //SEG462 [219] call play_remove_lines - //SEG463 [255] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] + //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 [282] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] jsr play_remove_lines - //SEG464 [220] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 -- vbuaa=vbuz1 + //SEG522 [239] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 -- vbuaa=vbuz1 lda play_remove_lines.removed - //SEG465 play_move_down::@20 - //SEG466 [221] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 + //SEG523 play_move_down::@20 + //SEG524 [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 - //SEG467 [222] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 - // (byte) play_update_score::removed#0 = (byte) play_move_down::removed#0 // register copy reg byte a - //SEG468 [223] call play_update_score + //SEG525 [241] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuxx=vbuaa + tax + //SEG526 [242] call play_update_score jsr play_update_score - //SEG469 [224] phi from play_move_down::@20 to play_move_down::@21 [phi:play_move_down::@20->play_move_down::@21] - //SEG470 play_move_down::@21 - //SEG471 [225] call play_spawn_current - //SEG472 [231] phi from play_move_down::@21 to play_spawn_current [phi:play_move_down::@21->play_spawn_current] + //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] jsr play_spawn_current - //SEG473 [226] (byte*~) current_piece#80 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG531 [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 - //SEG474 [227] phi from play_move_down::@21 to play_move_down::@7 [phi:play_move_down::@21->play_move_down::@7] - //SEG475 [227] phi (byte) current_piece_char#20 = (byte) current_piece_char#12 [phi:play_move_down::@21->play_move_down::@7#0] -- register_copy - //SEG476 [227] phi (byte) current_xpos#33 = (byte) current_xpos#23 [phi:play_move_down::@21->play_move_down::@7#1] -- register_copy - //SEG477 [227] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#16 [phi:play_move_down::@21->play_move_down::@7#2] -- register_copy - //SEG478 [227] 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 + //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 lda #0 sta current_orientation - //SEG479 [227] phi (byte*) current_piece#20 = (byte*~) current_piece#80 [phi:play_move_down::@21->play_move_down::@7#4] -- register_copy - //SEG480 [227] phi (dword) score_bcd#20 = (dword) score_bcd#12 [phi:play_move_down::@21->play_move_down::@7#5] -- register_copy - //SEG481 [227] phi (byte) current_ypos#29 = (byte) current_ypos#18 [phi:play_move_down::@21->play_move_down::@7#6] -- register_copy - //SEG482 play_move_down::@7 + //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#19 = (byte) level_bcd#12 [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 b7: - //SEG483 [228] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] - //SEG484 [228] phi (byte) current_piece_char#1 = (byte) current_piece_char#20 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG485 [228] phi (byte) current_xpos#1 = (byte) current_xpos#33 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG486 [228] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#26 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG487 [228] phi (byte) current_orientation#14 = (byte) current_orientation#29 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG488 [228] phi (byte*) current_piece#10 = (byte*) current_piece#20 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG489 [228] phi (dword) score_bcd#10 = (dword) score_bcd#20 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG490 [228] phi (byte) current_ypos#13 = (byte) current_ypos#29 [phi:play_move_down::@7->play_move_down::@return#6] -- register_copy - //SEG491 [228] 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#7] -- vbuz1=vbuc1 + //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#10 = (byte) level_bcd#19 [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 lda #0 sta current_movedown_counter - //SEG492 [228] 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#8] -- vbuxx=vbuc1 + //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 ldx #1 jmp breturn - //SEG493 [228] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG555 [247] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] b5: - //SEG494 [228] phi (byte) current_piece_char#1 = (byte) current_piece_char#15 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG495 [228] phi (byte) current_xpos#1 = (byte) current_xpos#10 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG496 [228] phi (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#20 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG497 [228] phi (byte) current_orientation#14 = (byte) current_orientation#10 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG498 [228] phi (byte*) current_piece#10 = (byte*) current_piece#16 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG499 [228] phi (dword) score_bcd#10 = (dword) score_bcd#14 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG500 [228] phi (byte) current_ypos#13 = (byte) current_ypos#21 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG501 [228] phi (byte) current_movedown_counter#10 = (byte) current_movedown_counter#1 [phi:play_move_down::@4->play_move_down::@return#7] -- register_copy - //SEG502 [228] 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#8] -- vbuxx=vbuc1 + //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#10 = (byte) level_bcd#14 [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 ldx #0 - //SEG503 play_move_down::@return + //SEG567 play_move_down::@return breturn: - //SEG504 [229] return + //SEG568 [248] return rts - //SEG505 play_move_down::@6 + //SEG569 play_move_down::@6 b6: - //SEG506 [230] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 -- vbuz1=_inc_vbuz1 + //SEG570 [249] (byte) current_ypos#0 ← ++ (byte) current_ypos#21 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG507 [227] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] - //SEG508 [227] phi (byte) current_piece_char#20 = (byte) current_piece_char#15 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG509 [227] phi (byte) current_xpos#33 = (byte) current_xpos#10 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG510 [227] phi (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#20 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG511 [227] phi (byte) current_orientation#29 = (byte) current_orientation#10 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG512 [227] phi (byte*) current_piece#20 = (byte*) current_piece#16 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG513 [227] phi (dword) score_bcd#20 = (dword) score_bcd#14 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy - //SEG514 [227] phi (byte) current_ypos#29 = (byte) current_ypos#0 [phi:play_move_down::@6->play_move_down::@7#6] -- register_copy + //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#19 = (byte) level_bcd#14 [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 jmp b7 } -//SEG515 play_spawn_current +//SEG581 play_spawn_current play_spawn_current: { .label _3 = 4 - //SEG516 [232] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] - //SEG517 [232] 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 + //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 ldx #7 - //SEG518 play_spawn_current::@1 + //SEG584 play_spawn_current::@1 b1: - //SEG519 [233] 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 + //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 cpx #7 beq b2 - //SEG520 play_spawn_current::@3 - //SEG521 [234] (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 + //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 txa asl sta _3 - //SEG522 [235] (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 + //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 tay lda PIECES,y sta current_piece_gfx lda PIECES+1,y sta current_piece_gfx+1 - //SEG523 [236] (byte) current_xpos#23 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG589 [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 - //SEG524 [237] (byte) current_ypos#18 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG590 [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 - //SEG525 [238] (byte) current_piece_char#12 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG591 [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 - //SEG526 play_spawn_current::@return - //SEG527 [239] return + //SEG592 play_spawn_current::@return + //SEG593 [258] return rts - //SEG528 [240] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] - //SEG529 play_spawn_current::@2 + //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 b2: - //SEG530 [241] call sid_rnd + //SEG596 [260] call sid_rnd jsr sid_rnd - //SEG531 [242] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + //SEG597 [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 - //SEG532 play_spawn_current::@7 - //SEG533 [243] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 + //SEG598 play_spawn_current::@7 + //SEG599 [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 - //SEG534 [244] (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 + //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 and #7 tax - //SEG535 [232] phi from play_spawn_current::@7 to play_spawn_current::@1 [phi:play_spawn_current::@7->play_spawn_current::@1] - //SEG536 [232] 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 + //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 jmp b1 } -//SEG537 sid_rnd +//SEG603 sid_rnd sid_rnd: { - //SEG538 [245] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 + //SEG604 [264] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 lda SID_VOICE3_OSC - //SEG539 sid_rnd::@return - //SEG540 [246] return + //SEG605 sid_rnd::@return + //SEG606 [265] return rts } -//SEG541 play_update_score +//SEG607 play_update_score play_update_score: { - .label add_bcd = $24 - //SEG542 [247] if((byte) play_update_score::removed#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_update_score::@return -- vbuaa_eq_0_then_la1 - cmp #0 + .label add_bcd = $27 + .label lines_before = 4 + //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 + cpx #0 beq breturn - //SEG543 play_update_score::@2 - //SEG544 [248] (byte~) play_update_score::$2 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuaa_rol_2 + //SEG609 play_update_score::@3 + //SEG610 [267] (byte~) play_update_score::$2 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 + txa asl asl - //SEG545 [249] (dword) play_update_score::add_bcd#0 ← *((const dword[]) score_add_bcd#0 + (byte~) play_update_score::$2) -- vduz1=pduc1_derefidx_vbuaa + //SEG611 [268] (dword) play_update_score::add_bcd#0 ← *((const dword[]) score_add_bcd#0 + (byte~) play_update_score::$2) -- vduz1=pduc1_derefidx_vbuaa tay lda score_add_bcd,y sta add_bcd @@ -19426,9 +20829,22 @@ play_update_score: { sta add_bcd+2 lda score_add_bcd+3,y sta add_bcd+3 - //SEG546 asm { sed } + //SEG612 [269] (byte~) play_update_score::$3 ← < (word) lines_bcd#15 -- vbuaa=_lo_vwuz1 + lda lines_bcd + //SEG613 [270] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$3 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuaa_band_vbuc1 + and #$f0 + sta lines_before + //SEG614 asm { sed } sed - //SEG547 [251] (dword) score_bcd#3 ← (dword) score_bcd#14 + (dword) play_update_score::add_bcd#0 -- vduz1=vduz1_plus_vduz2 + //SEG615 [272] (word) lines_bcd#23 ← (word) lines_bcd#15 + (byte) play_update_score::removed#0 -- vwuz1=vwuz1_plus_vbuxx + txa + clc + adc lines_bcd + sta lines_bcd + 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 lda score_bcd clc adc add_bcd @@ -19442,564 +20858,580 @@ play_update_score: { lda score_bcd+3 adc add_bcd+3 sta score_bcd+3 - //SEG548 asm { cld } + //SEG617 [274] (byte~) play_update_score::$5 ← < (word) lines_bcd#23 -- vbuaa=_lo_vwuz1 + lda lines_bcd + //SEG618 [275] (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 + //SEG619 [276] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@2 -- vbuz1_eq_vbuaa_then_la1 + cmp lines_before + beq b2 + //SEG620 play_update_score::@4 + //SEG621 [277] (byte) level_bcd#3 ← (byte) level_bcd#14 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_plus_1 + inc level_bcd + //SEG622 [278] phi from play_update_score::@3 play_update_score::@4 to play_update_score::@2 [phi:play_update_score::@3/play_update_score::@4->play_update_score::@2] + //SEG623 [278] phi (byte) level_bcd#22 = (byte) level_bcd#14 [phi:play_update_score::@3/play_update_score::@4->play_update_score::@2#0] -- register_copy + //SEG624 play_update_score::@2 + b2: + //SEG625 asm { cld } cld - //SEG549 [253] phi from play_update_score play_update_score::@2 to play_update_score::@return [phi:play_update_score/play_update_score::@2->play_update_score::@return] - //SEG550 [253] phi (dword) score_bcd#12 = (dword) score_bcd#14 [phi:play_update_score/play_update_score::@2->play_update_score::@return#0] -- register_copy - //SEG551 play_update_score::@return + //SEG626 [280] phi from play_update_score play_update_score::@2 to play_update_score::@return [phi:play_update_score/play_update_score::@2->play_update_score::@return] + //SEG627 [280] phi (byte) level_bcd#12 = (byte) level_bcd#14 [phi:play_update_score/play_update_score::@2->play_update_score::@return#0] -- register_copy + //SEG628 [280] phi (dword) score_bcd#12 = (dword) score_bcd#14 [phi:play_update_score/play_update_score::@2->play_update_score::@return#1] -- register_copy + //SEG629 [280] phi (word) lines_bcd#13 = (word) lines_bcd#15 [phi:play_update_score/play_update_score::@2->play_update_score::@return#2] -- register_copy + //SEG630 play_update_score::@return breturn: - //SEG552 [254] return + //SEG631 [281] return rts } -//SEG553 play_remove_lines +//SEG632 play_remove_lines play_remove_lines: { - .label c = $a - .label x = 8 + .label c = $c + .label x = $a .label y = 4 - .label removed = 7 - .label full = 9 - //SEG554 [256] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] - //SEG555 [256] 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 + .label removed = 9 + .label full = $b + //SEG633 [283] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] + //SEG634 [283] 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 - //SEG556 [256] 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 + //SEG635 [283] 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 - //SEG557 [256] 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 + //SEG636 [283] 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 - //SEG558 [256] 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 + //SEG637 [283] 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 - //SEG559 [256] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] - //SEG560 [256] 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 - //SEG561 [256] 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 - //SEG562 [256] 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 - //SEG563 [256] 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 - //SEG564 play_remove_lines::@1 + //SEG638 [283] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] + //SEG639 [283] 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 + //SEG640 [283] 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 + //SEG641 [283] 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 + //SEG642 [283] 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 + //SEG643 play_remove_lines::@1 b1: - //SEG565 [257] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] - //SEG566 [257] 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 + //SEG644 [284] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] + //SEG645 [284] 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 - //SEG567 [257] 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 + //SEG646 [284] 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 - //SEG568 [257] 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 - //SEG569 [257] 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 - //SEG570 [257] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] - //SEG571 [257] 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 - //SEG572 [257] 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 - //SEG573 [257] 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 - //SEG574 [257] 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 - //SEG575 play_remove_lines::@2 + //SEG647 [284] 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 + //SEG648 [284] 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 + //SEG649 [284] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] + //SEG650 [284] 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 + //SEG651 [284] 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 + //SEG652 [284] 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 + //SEG653 [284] 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 + //SEG654 play_remove_lines::@2 b2: - //SEG576 [258] (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 + //SEG655 [285] (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 - //SEG577 [259] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy + //SEG656 [286] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy dey - //SEG578 [260] 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 + //SEG657 [287] 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 - //SEG579 [261] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] - //SEG580 [261] 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 + //SEG658 [288] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] + //SEG659 [288] 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 - //SEG581 play_remove_lines::@3 + //SEG660 play_remove_lines::@3 b3: - //SEG582 [262] *((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 + //SEG661 [289] *((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 - //SEG583 [263] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx + //SEG662 [290] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx dex - //SEG584 [264] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 + //SEG663 [291] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG585 [265] 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 + //SEG664 [292] 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 - //SEG586 play_remove_lines::@9 - //SEG587 [266] 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 + //SEG665 play_remove_lines::@9 + //SEG666 [293] 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 - //SEG588 play_remove_lines::@10 - //SEG589 [267] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuxx=vbuxx_plus_vbuc1 + //SEG667 play_remove_lines::@10 + //SEG668 [294] (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 - //SEG590 [268] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 + //SEG669 [295] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 inc removed - //SEG591 [269] 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] - //SEG592 [269] 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 - //SEG593 [269] 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 - //SEG594 play_remove_lines::@4 + //SEG670 [296] 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] + //SEG671 [296] 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 + //SEG672 [296] 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 + //SEG673 play_remove_lines::@4 b4: - //SEG595 [270] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 + //SEG674 [297] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG596 [271] 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 + //SEG675 [298] 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 - //SEG597 [272] 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] - //SEG598 [272] 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 - //SEG599 play_remove_lines::@5 + //SEG676 [299] 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] + //SEG677 [299] 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 + //SEG678 play_remove_lines::@5 b5: - //SEG600 [273] 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 + //SEG679 [300] 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 - //SEG601 play_remove_lines::@return - //SEG602 [274] return + //SEG680 play_remove_lines::@return + //SEG681 [301] return rts - //SEG603 play_remove_lines::@6 + //SEG682 play_remove_lines::@6 b6: - //SEG604 [275] *((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 + //SEG683 [302] *((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 - //SEG605 [276] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx + //SEG684 [303] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx dex jmp b5 - //SEG606 [277] phi from play_remove_lines::@2 to play_remove_lines::@18 [phi:play_remove_lines::@2->play_remove_lines::@18] - //SEG607 play_remove_lines::@18 - //SEG608 [261] phi from play_remove_lines::@18 to play_remove_lines::@3 [phi:play_remove_lines::@18->play_remove_lines::@3] - //SEG609 [261] 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 + //SEG685 [304] phi from play_remove_lines::@2 to play_remove_lines::@18 [phi:play_remove_lines::@2->play_remove_lines::@18] + //SEG686 play_remove_lines::@18 + //SEG687 [288] phi from play_remove_lines::@18 to play_remove_lines::@3 [phi:play_remove_lines::@18->play_remove_lines::@3] + //SEG688 [288] 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 } -//SEG610 play_lock_current +//SEG689 play_lock_current play_lock_current: { - .label ypos2 = $e + .label ypos2 = $10 .label playfield_line = 5 - .label col = 8 - .label i = 9 + .label col = $a + .label i = $b .label l = 4 - .label i_2 = 7 - .label i_3 = 7 - .label i_7 = 7 - .label i_9 = 7 - //SEG611 [278] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 + .label i_2 = 9 + .label i_3 = 9 + .label i_7 = 9 + .label i_9 = 9 + //SEG690 [305] (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 - //SEG612 [279] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] - //SEG613 [279] 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 + //SEG691 [306] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] + //SEG692 [306] 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 - //SEG614 [279] 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 + //SEG693 [306] 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 - //SEG615 [279] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy - //SEG616 play_lock_current::@1 + //SEG694 [306] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy + //SEG695 play_lock_current::@1 b1: - //SEG617 [280] (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 + //SEG696 [307] (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 - //SEG618 [281] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 + //SEG697 [308] (byte) play_lock_current::col#0 ← (byte) current_xpos#10 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG619 [282] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] - //SEG620 [282] 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 + //SEG698 [309] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] + //SEG699 [309] 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 - //SEG621 [282] 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 - //SEG622 [282] 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 - //SEG623 play_lock_current::@2 + //SEG700 [309] 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 + //SEG701 [309] 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 + //SEG702 play_lock_current::@2 b2: - //SEG624 [283] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG703 [310] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG625 [284] 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 + //SEG704 [311] 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 - //SEG626 play_lock_current::@4 - //SEG627 [285] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#15 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG705 play_lock_current::@4 + //SEG706 [312] *((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 - //SEG628 play_lock_current::@3 + //SEG707 play_lock_current::@3 b3: - //SEG629 [286] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG708 [313] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG630 [287] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx + //SEG709 [314] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG631 [288] 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 + //SEG710 [315] 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 - //SEG632 play_lock_current::@5 - //SEG633 [289] (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 + //SEG711 play_lock_current::@5 + //SEG712 [316] (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 - //SEG634 [290] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG713 [317] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG635 [291] 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 + //SEG714 [318] 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 - //SEG636 play_lock_current::@return - //SEG637 [292] return + //SEG715 play_lock_current::@return + //SEG716 [319] return rts - //SEG638 play_lock_current::@7 + //SEG717 play_lock_current::@7 b7: - //SEG639 [293] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG718 [320] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG640 [279] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] - //SEG641 [279] 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 - //SEG642 [279] 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 - //SEG643 [279] 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 + //SEG719 [306] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] + //SEG720 [306] 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 + //SEG721 [306] 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 + //SEG722 [306] 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 - //SEG644 play_lock_current::@8 + //SEG723 play_lock_current::@8 b8: - //SEG645 [294] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG724 [321] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG646 [282] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] - //SEG647 [282] 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 - //SEG648 [282] 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 - //SEG649 [282] 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 + //SEG725 [309] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] + //SEG726 [309] 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 + //SEG727 [309] 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 + //SEG728 [309] 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 } -//SEG650 keyboard_event_pressed +//SEG729 keyboard_event_pressed keyboard_event_pressed: { - .label row_bits = 8 - .label keycode = 7 - //SEG651 [296] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuz1_ror_3 + .label row_bits = $a + .label keycode = 9 + //SEG730 [323] (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 - //SEG652 [297] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa + //SEG731 [324] (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 - //SEG653 [298] (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 + //SEG732 [325] (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 - //SEG654 [299] (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 + //SEG733 [326] (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 - //SEG655 keyboard_event_pressed::@return - //SEG656 [300] return + //SEG734 keyboard_event_pressed::@return + //SEG735 [327] return rts } -//SEG657 keyboard_event_get +//SEG736 keyboard_event_get keyboard_event_get: { - //SEG658 [301] 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 + //SEG737 [328] 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 - //SEG659 keyboard_event_get::@3 - //SEG660 [302] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG738 keyboard_event_get::@3 + //SEG739 [329] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG661 [303] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuaa=pbuc1_derefidx_vbuz1 + //SEG740 [330] (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 - //SEG662 [304] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] - //SEG663 [304] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG664 [304] 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 + //SEG741 [331] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG742 [331] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG743 [331] 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 - //SEG665 [304] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG744 [331] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] b1: - //SEG666 [304] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG667 [304] 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 + //SEG745 [331] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG746 [331] 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 - //SEG668 keyboard_event_get::@return + //SEG747 keyboard_event_get::@return breturn: - //SEG669 [305] return + //SEG748 [332] return rts } -//SEG670 keyboard_event_scan +//SEG749 keyboard_event_scan keyboard_event_scan: { - .label row_scan = 9 - .label keycode = 8 - .label row = 7 - //SEG671 [307] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] - //SEG672 [307] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG673 [307] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 + .label row_scan = $b + .label keycode = $a + .label row = 9 + //SEG750 [334] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + //SEG751 [334] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG752 [334] 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 - //SEG674 [307] 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 + //SEG753 [334] 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 - //SEG675 [307] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] - //SEG676 [307] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG677 [307] 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 - //SEG678 [307] 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 - //SEG679 keyboard_event_scan::@1 + //SEG754 [334] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG755 [334] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG756 [334] 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 + //SEG757 [334] 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 + //SEG758 keyboard_event_scan::@1 b1: - //SEG680 [308] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 + //SEG759 [335] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 ldx row - //SEG681 [309] call keyboard_matrix_read + //SEG760 [336] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG682 [310] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + //SEG761 [337] (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 - //SEG683 keyboard_event_scan::@25 - //SEG684 [311] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa + //SEG762 keyboard_event_scan::@25 + //SEG763 [338] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa sta row_scan - //SEG685 [312] 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 + //SEG764 [339] 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 - //SEG686 keyboard_event_scan::@13 - //SEG687 [313] (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 + //SEG765 keyboard_event_scan::@13 + //SEG766 [340] (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 - //SEG688 [314] 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] - //SEG689 [314] 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 - //SEG690 [314] 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 - //SEG691 keyboard_event_scan::@3 + //SEG767 [341] 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] + //SEG768 [341] 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 + //SEG769 [341] 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 + //SEG770 keyboard_event_scan::@3 b3: - //SEG692 [315] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG771 [342] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG693 [316] 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 + //SEG772 [343] 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 - //SEG694 [317] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] - //SEG695 keyboard_event_scan::@20 - //SEG696 [318] call keyboard_event_pressed - //SEG697 [295] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] - //SEG698 [295] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG773 [344] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG774 keyboard_event_scan::@20 + //SEG775 [345] call keyboard_event_pressed + //SEG776 [322] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG777 [322] 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 - //SEG699 [319] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + //SEG778 [346] (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 - //SEG700 keyboard_event_scan::@26 - //SEG701 [320] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + //SEG779 keyboard_event_scan::@26 + //SEG780 [347] (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 - //SEG702 [321] 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 + //SEG781 [348] 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 - //SEG703 [322] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] - //SEG704 keyboard_event_scan::@21 - //SEG705 [323] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] - //SEG706 [323] 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 + //SEG782 [349] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG783 keyboard_event_scan::@21 + //SEG784 [350] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] + //SEG785 [350] 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 - //SEG707 [323] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG786 [350] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] b2: - //SEG708 [323] 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 + //SEG787 [350] 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 - //SEG709 keyboard_event_scan::@9 + //SEG788 keyboard_event_scan::@9 b9: - //SEG710 [324] call keyboard_event_pressed - //SEG711 [295] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] - //SEG712 [295] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG789 [351] call keyboard_event_pressed + //SEG790 [322] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG791 [322] 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 - //SEG713 [325] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + //SEG792 [352] (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 - //SEG714 keyboard_event_scan::@27 - //SEG715 [326] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + //SEG793 keyboard_event_scan::@27 + //SEG794 [353] (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 - //SEG716 [327] 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 + //SEG795 [354] 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 - //SEG717 keyboard_event_scan::@22 - //SEG718 [328] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG796 keyboard_event_scan::@22 + //SEG797 [355] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_RSHIFT tax - //SEG719 [329] 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] - //SEG720 [329] 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 - //SEG721 keyboard_event_scan::@10 + //SEG798 [356] 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] + //SEG799 [356] 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 + //SEG800 keyboard_event_scan::@10 b10: - //SEG722 [330] call keyboard_event_pressed - //SEG723 [295] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] - //SEG724 [295] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG801 [357] call keyboard_event_pressed + //SEG802 [322] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG803 [322] 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 - //SEG725 [331] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + //SEG804 [358] (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 - //SEG726 keyboard_event_scan::@28 - //SEG727 [332] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + //SEG805 keyboard_event_scan::@28 + //SEG806 [359] (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 - //SEG728 [333] 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 + //SEG807 [360] 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 - //SEG729 keyboard_event_scan::@23 - //SEG730 [334] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG808 keyboard_event_scan::@23 + //SEG809 [361] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_CTRL tax - //SEG731 [335] 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] - //SEG732 [335] 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 - //SEG733 keyboard_event_scan::@11 + //SEG810 [362] 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] + //SEG811 [362] 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 + //SEG812 keyboard_event_scan::@11 b11: - //SEG734 [336] call keyboard_event_pressed - //SEG735 [295] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] - //SEG736 [295] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG813 [363] call keyboard_event_pressed + //SEG814 [322] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG815 [322] 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 - //SEG737 [337] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + //SEG816 [364] (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 - //SEG738 keyboard_event_scan::@29 - //SEG739 [338] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + //SEG817 keyboard_event_scan::@29 + //SEG818 [365] (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 - //SEG740 [339] 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 + //SEG819 [366] 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 - //SEG741 keyboard_event_scan::@24 - //SEG742 [340] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuaa=vbuxx_bor_vbuc1 + //SEG820 keyboard_event_scan::@24 + //SEG821 [367] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuaa=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_COMMODORE - //SEG743 keyboard_event_scan::@return + //SEG822 keyboard_event_scan::@return breturn: - //SEG744 [341] return + //SEG823 [368] return rts - //SEG745 [342] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG824 [369] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b6: - //SEG746 [342] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG747 [342] 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 - //SEG748 [342] 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 + //SEG825 [369] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG826 [369] 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 + //SEG827 [369] 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 - //SEG749 [342] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] - //SEG750 [342] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG751 [342] 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 - //SEG752 [342] 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 - //SEG753 keyboard_event_scan::@4 + //SEG828 [369] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG829 [369] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG830 [369] 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 + //SEG831 [369] 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 + //SEG832 keyboard_event_scan::@4 b4: - //SEG754 [343] (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 + //SEG833 [370] (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 - //SEG755 [344] (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 + //SEG834 [371] (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 - //SEG756 [345] 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 + //SEG835 [372] 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 - //SEG757 keyboard_event_scan::@15 - //SEG758 [346] 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 + //SEG836 keyboard_event_scan::@15 + //SEG837 [373] 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 - //SEG759 keyboard_event_scan::@16 - //SEG760 [347] (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 + //SEG838 keyboard_event_scan::@16 + //SEG839 [374] (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 - //SEG761 [348] 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 + //SEG840 [375] 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 - //SEG762 keyboard_event_scan::@17 - //SEG763 [349] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG841 keyboard_event_scan::@17 + //SEG842 [376] *((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 - //SEG764 [350] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG843 [377] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG765 [351] 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] - //SEG766 [351] 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 - //SEG767 keyboard_event_scan::@5 + //SEG844 [378] 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] + //SEG845 [378] 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 + //SEG846 keyboard_event_scan::@5 b5: - //SEG768 [352] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG847 [379] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG769 [353] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx + //SEG848 [380] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx inx - //SEG770 [354] 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 + //SEG849 [381] 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 - //SEG771 keyboard_event_scan::@19 - //SEG772 [355] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG850 keyboard_event_scan::@19 + //SEG851 [382] *((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 - //SEG773 keyboard_event_scan::@7 + //SEG852 keyboard_event_scan::@7 b7: - //SEG774 [356] (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 + //SEG853 [383] (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 - //SEG775 [357] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa + //SEG854 [384] *((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 - //SEG776 [358] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG855 [385] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5 } -//SEG777 keyboard_matrix_read +//SEG856 keyboard_matrix_read keyboard_matrix_read: { - //SEG778 [359] *((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 + //SEG857 [386] *((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 - //SEG779 [360] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 + //SEG858 [387] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff - //SEG780 keyboard_matrix_read::@return - //SEG781 [361] return + //SEG859 keyboard_matrix_read::@return + //SEG860 [388] return rts } -//SEG782 render_show +//SEG861 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 - //SEG783 [362] 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 + //SEG862 [389] 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 - //SEG784 [363] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] - //SEG785 render_show::toD0182 - //SEG786 [364] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] - //SEG787 [364] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@2#0] -- vbuaa=vbuc1 + //SEG863 [390] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] + //SEG864 render_show::toD0182 + //SEG865 [391] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] + //SEG866 [391] 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 - //SEG788 render_show::@2 + //SEG867 render_show::@2 b2: - //SEG789 [365] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuaa + //SEG868 [392] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuaa sta D018 - //SEG790 [366] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 + //SEG869 [393] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 lda render_screen_show sta render_screen_showing - //SEG791 render_show::@return - //SEG792 [367] return + //SEG870 render_show::@return + //SEG871 [394] return rts - //SEG793 [368] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] - //SEG794 render_show::toD0181 + //SEG872 [395] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] + //SEG873 render_show::toD0181 toD0181: - //SEG795 [364] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] - //SEG796 [364] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@2#0] -- vbuaa=vbuc1 + //SEG874 [391] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] + //SEG875 [391] 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 } -//SEG797 play_init +//SEG876 play_init play_init: { .label pli = 5 .label idx = 2 - //SEG798 [370] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] - //SEG799 [370] 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 + //SEG877 [397] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] + //SEG878 [397] 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 - //SEG800 [370] 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 + //SEG879 [397] 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 - //SEG801 [370] 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 + //SEG880 [397] 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 - //SEG802 [370] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] - //SEG803 [370] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy - //SEG804 [370] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy - //SEG805 [370] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy - //SEG806 play_init::@1 + //SEG881 [397] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] + //SEG882 [397] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy + //SEG883 [397] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy + //SEG884 [397] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy + //SEG885 play_init::@1 b1: - //SEG807 [371] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG886 [398] (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 - //SEG808 [372] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG887 [399] *((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 - //SEG809 [373] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG888 [400] *((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 - //SEG810 [374] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG889 [401] (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 @@ -20007,200 +21439,200 @@ play_init: { bcc !+ inc pli+1 !: - //SEG811 [375] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG890 [402] (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 - //SEG812 [376] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx + //SEG891 [403] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx inx - //SEG813 [377] 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 + //SEG892 [404] 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 - //SEG814 play_init::@2 - //SEG815 [378] *((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 + //SEG893 play_init::@2 + //SEG894 [405] *((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 - //SEG816 play_init::@return - //SEG817 [379] return + //SEG895 play_init::@return + //SEG896 [406] return rts } -//SEG818 sprites_irq_init +//SEG897 sprites_irq_init sprites_irq_init: { - //SEG819 asm { sei } + //SEG898 asm { sei } sei - //SEG820 [381] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG899 [408] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG821 asm { ldaCIA1_INTERRUPT } + //SEG900 asm { ldaCIA1_INTERRUPT } lda CIA1_INTERRUPT - //SEG822 [383] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 + //SEG901 [410] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_DDR_MEMORY_MASK sta PROCPORT_DDR - //SEG823 [384] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 + //SEG902 [411] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - //SEG824 [385] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 + //SEG903 [412] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG825 [386] *((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 + //SEG904 [413] *((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 - //SEG826 [387] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 + //SEG905 [414] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER_FIRST sta RASTER - //SEG827 [388] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG906 [415] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_ENABLE - //SEG828 [389] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 + //SEG907 [416] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 lda #sprites_irq sta HARDWARE_IRQ+1 - //SEG829 asm { cli } + //SEG908 asm { cli } cli - //SEG830 sprites_irq_init::@return - //SEG831 [391] return + //SEG909 sprites_irq_init::@return + //SEG910 [418] return rts } -//SEG832 sprites_init +//SEG911 sprites_init sprites_init: { .label xpos = 2 - //SEG833 [392] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + //SEG912 [419] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 lda #$f sta SPRITES_ENABLE - //SEG834 [393] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG913 [420] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SPRITES_MC - //SEG835 [394] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG914 [421] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 sta SPRITES_EXPAND_Y - //SEG836 [395] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG915 [422] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 sta SPRITES_EXPAND_X - //SEG837 [396] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] - //SEG838 [396] 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 + //SEG916 [423] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] + //SEG917 [423] 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 - //SEG839 [396] 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 + //SEG918 [423] 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 - //SEG840 [396] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] - //SEG841 [396] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy - //SEG842 [396] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy - //SEG843 sprites_init::@1 + //SEG919 [423] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] + //SEG920 [423] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy + //SEG921 [423] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy + //SEG922 sprites_init::@1 b1: - //SEG844 [397] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG923 [424] (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 - //SEG845 [398] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG924 [425] *((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 - //SEG846 [399] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG925 [426] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #BLACK sta SPRITES_COLS,x - //SEG847 [400] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG926 [427] (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 - //SEG848 [401] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuxx=_inc_vbuxx + //SEG927 [428] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuxx=_inc_vbuxx inx - //SEG849 [402] 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 + //SEG928 [429] 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 - //SEG850 sprites_init::@return - //SEG851 [403] return + //SEG929 sprites_init::@return + //SEG930 [430] return rts } -//SEG852 render_init +//SEG931 render_init render_init: { .const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_CHARSET)>>6 .label li_1 = 5 - .label li_2 = $13 - //SEG853 render_init::vicSelectGfxBank1 - //SEG854 [405] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + .label li_2 = 7 + //SEG932 render_init::vicSelectGfxBank1 + //SEG933 [432] *((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 - //SEG855 [406] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] - //SEG856 render_init::vicSelectGfxBank1_toDd001 - //SEG857 render_init::vicSelectGfxBank1_@1 - //SEG858 [407] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 + //SEG934 [433] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] + //SEG935 render_init::vicSelectGfxBank1_toDd001 + //SEG936 render_init::vicSelectGfxBank1_@1 + //SEG937 [434] *((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 - //SEG859 render_init::@3 - //SEG860 [408] *((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 + //SEG938 render_init::@3 + //SEG939 [435] *((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 - //SEG861 [409] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG940 [436] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BORDERCOL - //SEG862 [410] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG941 [437] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 sta BGCOL1 - //SEG863 [411] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 + //SEG942 [438] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 lda #BLUE sta BGCOL2 - //SEG864 [412] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 + //SEG943 [439] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 lda #CYAN sta BGCOL3 - //SEG865 [413] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 + //SEG944 [440] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 lda #GREY sta BGCOL4 - //SEG866 [414] call render_screen_original - //SEG867 [427] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] - //SEG868 [427] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 + //SEG945 [441] call render_screen_original + //SEG946 [454] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] + //SEG947 [454] 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 - //SEG869 [415] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] - //SEG870 render_init::@4 - //SEG871 [416] call render_screen_original - //SEG872 [427] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] - //SEG873 [427] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_init::@4->render_screen_original#0] -- pbuz1=pbuc1 + //SEG948 [442] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] + //SEG949 render_init::@4 + //SEG950 [443] call render_screen_original + //SEG951 [454] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] + //SEG952 [454] 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 - //SEG874 [417] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] - //SEG875 [417] 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 + //SEG953 [444] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] + //SEG954 [444] 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 - //SEG876 [417] 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 + //SEG955 [444] 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 - //SEG877 [417] 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 + //SEG956 [444] 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 - //SEG878 [417] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] - //SEG879 [417] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - //SEG880 [417] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy - //SEG881 [417] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy - //SEG882 render_init::@1 + //SEG957 [444] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + //SEG958 [444] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG959 [444] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + //SEG960 [444] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy + //SEG961 render_init::@1 b1: - //SEG883 [418] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG962 [445] (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 - //SEG884 [419] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG963 [446] *((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 - //SEG885 [420] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG964 [447] (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 - //SEG886 [421] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG965 [448] *((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 - //SEG887 [422] (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 + //SEG966 [449] (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 @@ -20208,7 +21640,7 @@ render_init: { bcc !+ inc li_1+1 !: - //SEG888 [423] (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 + //SEG967 [450] (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 @@ -20216,313 +21648,313 @@ render_init: { bcc !+ inc li_2+1 !: - //SEG889 [424] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx + //SEG968 [451] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx inx - //SEG890 [425] 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 + //SEG969 [452] 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 - //SEG891 render_init::@return - //SEG892 [426] return + //SEG970 render_init::@return + //SEG971 [453] return rts } -//SEG893 render_screen_original +//SEG972 render_screen_original render_screen_original: { .const SPACE = 0 - .label screen = $16 - .label cols = $1b + .label screen = $11 + .label cols = $17 .label oscr = 5 - .label ocols = $13 + .label ocols = 7 .label y = 2 - //SEG894 [428] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] - //SEG895 [428] 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 + //SEG973 [455] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] + //SEG974 [455] 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 - //SEG896 [428] 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 + //SEG975 [455] 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 - //SEG897 [428] 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 + //SEG976 [455] 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 - //SEG898 [428] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS#0 [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 + //SEG977 [455] 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 - //SEG899 [428] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#4] -- register_copy - //SEG900 [428] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] - //SEG901 [428] 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 - //SEG902 [428] 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 - //SEG903 [428] 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 - //SEG904 [428] 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 - //SEG905 [428] 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 - //SEG906 render_screen_original::@1 + //SEG978 [455] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#4] -- register_copy + //SEG979 [455] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] + //SEG980 [455] 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 + //SEG981 [455] 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 + //SEG982 [455] 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 + //SEG983 [455] 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 + //SEG984 [455] 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 + //SEG985 render_screen_original::@1 b1: - //SEG907 [429] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] - //SEG908 [429] 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 + //SEG986 [456] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] + //SEG987 [456] 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 - //SEG909 [429] 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 - //SEG910 [429] 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 - //SEG911 [429] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] - //SEG912 [429] 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 - //SEG913 [429] 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 - //SEG914 [429] 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 - //SEG915 render_screen_original::@2 + //SEG988 [456] 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 + //SEG989 [456] 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 + //SEG990 [456] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] + //SEG991 [456] 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 + //SEG992 [456] 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 + //SEG993 [456] 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 + //SEG994 render_screen_original::@2 b2: - //SEG916 [430] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG995 [457] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG917 [431] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 + //SEG996 [458] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG918 [432] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG997 [459] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG919 [433] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 + //SEG998 [460] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG920 [434] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx + //SEG999 [461] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx inx - //SEG921 [435] 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 + //SEG1000 [462] 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 - //SEG922 [436] 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] - //SEG923 [436] 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 - //SEG924 [436] 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 - //SEG925 [436] 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 - //SEG926 [436] 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 - //SEG927 [436] 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 - //SEG928 render_screen_original::@3 + //SEG1001 [463] 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] + //SEG1002 [463] 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 + //SEG1003 [463] 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 + //SEG1004 [463] 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 + //SEG1005 [463] 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 + //SEG1006 [463] 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 + //SEG1007 render_screen_original::@3 b3: - //SEG929 [437] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG1008 [464] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (oscr),y sta (screen),y - //SEG930 [438] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 + //SEG1009 [465] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG931 [439] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 + //SEG1010 [466] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 inc oscr bne !+ inc oscr+1 !: - //SEG932 [440] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG1011 [467] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (ocols),y sta (cols),y - //SEG933 [441] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 + //SEG1012 [468] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG934 [442] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 + //SEG1013 [469] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 inc ocols bne !+ inc ocols+1 !: - //SEG935 [443] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx + //SEG1014 [470] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx inx - //SEG936 [444] 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 + //SEG1015 [471] 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 - //SEG937 [445] 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] - //SEG938 [445] 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 - //SEG939 [445] 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 - //SEG940 [445] 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 - //SEG941 render_screen_original::@4 + //SEG1016 [472] 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] + //SEG1017 [472] 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 + //SEG1018 [472] 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 + //SEG1019 [472] 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 + //SEG1020 render_screen_original::@4 b4: - //SEG942 [446] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG1021 [473] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG943 [447] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 + //SEG1022 [474] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG944 [448] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG1023 [475] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG945 [449] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 + //SEG1024 [476] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG946 [450] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx + //SEG1025 [477] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx inx - //SEG947 [451] 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 + //SEG1026 [478] 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 - //SEG948 render_screen_original::@7 - //SEG949 [452] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 + //SEG1027 render_screen_original::@7 + //SEG1028 [479] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG950 [453] 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 + //SEG1029 [480] 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 - //SEG951 render_screen_original::@return - //SEG952 [454] return + //SEG1030 render_screen_original::@return + //SEG1031 [481] return rts } -//SEG953 sid_rnd_init +//SEG1032 sid_rnd_init sid_rnd_init: { - //SEG954 [455] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 + //SEG1033 [482] *((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 - //SEG955 [456] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG1034 [483] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 lda #SID_CONTROL_NOISE sta SID_VOICE3_CONTROL - //SEG956 sid_rnd_init::@return - //SEG957 [457] return + //SEG1035 sid_rnd_init::@return + //SEG1036 [484] return rts } -//SEG958 sprites_irq +//SEG1037 sprites_irq sprites_irq: { .const toSpritePtr2_return = PLAYFIELD_SPRITES>>6 - //SEG959 entry interrupt(HARDWARE_CLOBBER) + //SEG1038 entry interrupt(HARDWARE_CLOBBER) sta rega+1 stx regx+1 - //SEG960 asm { cld } + //SEG1039 asm { cld } cld - //SEG961 [459] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuaa=vbuz1 + //SEG1040 [486] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuaa=vbuz1 lda irq_sprite_ypos - //SEG962 [460] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1041 [487] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS - //SEG963 [461] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1042 [488] *((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 - //SEG964 [462] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1043 [489] *((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 - //SEG965 [463] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1044 [490] *((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 - //SEG966 sprites_irq::@1 + //SEG1045 sprites_irq::@1 b1: - //SEG967 [464] if(*((const byte*) RASTER#0)<(byte) irq_sprite_ypos#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 + //SEG1046 [491] 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 - //SEG968 sprites_irq::@7 - //SEG969 [465] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuxx=vbuz1 + //SEG1047 sprites_irq::@7 + //SEG1048 [492] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuxx=vbuz1 ldx irq_sprite_ptr - //SEG970 [466] 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 + //SEG1049 [493] 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 - //SEG971 sprites_irq::@8 - //SEG972 [467] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx + //SEG1050 sprites_irq::@8 + //SEG1051 [494] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_2 - //SEG973 [468] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuxx=_inc_vbuxx + //SEG1052 [495] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuxx=_inc_vbuxx inx - //SEG974 [469] *((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 + //SEG1053 [496] *((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 - //SEG975 [470] *((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 + //SEG1054 [497] *((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 - //SEG976 [471] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuxx=_inc_vbuxx + //SEG1055 [498] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuxx=_inc_vbuxx inx - //SEG977 [472] *((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 + //SEG1056 [499] *((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 - //SEG978 sprites_irq::@3 + //SEG1057 sprites_irq::@3 b3: - //SEG979 [473] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz1 + //SEG1058 [500] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz1 inc irq_cnt - //SEG980 [474] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 + //SEG1059 [501] 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 - //SEG981 sprites_irq::@10 - //SEG982 [475] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1060 sprites_irq::@10 + //SEG1061 [502] (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 - //SEG983 [476] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1062 [503] (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 - //SEG984 [477] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1063 [504] (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 - //SEG985 [478] phi from sprites_irq::@10 sprites_irq::@13 to sprites_irq::@5 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5] - //SEG986 [478] phi (byte) irq_raster_next#13 = (byte) irq_raster_next#2 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5#0] -- register_copy - //SEG987 sprites_irq::@5 + //SEG1064 [505] phi from sprites_irq::@10 sprites_irq::@13 to sprites_irq::@5 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5] + //SEG1065 [505] phi (byte) irq_raster_next#13 = (byte) irq_raster_next#2 [phi:sprites_irq::@10/sprites_irq::@13->sprites_irq::@5#0] -- register_copy + //SEG1066 sprites_irq::@5 b5: - //SEG988 [479] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 -- vbuxx=vbuz1 + //SEG1067 [506] (byte) sprites_irq::raster_next#0 ← (byte) irq_raster_next#13 -- vbuxx=vbuz1 ldx irq_raster_next - //SEG989 [480] (byte~) sprites_irq::$4 ← (byte) sprites_irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuxx_band_vbuc1 + //SEG1068 [507] (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 - //SEG990 [481] if((byte~) sprites_irq::$4!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto sprites_irq::@6 -- vbuaa_neq_vbuc1_then_la1 + //SEG1069 [508] 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 - //SEG991 sprites_irq::@12 - //SEG992 [482] (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 + //SEG1070 sprites_irq::@12 + //SEG1071 [509] (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 - //SEG993 [483] phi from sprites_irq::@12 sprites_irq::@5 to sprites_irq::@6 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6] - //SEG994 [483] 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 - //SEG995 sprites_irq::@6 + //SEG1072 [510] phi from sprites_irq::@12 sprites_irq::@5 to sprites_irq::@6 [phi:sprites_irq::@12/sprites_irq::@5->sprites_irq::@6] + //SEG1073 [510] 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 + //SEG1074 sprites_irq::@6 b6: - //SEG996 [484] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 -- _deref_pbuc1=vbuxx + //SEG1075 [511] *((const byte*) RASTER#0) ← (byte) sprites_irq::raster_next#2 -- _deref_pbuc1=vbuxx stx RASTER - //SEG997 [485] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG1076 [512] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG998 sprites_irq::@return - //SEG999 [486] return - exit interrupt(HARDWARE_CLOBBER) + //SEG1077 sprites_irq::@return + //SEG1078 [513] return - exit interrupt(HARDWARE_CLOBBER) rega: lda #00 regx: ldx #00 rti - //SEG1000 sprites_irq::@4 + //SEG1079 sprites_irq::@4 b4: - //SEG1001 [487] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 + //SEG1080 [514] (byte) irq_cnt#14 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 lda #0 sta irq_cnt - //SEG1002 [488] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 + //SEG1081 [515] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next - //SEG1003 [489] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 + //SEG1082 [516] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50 -- vbuz1=vbuc1 lda #$32 sta irq_sprite_ypos - //SEG1004 [490] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] - //SEG1005 sprites_irq::toSpritePtr2 - //SEG1006 sprites_irq::@13 - //SEG1007 [491] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 + //SEG1083 [517] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] + //SEG1084 sprites_irq::toSpritePtr2 + //SEG1085 sprites_irq::@13 + //SEG1086 [518] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 lda #toSpritePtr2_return sta irq_sprite_ptr jmp b5 - //SEG1008 sprites_irq::@2 + //SEG1087 sprites_irq::@2 b2: - //SEG1009 [492] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx + //SEG1088 [519] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_1 - //SEG1010 [493] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx + //SEG1089 [520] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx txa clc adc #1 - //SEG1011 [494] *((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 + //SEG1090 [521] *((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 - //SEG1012 [495] *((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 + //SEG1091 [522] *((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 - //SEG1013 [496] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuaa=_inc_vbuaa + //SEG1092 [523] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuaa=_inc_vbuaa clc adc #1 - //SEG1014 [497] *((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 + //SEG1093 [524] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_1+3 jmp b3 } diff --git a/src/test/ref/examples/tetris/tetris.sym b/src/test/ref/examples/tetris/tetris.sym index 6aba4b128..55cb748b1 100644 --- a/src/test/ref/examples/tetris/tetris.sym +++ b/src/test/ref/examples/tetris/tetris.sym @@ -1,8 +1,8 @@ (label) @14 -(label) @21 (label) @22 -(label) @34 +(label) @23 (label) @35 +(label) @36 (label) @begin (label) @end (byte*) BGCOL @@ -286,77 +286,77 @@ (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_orientation -(byte) current_orientation#10 current_orientation zp ZP_BYTE:21 3.371428571428571 -(byte) current_orientation#14 current_orientation zp ZP_BYTE:21 0.32653061224489793 -(byte) current_orientation#19 current_orientation zp ZP_BYTE:21 6.210526315789475 -(byte) current_orientation#29 current_orientation zp ZP_BYTE:21 4.0 -(byte) current_orientation#4 current_orientation zp ZP_BYTE:21 3.0 +(byte) current_orientation#10 current_orientation zp ZP_BYTE:25 3.371428571428571 +(byte) current_orientation#14 current_orientation zp ZP_BYTE:25 0.32653061224489793 +(byte) current_orientation#19 current_orientation zp ZP_BYTE:25 6.210526315789475 +(byte) current_orientation#29 current_orientation zp ZP_BYTE:25 4.0 +(byte) current_orientation#4 current_orientation zp ZP_BYTE:25 3.0 (byte*) current_piece -(byte*) current_piece#10 current_piece zp ZP_WORD:19 1.771428571428571 +(byte*) current_piece#10 current_piece zp ZP_WORD:23 1.771428571428571 (byte*) current_piece#12 current_piece#12 zp ZP_WORD:5 10.0 -(byte*) current_piece#16 current_piece zp ZP_WORD:19 3.428571428571428 -(byte*) current_piece#20 current_piece zp ZP_WORD:19 6.0 -(byte*~) current_piece#73 current_piece zp ZP_WORD:19 4.0 +(byte*) current_piece#16 current_piece zp ZP_WORD:23 3.428571428571428 +(byte*) current_piece#20 current_piece zp ZP_WORD:23 6.0 +(byte*~) current_piece#73 current_piece zp ZP_WORD:23 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:19 4.0 +(byte*~) current_piece#80 current_piece zp ZP_WORD:23 4.0 (byte) current_piece_char -(byte) current_piece_char#1 current_piece_char zp ZP_BYTE:25 4.379310344827585 -(byte) current_piece_char#12 current_piece_char zp ZP_BYTE:25 0.6153846153846154 -(byte) current_piece_char#15 current_piece_char zp ZP_BYTE:25 194.59615384615384 -(byte) current_piece_char#20 current_piece_char zp ZP_BYTE:25 6.0 +(byte) current_piece_char#1 current_piece_char zp ZP_BYTE:29 4.379310344827585 +(byte) current_piece_char#12 current_piece_char zp ZP_BYTE:29 0.6153846153846154 +(byte) current_piece_char#15 current_piece_char zp ZP_BYTE:29 194.59615384615384 +(byte) current_piece_char#20 current_piece_char zp ZP_BYTE:29 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:22 0.2962962962962963 +(byte*) current_piece_gfx#1 current_piece_gfx zp ZP_WORD:26 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:22 6.789473684210528 -(byte*) current_piece_gfx#16 current_piece_gfx zp ZP_WORD:22 0.5 -(byte*) current_piece_gfx#20 current_piece_gfx zp ZP_WORD:22 194.59615384615384 -(byte*) current_piece_gfx#26 current_piece_gfx zp ZP_WORD:22 6.0 -(byte*) current_piece_gfx#3 current_piece_gfx zp ZP_WORD:22 4.0 +(byte*) current_piece_gfx#14 current_piece_gfx zp ZP_WORD:26 6.789473684210528 +(byte*) current_piece_gfx#16 current_piece_gfx zp ZP_WORD:26 0.5 +(byte*) current_piece_gfx#20 current_piece_gfx zp ZP_WORD:26 194.59615384615384 +(byte*) current_piece_gfx#26 current_piece_gfx zp ZP_WORD:26 6.0 +(byte*) current_piece_gfx#3 current_piece_gfx zp ZP_WORD:26 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:24 0.72 -(byte) current_xpos#10 current_xpos zp ZP_BYTE:24 21.557692307692307 -(byte~) current_xpos#112 current_xpos#112 zp ZP_BYTE:8 1.3333333333333333 -(byte~) current_xpos#113 current_xpos#113 zp ZP_BYTE:8 7.333333333333333 -(byte) current_xpos#19 current_xpos zp ZP_BYTE:24 3.139534883720931 -(byte) current_xpos#2 current_xpos zp ZP_BYTE:24 4.0 -(byte) current_xpos#23 current_xpos zp ZP_BYTE:24 0.5333333333333333 -(byte) current_xpos#33 current_xpos zp ZP_BYTE:24 6.0 -(byte) current_xpos#4 current_xpos zp ZP_BYTE:24 4.0 -(byte) current_xpos#47 current_xpos#47 zp ZP_BYTE:8 5.181818181818182 +(byte) current_xpos#1 current_xpos zp ZP_BYTE:28 0.72 +(byte) current_xpos#10 current_xpos zp ZP_BYTE:28 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:28 3.139534883720931 +(byte) current_xpos#2 current_xpos zp ZP_BYTE:28 4.0 +(byte) current_xpos#23 current_xpos zp ZP_BYTE:28 0.5333333333333333 +(byte) current_xpos#33 current_xpos zp ZP_BYTE:28 6.0 +(byte) current_xpos#4 current_xpos zp ZP_BYTE:28 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:14 4.0 -(byte) current_ypos#13 current_ypos zp ZP_BYTE:14 1.8999999999999995 -(byte) current_ypos#18 current_ypos zp ZP_BYTE:14 0.5714285714285714 -(byte) current_ypos#21 current_ypos zp ZP_BYTE:14 3.485714285714285 -(byte) current_ypos#29 current_ypos zp ZP_BYTE:14 6.0 +(byte) current_ypos#0 current_ypos zp ZP_BYTE:16 4.0 +(byte) current_ypos#13 current_ypos zp ZP_BYTE:16 1.8999999999999995 +(byte) current_ypos#18 current_ypos zp ZP_BYTE:16 0.5714285714285714 +(byte) current_ypos#21 current_ypos zp ZP_BYTE:16 3.485714285714285 +(byte) current_ypos#29 current_ypos zp ZP_BYTE:16 6.0 (byte~) current_ypos#86 reg byte y 1.0 (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:33 0.19047619047619047 -(byte) irq_cnt#1 irq_cnt zp ZP_BYTE:33 4.0 -(byte) irq_cnt#14 irq_cnt zp ZP_BYTE:33 20.0 +(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_raster_next -(byte) irq_raster_next#0 irq_raster_next zp ZP_BYTE:29 0.17391304347826086 -(byte) irq_raster_next#1 irq_raster_next zp ZP_BYTE:29 1.0 -(byte) irq_raster_next#13 irq_raster_next zp ZP_BYTE:29 6.0 -(byte) irq_raster_next#2 irq_raster_next zp ZP_BYTE:29 1.3333333333333333 +(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_sprite_ptr -(byte) irq_sprite_ptr#0 irq_sprite_ptr zp ZP_BYTE:32 0.24 -(byte) irq_sprite_ptr#1 irq_sprite_ptr zp ZP_BYTE:32 20.0 -(byte) irq_sprite_ptr#2 irq_sprite_ptr zp ZP_BYTE:32 20.0 +(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_ypos -(byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:31 0.7083333333333334 -(byte) irq_sprite_ypos#1 irq_sprite_ypos zp ZP_BYTE:31 20.0 -(byte) irq_sprite_ypos#2 irq_sprite_ypos zp ZP_BYTE:31 20.0 +(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[]) keyboard_char_keycodes (byte()) keyboard_event_get() (label) keyboard_event_get::@3 @@ -370,7 +370,7 @@ (byte~) keyboard_event_pressed::$1 reg byte a 4.0 (label) keyboard_event_pressed::@return (byte) keyboard_event_pressed::keycode -(byte) keyboard_event_pressed::keycode#5 keycode zp ZP_BYTE:7 1.3333333333333333 +(byte) keyboard_event_pressed::keycode#5 keycode zp ZP_BYTE:9 1.3333333333333333 (byte) keyboard_event_pressed::return (byte) keyboard_event_pressed::return#0 reg byte a 4.0 (byte) keyboard_event_pressed::return#1 reg byte a 4.0 @@ -379,7 +379,7 @@ (byte) keyboard_event_pressed::return#12 reg byte a 4.0 (byte) keyboard_event_pressed::return#2 reg byte a 4.0 (byte) keyboard_event_pressed::row_bits -(byte) keyboard_event_pressed::row_bits#0 row_bits zp ZP_BYTE:8 2.0 +(byte) keyboard_event_pressed::row_bits#0 row_bits zp ZP_BYTE:10 2.0 (void()) keyboard_event_scan() (byte/word/dword~) keyboard_event_scan::$11 reg byte a 20002.0 (byte~) keyboard_event_scan::$14 reg byte a 4.0 @@ -418,28 +418,28 @@ (byte) keyboard_event_scan::event_type (byte) keyboard_event_scan::event_type#0 reg byte a 20002.0 (byte) keyboard_event_scan::keycode -(byte) keyboard_event_scan::keycode#1 keycode zp ZP_BYTE:8 2002.0 -(byte) keyboard_event_scan::keycode#10 keycode zp ZP_BYTE:8 3154.230769230769 -(byte) keyboard_event_scan::keycode#11 keycode zp ZP_BYTE:8 500.5 -(byte) keyboard_event_scan::keycode#14 keycode zp ZP_BYTE:8 1001.0 -(byte) keyboard_event_scan::keycode#15 keycode zp ZP_BYTE:8 5250.75 +(byte) keyboard_event_scan::keycode#1 keycode zp ZP_BYTE:10 2002.0 +(byte) keyboard_event_scan::keycode#10 keycode zp ZP_BYTE:10 3154.230769230769 +(byte) keyboard_event_scan::keycode#11 keycode zp ZP_BYTE:10 500.5 +(byte) keyboard_event_scan::keycode#14 keycode zp ZP_BYTE:10 1001.0 +(byte) keyboard_event_scan::keycode#15 keycode zp ZP_BYTE:10 5250.75 (byte) keyboard_event_scan::row -(byte) keyboard_event_scan::row#1 row zp ZP_BYTE:7 1501.5 -(byte) keyboard_event_scan::row#2 row zp ZP_BYTE:7 600.24 +(byte) keyboard_event_scan::row#1 row zp ZP_BYTE:9 1501.5 +(byte) keyboard_event_scan::row#2 row zp ZP_BYTE:9 600.24 (byte) keyboard_event_scan::row_scan -(byte) keyboard_event_scan::row_scan#0 row_scan zp ZP_BYTE:9 1278.0555555555554 +(byte) keyboard_event_scan::row_scan#0 row_scan zp ZP_BYTE:11 1278.0555555555554 (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:26 20002.0 -(byte) keyboard_events_size#10 keyboard_events_size zp ZP_BYTE:26 8100.9000000000015 -(byte) keyboard_events_size#13 keyboard_events_size zp ZP_BYTE:26 97.06451612903226 -(byte) keyboard_events_size#16 keyboard_events_size zp ZP_BYTE:26 3.515151515151515 -(byte) keyboard_events_size#19 keyboard_events_size zp ZP_BYTE:26 18.999999999999996 -(byte) keyboard_events_size#2 keyboard_events_size zp ZP_BYTE:26 20002.0 -(byte) keyboard_events_size#29 keyboard_events_size zp ZP_BYTE:26 429.2857142857143 -(byte) keyboard_events_size#30 keyboard_events_size zp ZP_BYTE:26 10201.2 -(byte) keyboard_events_size#4 keyboard_events_size zp ZP_BYTE:26 3.0 +(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[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,6 +461,19 @@ (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_bcd +(byte) level_bcd#10 level_bcd zp ZP_BYTE:30 2.313725490196078 +(byte) level_bcd#12 level_bcd zp ZP_BYTE:30 1.0 +(byte) level_bcd#14 level_bcd zp ZP_BYTE:30 2.30188679245283 +(byte) level_bcd#19 level_bcd zp ZP_BYTE:30 6.0 +(byte) level_bcd#22 level_bcd zp ZP_BYTE:30 3.0 +(byte) level_bcd#3 level_bcd zp ZP_BYTE:30 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.0 +(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 0.75 (void()) main() (byte~) main::$12 reg byte a 202.0 (byte~) main::$13 reg byte a 202.0 @@ -486,10 +499,10 @@ (label) main::@4 (label) main::@6 (byte) main::key_event -(byte) main::key_event#0 key_event zp ZP_BYTE:13 36.72727272727273 +(byte) main::key_event#0 key_event zp ZP_BYTE:15 36.72727272727273 (byte) main::render -(byte) main::render#1 render zp ZP_BYTE:34 40.4 -(byte) main::render#2 render zp ZP_BYTE:34 40.4 +(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#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 @@ -508,18 +521,18 @@ (byte) play_collision::c#1 reg byte x 10001.0 (byte) play_collision::c#2 reg byte x 2222.4444444444443 (byte) play_collision::col -(byte) play_collision::col#1 col zp ZP_BYTE:12 5000.5 -(byte) play_collision::col#2 col zp ZP_BYTE:12 6375.75 -(byte~) play_collision::col#9 col zp ZP_BYTE:12 2002.0 +(byte) play_collision::col#1 col zp ZP_BYTE:14 5000.5 +(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:35 1615.6153846153845 -(byte~) play_collision::i#11 i#11 zp ZP_BYTE:11 2002.0 -(byte~) play_collision::i#13 i#13 zp ZP_BYTE:11 20002.0 -(byte) play_collision::i#2 i#2 zp ZP_BYTE:11 15502.0 -(byte) play_collision::i#3 i#3 zp ZP_BYTE:11 667.3333333333334 +(byte) play_collision::i#1 i zp ZP_BYTE:38 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 +(byte) play_collision::i#3 i#3 zp ZP_BYTE:13 667.3333333333334 (byte) play_collision::l -(byte) play_collision::l#1 l zp ZP_BYTE:10 1001.0 -(byte) play_collision::l#6 l zp ZP_BYTE:10 125.125 +(byte) play_collision::l#1 l zp ZP_BYTE:12 1001.0 +(byte) play_collision::l#6 l zp ZP_BYTE:12 125.125 (byte) play_collision::orientation (byte) play_collision::orientation#0 reg byte x 2.0 (byte) play_collision::orientation#1 reg byte x 2.0 @@ -529,7 +542,7 @@ (byte*) play_collision::piece_gfx (byte*) play_collision::piece_gfx#0 piece_gfx zp ZP_WORD:5 476.3333333333333 (byte*) play_collision::playfield_line -(byte*) play_collision::playfield_line#0 playfield_line zp ZP_WORD:27 785.8571428571429 +(byte*) play_collision::playfield_line#0 playfield_line zp ZP_WORD:7 785.8571428571429 (byte) play_collision::return (byte) play_collision::return#0 reg byte a 4.0 (byte) play_collision::return#1 reg byte a 4.0 @@ -537,11 +550,11 @@ (byte) play_collision::return#13 reg byte a 4.0 (byte) play_collision::return#14 reg byte a 1.3333333333333333 (byte) play_collision::xpos -(byte) play_collision::xpos#0 xpos zp ZP_BYTE:8 1.3333333333333333 -(byte) play_collision::xpos#1 xpos zp ZP_BYTE:8 1.0 -(byte) play_collision::xpos#2 xpos zp ZP_BYTE:8 1.0 -(byte) play_collision::xpos#3 xpos zp ZP_BYTE:8 1.0 -(byte) play_collision::xpos#5 xpos zp ZP_BYTE:8 45.86363636363637 +(byte) play_collision::xpos#0 xpos zp ZP_BYTE:10 1.3333333333333333 +(byte) play_collision::xpos#1 xpos zp ZP_BYTE:10 1.0 +(byte) play_collision::xpos#2 xpos zp ZP_BYTE:10 1.0 +(byte) play_collision::xpos#3 xpos zp ZP_BYTE:10 1.0 +(byte) play_collision::xpos#5 xpos zp ZP_BYTE:10 45.86363636363637 (byte) play_collision::ypos (byte) play_collision::ypos#0 reg byte y 1.0 (byte) play_collision::ypos#1 reg byte y 1.3333333333333333 @@ -549,9 +562,9 @@ (byte) play_collision::ypos#3 reg byte y 1.3333333333333333 (byte) play_collision::ypos#4 reg byte y 5.0 (byte) play_collision::ypos2 -(byte) play_collision::ypos2#0 ypos2 zp ZP_BYTE:9 4.0 -(byte) play_collision::ypos2#1 ypos2 zp ZP_BYTE:9 500.5 -(byte) play_collision::ypos2#2 ypos2 zp ZP_BYTE:9 867.0666666666667 +(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_init() (byte~) play_init::$1 reg byte a 22.0 (label) play_init::@1 @@ -579,24 +592,24 @@ (byte) play_lock_current::c#1 reg byte x 10001.0 (byte) play_lock_current::c#2 reg byte x 4000.4 (byte) play_lock_current::col -(byte) play_lock_current::col#0 col zp ZP_BYTE:8 2002.0 -(byte) play_lock_current::col#1 col zp ZP_BYTE:8 5000.5 -(byte) play_lock_current::col#2 col zp ZP_BYTE:8 7751.0 +(byte) play_lock_current::col#0 col zp ZP_BYTE:10 2002.0 +(byte) play_lock_current::col#1 col zp ZP_BYTE:10 5000.5 +(byte) play_lock_current::col#2 col zp ZP_BYTE:10 7751.0 (byte) play_lock_current::i -(byte) play_lock_current::i#1 i zp ZP_BYTE:9 2333.6666666666665 -(byte) play_lock_current::i#2 i#2 zp ZP_BYTE:7 15502.0 -(byte) play_lock_current::i#3 i#3 zp ZP_BYTE:7 667.3333333333334 -(byte~) play_lock_current::i#7 i#7 zp ZP_BYTE:7 2002.0 -(byte~) play_lock_current::i#9 i#9 zp ZP_BYTE:7 20002.0 +(byte) play_lock_current::i#1 i zp ZP_BYTE:11 2333.6666666666665 +(byte) play_lock_current::i#2 i#2 zp ZP_BYTE:9 15502.0 +(byte) play_lock_current::i#3 i#3 zp ZP_BYTE:9 667.3333333333334 +(byte~) play_lock_current::i#7 i#7 zp ZP_BYTE:9 2002.0 +(byte~) play_lock_current::i#9 i#9 zp ZP_BYTE:9 20002.0 (byte) play_lock_current::l (byte) play_lock_current::l#1 l zp ZP_BYTE:4 1001.0 (byte) play_lock_current::l#6 l zp ZP_BYTE:4 166.83333333333334 (byte*) play_lock_current::playfield_line (byte*) play_lock_current::playfield_line#0 playfield_line zp ZP_WORD:5 1100.2 (byte) play_lock_current::ypos2 -(byte) play_lock_current::ypos2#0 ypos2 zp ZP_BYTE:14 4.0 -(byte) play_lock_current::ypos2#1 ypos2 zp ZP_BYTE:14 500.5 -(byte) play_lock_current::ypos2#2 ypos2 zp ZP_BYTE:14 273.1818181818182 +(byte) play_lock_current::ypos2#0 ypos2 zp ZP_BYTE:16 4.0 +(byte) play_lock_current::ypos2#1 ypos2 zp ZP_BYTE:16 500.5 +(byte) play_lock_current::ypos2#2 ypos2 zp ZP_BYTE:16 273.1818181818182 (byte()) play_move_down((byte) play_move_down::key_event) (byte~) play_move_down::$12 reg byte a 4.0 (byte~) play_move_down::$2 reg byte a 4.0 @@ -660,9 +673,9 @@ (byte) play_move_rotate::key_event (byte) play_move_rotate::key_event#0 reg byte a 52.5 (byte) play_move_rotate::orientation -(byte) play_move_rotate::orientation#1 orientation zp ZP_BYTE:7 4.0 -(byte) play_move_rotate::orientation#2 orientation zp ZP_BYTE:7 4.0 -(byte) play_move_rotate::orientation#3 orientation zp ZP_BYTE:7 0.8888888888888888 +(byte) play_move_rotate::orientation#1 orientation zp ZP_BYTE:9 4.0 +(byte) play_move_rotate::orientation#2 orientation zp ZP_BYTE:9 4.0 +(byte) play_move_rotate::orientation#3 orientation zp ZP_BYTE:9 0.8888888888888888 (byte) play_move_rotate::return (byte) play_move_rotate::return#1 reg byte a 33.666666666666664 (byte) play_move_rotate::return#4 reg byte a 202.0 @@ -678,18 +691,18 @@ (label) play_remove_lines::@9 (label) play_remove_lines::@return (byte) play_remove_lines::c -(byte) play_remove_lines::c#0 c zp ZP_BYTE:10 6000.6 +(byte) play_remove_lines::c#0 c zp ZP_BYTE:12 6000.6 (byte) play_remove_lines::full -(byte) play_remove_lines::full#2 full zp ZP_BYTE:9 4200.6 -(byte) play_remove_lines::full#4 full zp ZP_BYTE:9 4000.4 +(byte) play_remove_lines::full#2 full zp ZP_BYTE:11 4200.6 +(byte) play_remove_lines::full#4 full zp ZP_BYTE:11 4000.4 (byte) play_remove_lines::r (byte) play_remove_lines::r#1 reg byte y 1500.2142857142858 (byte) play_remove_lines::r#2 reg byte y 15502.0 (byte) play_remove_lines::r#3 reg byte y 2002.0 (byte) play_remove_lines::removed -(byte) play_remove_lines::removed#1 removed zp ZP_BYTE:7 2002.0 -(byte) play_remove_lines::removed#11 removed zp ZP_BYTE:7 231.0 -(byte) play_remove_lines::removed#7 removed zp ZP_BYTE:7 333.8888888888889 +(byte) play_remove_lines::removed#1 removed zp ZP_BYTE:9 2002.0 +(byte) play_remove_lines::removed#11 removed zp ZP_BYTE:9 231.0 +(byte) play_remove_lines::removed#7 removed zp ZP_BYTE:9 333.8888888888889 (byte) play_remove_lines::return (byte) play_remove_lines::return#0 reg byte a 4.0 (byte) play_remove_lines::w @@ -701,8 +714,8 @@ (byte) play_remove_lines::w#4 reg byte x 4429.142857142857 (byte) play_remove_lines::w#6 reg byte x 1668.3333333333335 (byte) play_remove_lines::x -(byte) play_remove_lines::x#1 x zp ZP_BYTE:8 15001.5 -(byte) play_remove_lines::x#2 x zp ZP_BYTE:8 2500.25 +(byte) play_remove_lines::x#1 x zp ZP_BYTE:10 15001.5 +(byte) play_remove_lines::x#2 x zp ZP_BYTE:10 2500.25 (byte) play_remove_lines::y (byte) play_remove_lines::y#1 y zp ZP_BYTE:4 1501.5 (byte) play_remove_lines::y#8 y zp ZP_BYTE:4 133.46666666666667 @@ -719,18 +732,61 @@ (byte) play_spawn_current::piece_idx#2 reg byte x 334.99999999999994 (void()) play_update_score((byte) play_update_score::removed) (byte~) play_update_score::$2 reg byte a 4.0 +(byte~) play_update_score::$3 reg byte a 4.0 +(byte~) play_update_score::$5 reg byte a 4.0 (label) play_update_score::@2 +(label) play_update_score::@3 +(label) play_update_score::@4 (label) play_update_score::@return (dword) play_update_score::add_bcd -(dword) play_update_score::add_bcd#0 add_bcd zp ZP_DWORD:36 2.0 +(dword) play_update_score::add_bcd#0 add_bcd zp ZP_DWORD:39 0.8 +(byte) play_update_score::lines_after +(byte) play_update_score::lines_after#0 reg byte a 4.0 +(byte) play_update_score::lines_before +(byte) play_update_score::lines_before#0 lines_before zp ZP_BYTE:4 0.6666666666666666 (byte) play_update_score::removed -(byte) play_update_score::removed#0 reg byte a 3.0 +(byte) play_update_score::removed#0 reg byte x 1.1428571428571428 (byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 playfield = { fill( PLAYFIELD_LINES#0*PLAYFIELD_COLS#0, 0) } (byte*[PLAYFIELD_LINES#0]) playfield_lines (const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 playfield_lines = { fill( PLAYFIELD_LINES#0, 0) } (byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx (const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 playfield_lines_idx = { fill( PLAYFIELD_LINES#0+1, 0) } +(void()) render_bcd((byte*) render_bcd::screen , (word) render_bcd::offset , (byte) render_bcd::bcd , (byte) render_bcd::only_low) +(byte~) render_bcd::$3 reg byte a 4.0 +(byte~) render_bcd::$4 reg byte a 4.0 +(byte~) render_bcd::$5 reg byte a 4.0 +(byte~) render_bcd::$6 reg byte a 4.0 +(label) render_bcd::@1 +(label) render_bcd::@2 +(label) render_bcd::@return +(byte) render_bcd::ZERO_CHAR +(const byte) render_bcd::ZERO_CHAR#0 ZERO_CHAR = (byte/signed byte/word/signed word/dword/signed dword) 51 +(byte) render_bcd::bcd +(byte) render_bcd::bcd#0 reg byte x 4.0 +(byte) render_bcd::bcd#1 reg byte x 4.0 +(byte) render_bcd::bcd#2 reg byte x 4.0 +(byte) render_bcd::bcd#3 reg byte x 2.0 +(byte) render_bcd::bcd#4 reg byte x 2.0 +(byte) render_bcd::bcd#5 reg byte x 4.0 +(byte) render_bcd::bcd#6 reg byte x 2.0 +(word) render_bcd::offset +(word) render_bcd::offset#6 offset zp ZP_WORD:7 2.0 +(byte) render_bcd::only_low +(byte) render_bcd::only_low#6 reg byte y 1.0 +(byte*) render_bcd::screen +(byte*) render_bcd::screen#0 screen zp ZP_WORD:5 2.0 +(byte*) render_bcd::screen#1 screen zp ZP_WORD:5 2.0 +(byte*) render_bcd::screen#2 screen zp ZP_WORD:5 2.0 +(byte*) render_bcd::screen#3 screen zp ZP_WORD:5 4.0 +(byte*) render_bcd::screen#4 screen zp ZP_WORD:5 4.0 +(byte*) render_bcd::screen#5 screen zp ZP_WORD:5 2.0 +(byte*) render_bcd::screen#6 screen zp ZP_WORD:5 14.0 +(byte*) render_bcd::screen_pos +(byte*) render_bcd::screen_pos#0 screen_pos zp ZP_WORD:7 1.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 @@ -744,29 +800,29 @@ (label) render_current::@9 (label) render_current::@return (byte) render_current::c -(byte) render_current::c#1 c zp ZP_BYTE:13 1501.5 -(byte) render_current::c#2 c zp ZP_BYTE:13 286.0 +(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:11 202.0 -(byte) render_current::i#10 i zp ZP_BYTE:11 429.0 -(byte) render_current::i#3 i zp ZP_BYTE:11 50.5 -(byte) render_current::i#4 i zp ZP_BYTE:11 1552.0 -(byte) render_current::i#8 i zp ZP_BYTE:11 300.75 +(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:10 151.5 -(byte) render_current::l#4 l zp ZP_BYTE:10 11.222222222222221 +(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:27 100.18181818181819 +(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:12 202.0 -(byte) render_current::xpos#1 xpos zp ZP_BYTE:12 667.3333333333334 -(byte) render_current::xpos#2 xpos zp ZP_BYTE:12 684.1666666666667 +(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:9 4.0 -(byte) render_current::ypos2#1 ypos2 zp ZP_BYTE:9 67.33333333333333 -(byte) render_current::ypos2#2 ypos2 zp ZP_BYTE:9 29.823529411764707 +(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 @@ -781,8 +837,8 @@ (byte*) render_init::li_1#1 li_1 zp ZP_WORD:5 5.5 (byte*) render_init::li_1#2 li_1 zp ZP_WORD:5 6.6000000000000005 (byte*) render_init::li_2 -(byte*) render_init::li_2#1 li_2 zp ZP_WORD:19 7.333333333333333 -(byte*) render_init::li_2#2 li_2 zp ZP_WORD:19 5.5 +(byte*) render_init::li_2#1 li_2 zp ZP_WORD:7 7.333333333333333 +(byte*) render_init::li_2#2 li_2 zp ZP_WORD:7 5.5 (label) render_init::vicSelectGfxBank1 (byte~) render_init::vicSelectGfxBank1_$0 (label) render_init::vicSelectGfxBank1_@1 @@ -803,46 +859,38 @@ (label) render_playfield::@3 (label) render_playfield::@return (byte) render_playfield::c -(byte) render_playfield::c#1 c zp ZP_BYTE:9 1501.5 -(byte) render_playfield::c#2 c zp ZP_BYTE:9 500.5 +(byte) render_playfield::c#1 c zp ZP_BYTE:11 1501.5 +(byte) render_playfield::c#2 c zp ZP_BYTE:11 500.5 (byte) render_playfield::i -(byte) render_playfield::i#1 i zp ZP_BYTE:8 420.59999999999997 -(byte) render_playfield::i#2 i zp ZP_BYTE:8 1034.6666666666667 -(byte) render_playfield::i#3 i zp ZP_BYTE:8 50.5 +(byte) render_playfield::i#1 i zp ZP_BYTE:10 420.59999999999997 +(byte) render_playfield::i#2 i zp ZP_BYTE:10 1034.6666666666667 +(byte) render_playfield::i#3 i zp ZP_BYTE:10 50.5 (byte) render_playfield::l -(byte) render_playfield::l#1 l zp ZP_BYTE:7 151.5 -(byte) render_playfield::l#2 l zp ZP_BYTE:7 30.299999999999997 +(byte) render_playfield::l#1 l zp ZP_BYTE:9 151.5 +(byte) render_playfield::l#2 l zp ZP_BYTE:9 30.299999999999997 (byte*) render_playfield::screen_line (byte*) render_playfield::screen_line#0 screen_line zp ZP_WORD:5 202.0 (byte*) render_playfield::screen_line#1 screen_line zp ZP_WORD:5 500.5 (byte*) render_playfield::screen_line#2 screen_line zp ZP_WORD:5 1552.0 (void()) render_score() -(byte~) render_score::$10 reg byte a 202.0 -(byte~) render_score::$11 reg byte a 202.0 -(byte~) render_score::$12 reg byte a 202.0 -(byte~) render_score::$9 reg byte a 202.0 (label) render_score::@2 (label) render_score::@3 -(label) render_score::@4 +(label) render_score::@5 +(label) render_score::@6 +(label) render_score::@7 +(label) render_score::@8 +(label) render_score::@9 (label) render_score::@return -(byte) render_score::SCREEN_SCORE_COL -(const byte) render_score::SCREEN_SCORE_COL#0 SCREEN_SCORE_COL = (byte/signed byte/word/signed word/dword/signed dword) 33 -(byte) render_score::SCREEN_SCORE_ROW -(const byte) render_score::SCREEN_SCORE_ROW#0 SCREEN_SCORE_ROW = (byte/signed byte/word/signed word/dword/signed dword) 5 -(byte) render_score::ZERO_CHAR -(const byte) render_score::ZERO_CHAR#0 ZERO_CHAR = (byte/signed byte/word/signed word/dword/signed dword) 51 -(byte) render_score::b -(byte) render_score::b#1 reg byte x 151.5 -(byte) render_score::b#2 reg byte x 30.299999999999997 -(byte) render_score::score_byte -(byte) render_score::score_byte#0 score_byte zp ZP_BYTE:7 60.599999999999994 +(word) render_score::level_offset +(const word) render_score::level_offset#0 level_offset = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 19+(byte/signed byte/word/signed word/dword/signed dword) 31 +(word) render_score::lines_offset +(const word) render_score::lines_offset#0 lines_offset = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 22 (byte*) render_score::score_bytes (const byte*) render_score::score_bytes#0 score_bytes = ((byte*))&(dword) score_bcd#10 -(byte*) render_score::screen_score_pos -(byte*) render_score::screen_score_pos#2 screen_score_pos zp ZP_WORD:5 75.75 -(byte*) render_score::screen_score_pos#3 screen_score_pos zp ZP_WORD:5 67.33333333333333 -(byte*) render_score::screen_score_pos#4 screen_score_pos zp ZP_WORD:5 61.0 -(byte*) render_score::screen_score_pos#5 screen_score_pos zp ZP_WORD:5 2.0 +(word) render_score::score_offset +(const word) render_score::score_offset#0 score_offset = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5+(byte/signed byte/word/signed word/dword/signed dword) 28 +(byte*) render_score::screen +(byte*) render_score::screen#2 screen zp ZP_WORD:5 0.75 (void()) render_screen_original((byte*) render_screen_original::screen) (label) render_screen_original::@1 (label) render_screen_original::@2 @@ -853,30 +901,30 @@ (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:27 101.0 -(byte*) render_screen_original::cols#2 cols zp ZP_WORD:27 75.75 -(byte*) render_screen_original::cols#3 cols zp ZP_WORD:27 42.599999999999994 -(byte*) render_screen_original::cols#4 cols zp ZP_WORD:27 78.5 -(byte*) render_screen_original::cols#5 cols zp ZP_WORD:27 80.8 -(byte*) render_screen_original::cols#6 cols zp ZP_WORD:27 101.0 -(byte*) render_screen_original::cols#7 cols zp ZP_WORD:27 22.0 +(byte*) render_screen_original::cols#1 cols zp ZP_WORD:23 101.0 +(byte*) render_screen_original::cols#2 cols zp ZP_WORD:23 75.75 +(byte*) render_screen_original::cols#3 cols zp ZP_WORD:23 42.599999999999994 +(byte*) render_screen_original::cols#4 cols zp ZP_WORD:23 78.5 +(byte*) render_screen_original::cols#5 cols zp ZP_WORD:23 80.8 +(byte*) render_screen_original::cols#6 cols zp ZP_WORD:23 101.0 +(byte*) render_screen_original::cols#7 cols zp ZP_WORD:23 22.0 (byte*) render_screen_original::ocols -(byte*) render_screen_original::ocols#1 ocols zp ZP_WORD:19 17.75 -(byte*) render_screen_original::ocols#2 ocols zp ZP_WORD:19 67.33333333333333 -(byte*) render_screen_original::ocols#4 ocols zp ZP_WORD:19 14.0 +(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 +(byte*) render_screen_original::ocols#4 ocols zp ZP_WORD:7 14.0 (byte*) render_screen_original::oscr (byte*) render_screen_original::oscr#1 oscr zp ZP_WORD:5 14.2 (byte*) render_screen_original::oscr#2 oscr zp ZP_WORD:5 134.66666666666666 (byte*) render_screen_original::oscr#4 oscr zp ZP_WORD:5 14.0 (byte*) render_screen_original::screen -(byte*) render_screen_original::screen#10 screen zp ZP_WORD:22 30.42857142857143 -(byte*) render_screen_original::screen#2 screen zp ZP_WORD:22 60.599999999999994 -(byte*) render_screen_original::screen#3 screen zp ZP_WORD:22 43.285714285714285 -(byte*) render_screen_original::screen#5 screen zp ZP_WORD:22 157.0 -(byte*) render_screen_original::screen#6 screen zp ZP_WORD:22 202.0 -(byte*) render_screen_original::screen#7 screen zp ZP_WORD:22 202.0 -(byte*) render_screen_original::screen#8 screen zp ZP_WORD:22 24.0 -(byte*) render_screen_original::screen#9 screen zp ZP_WORD:22 2.0 +(byte*) render_screen_original::screen#10 screen zp ZP_WORD:17 30.42857142857143 +(byte*) render_screen_original::screen#2 screen zp ZP_WORD:17 60.599999999999994 +(byte*) render_screen_original::screen#3 screen zp ZP_WORD:17 43.285714285714285 +(byte*) render_screen_original::screen#5 screen zp ZP_WORD:17 157.0 +(byte*) render_screen_original::screen#6 screen zp ZP_WORD:17 202.0 +(byte*) render_screen_original::screen#7 screen zp ZP_WORD:17 202.0 +(byte*) render_screen_original::screen#8 screen zp ZP_WORD:17 24.0 +(byte*) render_screen_original::screen#9 screen zp ZP_WORD:17 2.0 (byte) render_screen_original::x (byte) render_screen_original::x#1 reg byte x 202.0 (byte) render_screen_original::x#2 reg byte x 202.0 @@ -889,17 +937,17 @@ (byte) render_screen_original::y#6 y zp ZP_BYTE:2 0.9166666666666666 (byte) render_screen_render (byte) render_screen_render#11 render_screen_render zp ZP_BYTE:3 3.25 -(byte) render_screen_render#17 render_screen_render zp ZP_BYTE:3 0.6981132075471699 +(byte) render_screen_render#17 render_screen_render zp ZP_BYTE:3 0.6271186440677967 (byte) render_screen_render#21 reg byte x 8.615384615384615 -(byte) render_screen_render#30 render_screen_render#30 zp ZP_BYTE:7 5.090909090909091 -(byte~) render_screen_render#64 render_screen_render#64 zp ZP_BYTE:7 5.5 +(byte) render_screen_render#30 render_screen_render#30 zp ZP_BYTE:9 5.090909090909091 +(byte~) render_screen_render#64 render_screen_render#64 zp ZP_BYTE:9 5.5 (byte~) render_screen_render#65 reg byte x 22.0 (byte) render_screen_show (byte) render_screen_show#13 render_screen_show zp ZP_BYTE:2 4.333333333333333 (byte) render_screen_show#16 render_screen_show zp ZP_BYTE:2 0.37777777777777777 (byte) render_screen_showing -(byte) render_screen_showing#0 render_screen_showing zp ZP_BYTE:30 0.5 -(byte) render_screen_showing#1 render_screen_showing zp ZP_BYTE:30 20.0 +(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 (void()) render_screen_swap() (label) render_screen_swap::@return (void()) render_show() @@ -938,11 +986,11 @@ (dword[]) score_add_bcd (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:15 4.0 -(dword) score_bcd#12 score_bcd zp ZP_DWORD:15 1.0 -(dword) score_bcd#14 score_bcd zp ZP_DWORD:15 2.608695652173914 -(dword) score_bcd#20 score_bcd zp ZP_DWORD:15 6.0 -(dword) score_bcd#3 score_bcd zp ZP_DWORD:15 2.0 +(dword) score_bcd#10 score_bcd zp ZP_DWORD:19 4.0 +(dword) score_bcd#12 score_bcd zp ZP_DWORD:19 1.0 +(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.5714285714285714 (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 @@ -1010,18 +1058,20 @@ interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 render_screen_original::y#6 render_screen_original::y#1 ] zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] -zp ZP_BYTE:4 [ current_movedown_counter#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 ] -reg byte x [ render_score::b#2 render_score::b#1 ] -zp ZP_WORD:5 [ render_score::screen_score_pos#4 render_score::screen_score_pos#5 render_score::screen_score_pos#3 render_score::screen_score_pos#2 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_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 ] +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:7 [ 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 render_score::score_byte#0 ] -zp ZP_BYTE:8 [ 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 ] +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:9 [ 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:10 [ render_current::l#4 render_current::l#1 play_collision::l#6 play_collision::l#1 play_remove_lines::c#0 ] -zp ZP_BYTE:11 [ 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:12 [ 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:13 [ render_current::c#2 render_current::c#1 main::key_event#0 ] +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 ] 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 ] @@ -1030,39 +1080,40 @@ reg byte x [ play_collision::c#2 play_collision::c#1 ] reg byte a [ play_collision::return#14 ] reg byte a [ play_move_leftright::return#1 ] reg byte x [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] -zp ZP_BYTE:14 [ 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_DWORD:15 [ score_bcd#20 score_bcd#12 score_bcd#14 score_bcd#10 score_bcd#3 ] -zp ZP_WORD:19 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 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 ] -zp ZP_BYTE:21 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] -zp ZP_WORD:22 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 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_BYTE:24 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] -zp ZP_BYTE:25 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ] +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_WORD:23 [ 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:25 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ] +zp ZP_WORD:26 [ 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:28 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ] +zp ZP_BYTE:29 [ 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 ] +zp ZP_BYTE:30 [ level_bcd#22 level_bcd#19 level_bcd#12 level_bcd#14 level_bcd#10 level_bcd#3 ] 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 ] 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:26 [ 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: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 ] 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 ] -zp ZP_WORD:27 [ 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 render_current::screen_line#0 play_collision::playfield_line#0 ] 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:29 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 irq_raster_next#0 ] +zp ZP_BYTE:32 [ 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:30 [ render_screen_showing#0 render_screen_showing#1 ] -zp ZP_BYTE:31 [ irq_sprite_ypos#0 irq_sprite_ypos#2 irq_sprite_ypos#1 ] -zp ZP_BYTE:32 [ irq_sprite_ptr#0 irq_sprite_ptr#2 irq_sprite_ptr#1 ] -zp ZP_BYTE:33 [ irq_cnt#0 irq_cnt#1 irq_cnt#14 ] +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 ] 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:34 [ main::render#1 main::render#2 ] +zp ZP_BYTE:37 [ 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 ] @@ -1070,10 +1121,10 @@ reg byte a [ play_move_rotate::key_event#0 ] reg byte a [ play_move_rotate::return#4 ] reg byte a [ main::$14 ] reg byte a [ main::render#3 ] -reg byte a [ render_score::$9 ] -reg byte a [ render_score::$10 ] -reg byte a [ render_score::$11 ] -reg byte a [ render_score::$12 ] +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_playfield::$2 ] @@ -1082,7 +1133,7 @@ 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:35 [ play_collision::i#1 ] +zp ZP_BYTE:38 [ play_collision::i#1 ] reg byte a [ play_collision::$7 ] reg byte a [ play_collision::return#12 ] reg byte a [ play_move_leftright::$4 ] @@ -1094,12 +1145,15 @@ reg byte a [ play_collision::return#0 ] reg byte a [ play_move_down::$12 ] reg byte a [ play_remove_lines::return#0 ] reg byte a [ play_move_down::removed#0 ] -reg byte a [ play_update_score::removed#0 ] +reg byte x [ play_update_score::removed#0 ] reg byte a [ sid_rnd::return#2 ] reg byte a [ play_spawn_current::$1 ] reg byte a [ sid_rnd::return#0 ] reg byte a [ play_update_score::$2 ] -zp ZP_DWORD:36 [ play_update_score::add_bcd#0 ] +zp ZP_DWORD:39 [ play_update_score::add_bcd#0 ] +reg byte a [ play_update_score::$3 ] +reg byte a [ play_update_score::$5 ] +reg byte a [ play_update_score::lines_after#0 ] reg byte a [ keyboard_event_pressed::$0 ] reg byte a [ keyboard_event_pressed::$1 ] reg byte a [ keyboard_event_pressed::return#11 ]